UN過濾網
❶ 請問聚氨酯泡沫填縫劑的產品編碼,UN號,CAS號,是什麼請各位幫幫忙
第一部分 化學品及企業標識
化學品中文名:聚氨酯;聚氨基甲酸酯 化學品英文名:polyurethane
化學品俗名:
分子式: 分子量:
企業名稱: 生產企業地址:
郵 編: 傳 真:
生效日期: 企業應急電話:
電子郵件地址: 技術說明書編碼:
第二部分 成分/組成信息
主要成分:純品√ 混合物
有害物成分:濃度(含量):CAS No.:
環氧基烴類聚合物無資料
第三部分 危險性概述
危險性類別:第3.2類 中閃點液體
侵入途徑:吸入、食入
健康危害:制備和使用環氧樹脂的工人,可有頭痛、惡心、食慾不振、眼灼痛、眼瞼水腫、上呼吸道刺激、皮膚病症等。本品的主要危害為引起過敏性皮膚病,其表現形式為瘙癢性紅斑、丘疹、皰疹、濕疹性皮炎等。
環境危害:對環境有害。
燃爆危險:易燃,其蒸氣與空氣混合,能形成爆炸性混合物。
第四部分:急救措施
皮膚接觸: 脫去污染的衣著,用肥皂水和清水徹底沖洗皮膚。
眼睛接觸: 提起眼瞼,用流動清水或生理鹽水沖洗。就醫。
吸入: 迅速脫離現場至空氣新鮮處。保持呼吸道通暢。如呼吸困難,給輸氧。如呼吸停止,立即進行人工呼吸。就醫。
食入: 飲足量溫水,催吐。就醫。
第五部分 消防措施
危險特性:易燃,遇明火、高熱能燃燒。受高熱分解放出有毒的氣體。粉體與空氣可形成爆炸性混合物, 當達到一定濃度時, 遇火星會發生爆炸。
有害燃燒產物:一氧化碳。
滅火方法:用霧狀水、泡沫、二氧化碳、乾粉、砂土滅火。
滅火注意事項及措施:消防人員必須佩戴空氣呼吸器、穿全身防火防毒服,在上風向滅火。噴水冷卻容器,可能的話將容器從火場移至空曠處。處在火場中的容器若已變色或從安全泄壓裝置中產生聲音,必須馬上撤離。
第六部分 泄漏應急處理
應急行動:消除所有點火源。根據液體流動和蒸氣擴散的影響區域劃定警戒區,無關人員從側風、上風向撤離至安全區。建議應急處理人員戴正壓自給式呼吸器,穿一般作業工作服。穿上適當的防護服前嚴禁接觸破裂的容器和泄漏物。盡可能切斷泄漏源。用塑料布覆蓋泄漏物,減少飛散。勿使水進入包裝容器內。用潔凈的鏟子收集泄漏物,置於干凈、乾燥、蓋子較松的容器中,將容器移離泄漏區。
第七部分 操作處置與儲存
操作注意事項:密閉操作,提供良好的自然通風條件。操作人員必須經過專門培訓,嚴格遵守操作規程。建議操作人員佩戴自吸過濾式防塵口罩,戴化學安全防護眼鏡。遠離火種、熱源,工作場所嚴禁吸煙。使用防爆型的通風系統和設備。防止蒸氣泄漏到工作場所空氣中。避免與氧化劑接觸。搬運時要輕裝輕卸,防止包裝及容器損壞。配備相應品種和數量的消防器材及泄漏應急處理設備。倒空的容器可能殘留有害物。
儲存注意事項:儲存於陰涼、通風的庫房。遠離火種、熱源。保持容器密封。應與氧化劑分開存放,切忌混儲。採用防爆型照明、通風設施。禁止使用易產生火花的機械設備和工具。儲區應備有泄漏應急處理設備和合適的收容材料。
第八部分 接觸控制/個體防護
mAC(mg/m3):未制定標准PC-TWA(mg/m3):未制定標准
PC-STEL(mg/m3):未制定標准TLV-C(mg/m3):未制定標准
TLV-TWA(mg/m3):TLV-STEL(mg/m3):
監測方法:無資料。
工程式控制制:密閉操作。提供良好的自然通風條件。
呼吸系統防護:空氣中濃度超標時,佩戴過濾式防塵呼吸器。
眼睛防護:一般不需要特殊防護,高濃度接觸時可戴化學安全防護眼鏡。
身體防護:穿一般作業防護服。
手 防 護:戴一般作業防護手套。
其他防護:工作現場嚴禁吸煙。保持良好的衛生習慣。
第九部分 理化特性
外觀與性狀:根據分子結構和分子量大小的不同, 其物態可從無臭、無味的黃色透明液體至固體。
pH值:無資料
沸點(℃):145~155 熔點(℃):無資料
相對密度(水=1):無資料 相對蒸氣密度(空氣=1):
飽和蒸氣壓(kPa):燃燒熱(kJ/mol):
臨界溫度(℃):臨界壓力(mPa):無資料
辛醇/水分配系數的對數值:無資料
閃點(℃):無資料 引燃溫度(℃):無資料
爆炸上限[%(V/V)]:無資料 爆炸下限[%(V/V)]:無資料
溶解性:溶於丙酮、乙二醇、甲苯。
主要用途:用作金屬塗料、金屬粘合劑、玻璃纖維增強結構材料、防腐材料、金屬加工用模具等, 在電器工業中用作絕緣材料。
其它理化性質:
第十部分 穩定性和反應性
穩定性:穩定
禁 配 物:強氧化劑。
避免接觸的條件:
聚合危害:不聚合
分解產物:
第十一部分 毒理學資料
急性毒性:
LD50:大鼠經口LD50(mg/kg): 11400 LC50:
人吸入LCL0(mg/m3):
刺激性:
亞急性和慢性毒性:
致敏性:
致突變性:
致畸性:
致癌性:
第十二部分 生態學資料
生態毒理毒性:
生物降解性:
非生物降解性:
生物富集或生物積累性:
其他有害作用:無資料。
第十三部分 廢棄處置
廢棄物性質:危險廢物 廢棄
廢棄處置方法:建議用焚燒法處置。
廢棄注意事項:處置前應參閱國家和地方有關法規。
第十四部分 運輸信息
危險貨物編號:32197
UN編號:無資料
包裝類別:Ⅱ類包裝
包裝標志:易燃液體
包裝方法:無資料。
運輸注意事項:運輸時運輸車輛應配備相應品種和數量的消防器材及泄漏應急處理設備。嚴禁與氧化劑、食用化學品、混裝混運。運輸途中應防曝曬、雨淋,防高溫。按規定路線行駛,勿在居民區和人口稠密區停留。
第十五部分 法規信息
法規信息:下列法律法規和標准,對化學品的安全使用、儲存、運輸、裝卸、分類和標志等方面均作了相應的規定:中華人民共和國安全生產法(2002年6月29日第九界全國人大常委會第二十八次會議通過);中華人民共和國職業病防治法(2001年10月27日第九界全國人大常委會第二十四次會議通過);中華人民共和國環境保護法(1989年12月26日第七屆全國人大常委會第十一次會議通過)。
第十六部分 其他信息
填表部門:填表時間:
數據審核單位:
參考文獻:
修改說明:
其他信息:
❷ jsp過濾器最簡單的一個小代碼跪求大哥!
Entity裡面: class stockPoolHistoryTo(){ private String attHisId; get... set... } Action裡面: private List<Map<String, Object>> stockPoolHistoryList; public String stockPoolHistoryList() { stockPoolHistoryList = stockPoolHistoryService.stockPoolHistoryList(); return SUCCESS; } Jsp裡面: <c:forEach items="${stockPoolHistoryList}" var="item" varStatus="s"> <tr> <td> <fs:property value="stockPoolHistoryTo.ATTHISID" /> </td> </tr> </c:forEach> Js裡面: var id=document.getElementById('reterte'); if(confirm('確定要刪除嗎?')){ var url='${ctx}/promotionManage/promotionManageUnTop.action?promotionManageTo.id='+id; openURL(url); } Sqlmaps裡面: <select id="stockPoolHistory.stockPoolHistoryList" parameterClass="java.util.HashMap" resultClass="java.util.HashMap"> select h.att_his_id as attHisId from jqy.tzjc_t_attpool_his h </select>
❸ 為什麼打開PROE圖出現:要打開unigraphics文件,必須選取unigraphics(*.prt)過濾器
因為你選擇打開的文件是ug的prt檔案不是proe的~
❹ UNS31254相當於什麼材料
一:牌號UNS S31254奧氏體不銹鋼
二:化學成分
碳C:≤.02 硅Si:≤0.70 錳Mn:≤1.00 磷P:≤0.03 硫S:≤0.01 鉻Cr:19.5-20.5鉬Mo:6–7 鎳Ni:17.5-18. 銅cu:0.5–1 氮N:0.18-0.25
三:應用范圍應用領域:
海洋:海域環境的海洋構造物,海水淡化,海水養殖,海水熱交換等。
環保領域:火力發電的煙氣脫硫裝置,廢水處理等。
能源領域:原子能發電,煤炭的綜合利用,海潮發電等。
石油化工領域:煉油,化學化工設備等。
食品領域:制鹽,醬油釀造等。
高濃度氯離子環境:造紙工業,各種漂白裝置
耐高溫
四:概況
254SMO是一種奧氏體不銹鋼。由於它的高含鉬量,故具有極高的耐點腐蝕和耐縫隙腐蝕性能。這種牌號的不銹鋼是為用於諸如海水等含有鹵化物的環境中而研製和開發的。254SMO也具有良好的抗均勻腐蝕性。特別是在含鹵化物的酸中,該鋼要優於普通不銹鋼。其C含<0.03%,因此叫純奧氏體不銹鋼(<0.01%又叫超級奧氏體不銹鋼)。超級不銹鋼是一種特種不銹鋼,首先在化學成分上與普通不銹鋼不同,是指含高鎳,高鉻,高鉬的一種高合金不銹鋼。
❺ 不銹鋼過濾網的最大目和中等目是多少
得看你產品需要多大目的,一般情況都能用的,現在訂做也很方便
❻ 跪求英語高手翻譯啊 濾波器方面的
FIR濾波器的設計在復雜凸優化架飛機
2。弗拉維奧-布里亞托利Elekirotechnik,lnstiiul fiir Elektronik,塗柏林,D - 10587柏林。 German1,」Fakultiit我,Lehrstuhlfiir,塗Ingenieurmathematik戀情。 戀情。D - 101344、德國
三、FIR濾波器的設計在復域進行切比雪夫近似在復雜問題持續復雜近似看作是一個凸半無限規劃問題。這個方法允許濾波器設計(在)下有限多個附加凸約束系統功能的過濾器。為求解半無限規劃問題提出了一種新的方法可以被解釋為著名的進一步發展Kelley-Cheney-Goldstein切平面有限元凸二次規劃方法。該方法簡單、可靠的方法正如作者在[第三十條、第三十一條],唯一的方法也同樣證明了到現在收斂性和能解決連續處理設計問題的約束。濾波器設計的
方法進行了介紹,特別是1000系數。許多測試實例方法相比,在[第三十條、第三十一條]。
4。在遙遠的邊界FIR-Filter komplexen Ebene幫助komplexer Tschebyscheff-Approximation entworfen麻省理工學院,這stetige wobei komplexe Approximationsproblem konvexes semi-infinites Optimierungsproblem als靜脈相反的影響。 這張Vorgehensweise ermijglicht是的,濾波器(聯合國)在自己zusPtzlichen vielen konvexen Restriktionen一個死System-Funktion entwerfen差不多。 Fiir死LGsung des semi-infiniten Optimierungsproblems安理會Methode vorgeschlagen neue地震,死亡Weiterentwicklung bekannten Kelley-Cheney-Goldstein-Schnittebenenverfahrens Fiir als葯物洗脫支架endliche konvexe Optimierungsprobleme verstanden忍。 這是einfacher Methode zuverllssig您和同這展覽公司在這個Autoren[第三十條、第三十一條],國際展覽公司,現在這安德利果汁,fiir這ebenfalls Konvergenz bewiesen是和這stetige Entwurfsprobleme麻省理工學院Nebenbedingungen l&en能。 Beispiele fiir過濾器,死entworfen wurden麻省理工學院dem展覽公司,angegeben邊界,insbesondere eines麻省理工學院1000 Koeffizienten。 Fiir訂Reihe·馮·Testbeispielen dem在麻省理工學院的影響這展覽公司verglichen[第三十條、第三十一條]。
5。藍德filtres概念在domaine complexe最好少RIF effect&e嗎? 我'aide·德·l·德·Chebycheff 'approximation complexe,德勒problkme l 'approximation外徑,最好的considkre complexe繼續Ctant聯合國problkme德大展
semi-infinie convexe。 這個approche autorise藍德filtre聯合國安理會nombre概念arbitraire德contraintes
❼ UNS31254-1.1M 是什麼材料
一:牌號UNS S31254奧氏體不銹鋼
二:化學成分
碳C:≤0.02 硅Si:≤0.70 錳Mn:≤1.00 磷P:≤0.03 硫S:≤0.01 鉻Cr:19.5-20.5鉬Mo:6–7 鎳Ni:17.5-18. 銅cu:0.5–1 氮N:0.18-0.25
三:應用范圍應用領域:
海洋:海域環境的海洋構造物,海水淡化,海水養殖,海水熱交換等。
環保領域:火力發電的煙氣脫硫裝置,廢水處理等。
能源領域:原子能發電,煤炭的綜合利用,海潮發電等。
石油化工領域:煉油,化學化工設備等。
食品領域:制鹽,醬油釀造等。
高濃度氯離子環境:造紙工業,各種漂白裝置
耐高溫
四:概況
254SMO是一種奧氏體不銹鋼。由於它的高含鉬量,故具有極高的耐點腐蝕和耐縫隙腐蝕性能。這種牌號的不銹鋼是為用於諸如海水等含有鹵化物的環境中而研製和開發的。254SMO也具有良好的抗均勻腐蝕性。特別是在含鹵化物的酸中,該鋼要優於普通不銹鋼。其C含<0.03%,因此叫純奧氏體不銹鋼(<0.01%又叫超級奧氏體不銹鋼)。超級不銹鋼是一種特種不銹鋼,首先在化學成分上與普通不銹鋼不同,是指含高鎳,高鉻,高鉬的一種高合金不銹鋼。
❽ 關於濾網的標准有哪些
GB/T 25139-2010 實施:2011-02-01
中文名:鑄造用泡沫陶瓷過濾網
英文名:Ceramic foam filter for foundry
CJ/T 437-2013 實施:2014-02-01
中文名:垃圾填埋場用土工濾網
英文名:
JB/T 11526-2013 實施:2013-09-01
中文名:空調用交點粘結空氣過濾網
英文名:Filter net bonding at intersection for air-conditioning
JB/T 8865-2010 實施:2010-07-01
中文名:活塞推料離心機用濾網
英文名:Screen for pusher centrifuge
JB/T 10718-2007 實施:2007-09-01
中文名:空調用機織空氣過濾網
英文名:Weaving filter net for air-conditioning
HG/T 3730-2004 實施:2005-06-01
中文名:工業水和冷卻水凈化處理濾網式全自動過濾器
英文名:Mesh fully-automatic filter for purifying treatment of instrial water and cool
DL/T 458-1999 實施:2000-07-01
中文名:板框式旋轉濾網
英文名:Travelling band screen
DL/T 1257-2013 實施:2014-04-01
中文名:鼓形旋轉濾網
英文名:
ANSI B151.3-1982(R1988) 實施:1982-01-01
中文名:過濾網更換器的製造、維護和使用
英文名:Plastics Machinery. Screen Changers. Construction,Care,and Use
DIN 4925-3-1999 實施:
中文名:管井用未增塑聚氯乙烯井濾網和鑄件.第3部分:帶梯形螺紋的DN250至DN400
英文名:Well screens and casings of unplasticized polyvinylchloride (PVC-U) for tube wel
NF J41-302-1985(R2010) 實施:
中文名:底艙吸入用濾網
英文名:Shipbuilding. Strum boxes.
IP 419-2003 實施:
中文名:中間餾分油的模仿濾網淤塞點的測定
英文名:Determination of simulated filter plugging point (SFPP) of middle distillate fue
JB/T 8865-2001 實施:2001-10-01
中文名:活塞推料離心機用濾網
英文名:Screen for pusher centrifuge
YY 0029-1990 實施:1991-06-01
中文名:一次性使用輸血器用血液過濾網
英文名:
ASTM E2308-2005 實施:2005-06-01
中文名:建築物限定石棉過濾網指南
英文名:Standard Guide for Limited Asbestos Screens of Buildings
NF J42-160-1952 實施:
中文名:外部排水 圓濾網
英文名:Shipbuilding. External scuppers. Circular gratings.
NF J42-162-1952 實施:
中文名:外部排水 橢圓形濾網
英文名:Shipbuilding. External scuppers. Oval gratings.
NF J41-302-1985 實施:
中文名:底艙吸入用濾網
英文名:Shipbuilding. Strum boxes.
NF J42-114-1952 實施:
中文名:內部排水 濾網
英文名:Shipbuilding. Internal scuppers. Gratings.
NF L48-121-1948 實施:
中文名:飛機上的流體裝置 儀存箱設備 入口濾網和卡環
英文名:Aircraft fluid installations. Tank equipment. Filters and retaining rings.
共有記錄:24
❾ 防止微信撤回聊天消息WechatUnrecalled怎麼用
1安裝Xpoesd框架
Xpoesd框架其實就是android平台上的一款增強app功能的框架,很多黑科技app的黑科技功專能都必須通過此框架運行。屬
2下載安裝WechatUnrecalled
適用於(微信)
安裝並運行後,如果對方微信嘗試撤回消息,那麼android微信的客戶端就會顯示對方嘗試撤回的消息已經被阻止;那麼這條消息也將會被顯示。
微信消息撤回阻止成功!
3防止用戶撤回包括文字信息、語音、小視頻等消息。
4還可以防止用戶刪除朋友圈、評論等各種消息,相當全能,有此方面需求的用戶可以關注一下。
5該模塊還貼心的加入了朋友圈關鍵詞過濾功能,如開啟【屏蔽[已刪除]內容】功能,開啟【屏蔽朋友圈游戲動態】、【阻止推廣廣告】等功能,相當實用的微信增強模塊。
❿ 什麼是java過濾器! 它的功能和作用是什麼啊
Filter 技術是servlet 2.3 新增加的功能.servlet2.3是sun公司與2000年10月發布的,它的開發者包括許多個人和公司團體,充分體現了sun公司所倡導的代碼開放性原則.由於眾多的參與者的共同努力,servlet2.3比以往功能都強大了許多,而且性能也有了大幅提高.
它新增加的功能包括:
1. 應用程序生命周期事件控制;
2. 新的國際化;
3. 澄清了類的裝載規則;
4. 新的錯誤及安全屬性;
5. 不贊成使用HttpUtils 類;
6. 各種有用的方法;
7. 闡明並擴展了幾個servlet DTD;
8. filter功能.
其中最重要的就是filter功能.它使用戶可以改變一個request和修改一個 response. Filter 不是一個servlet,它不能產生一個response,它能夠在一個request到達servlet之前預處理request,也可以在離開 servlet時處理response.換種說法,filter其實是一個」servlet chaining」(servlet 鏈).一個filter 包括:
1. 在servlet被調用之前截獲;
2. 在servlet被調用之前檢查servlet request;
3. 根據需要修改request頭和request數據;
4. 根據需要修改response頭和response數據;
5. 在servlet被調用之後截獲.
你能夠配置一個filter 到一個或多個servlet;單個servlet或servlet組能夠被多個filter 使用.幾個實用的filter 包括:用戶辨認filter,日誌filter,審核filter,加密filter,符號filter,能改變xml內容的XSLT filter等.
一個filter必須實現javax.servlet.Filter介面並定義三個方法:
1.void setFilterConfig(FilterConfig config) //設置filter 的配置對象;
2. FilterConfig getFilterConfig() //返回filter的配置對象;
3. void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) //執行filter 的工作.
伺服器每次只調用setFilterConfig方法一次准備filter 的處理;調用doFilter方法多次以處理不同的請求.FilterConfig介面有方法可以找到filter名字及初始化參數信息.伺服器可以設置 FilterConfig為空來指明filter已經終結.
每一個filter從doFilter()方法中得到當前的request及 response.在這個方法里,可以進行任何的針對request及response的操作.(包括收集數據,包裝數據等).filter調用 chain.doFilter()方法把控制權交給下一個filter.一個filter在doFilter()方法中結束.如果一個filter想停止 request處理而獲得對response的完全的控制,那它可以不調用下一個filter.
一個filter可以包裝request 或response以改變幾個方法和提供用戶定製的屬性.Api2.3提供了HttpServletRequestWrapper 和HttpServletResponseWrapper來實現.它們能分派最初的request和response.如果要改變一個方法的特性,必須繼承wapper和重寫方法.下面是一段簡單的日誌filter用來記錄所有request的持續時間.
public class LogFilter implements Filter {
FilterConfig config;
public void setFilterConfig(FilterConfig config) {
this.config = config;
}
public FilterConfig getFilterConfig() {
return config;
}
public void doFilter(ServletRequest req,
ServletResponse res,
FilterChain chain) {
ServletContext context = getFilterConfig().getServletContext();
long bef = System.currentTimeMillis();
chain.doFilter(req, res); // no chain parameter needed here
long aft = System.currentTimeMillis();
context.log("Request to " + req.getRequestURI()
+ ": " + (aft-bef));
}
}
當server調用setFilterConfig(),filter保存config信息. 在doFilter()方法中通過config信息得到servletContext.如果要運行這個filter,必須去配置到web.xml中.以 tomcat4.01為例:
<filter>
<filter-name>
log //filter 名字
</filter-name>
<filter-class>
LogFilter //filter class(上例的servlet)
</filter-class>
</filter>
<filter-mapping>
<filter-name>log</filter-name>
<servletname>servletname</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>servletname</servletname>
<servletclass>servletclass</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletname</servlet-name>
<url-pattern>*</url-pattern>
</servlet-mapping>
把這個web.xml放到web-inf中(詳請參考tomcat幫助文檔).
當每次請求一個request時(如index.jsp),先到LogFilter中去並調用doFilter()方法,然後才到各自的servlet中去.如果是一個簡單的servlet(只是一個頁面,無任何輸出語句),那麼可能的輸出是:
Request to /index.jsp: 10
Filter是一個COM組件,由一個或多個Pin組成。Pin也是一個COM組件。 Filter文件的擴展名為.ax,但也可以是.dll。Filter根據其包含Input pin或Output pin的情況(或在Filter Graph的位置),大致可分為三類:Source Filter(僅有Output pin)、Transform Filter(同時具有Input pin和Output pin)和Renderer Filter(僅有Input pin)。
一般情況下,創建Filter使用一個普通的Win32 DLL項目。而且,一般Filter項目不使用MFC。這時,應用程序通過CoCreateInstance函數Filter實例;Filter與應用程序在二進制級別的協作。另外一種方法,也可以在MFC的應用程序項目中創建Filter。這種情況下,Filter不需注冊為COM組件,Filter與應用程序之間的協作是源代碼級別的;創建Filter實例,不再使用CoCreateInstance函數,而是直接new出一個Filter對象,如下:
m_pFilterObject = new CFilterClass();
// make the initial refcount 1 to match COM creation
m_pFilterObject ->AddRef();
因為Filter的基類實現了對象的引用計數,所以即使在第二種情況下,對創建後的Filter對象的操作也完全可以遵循COM標准。
Filter是一個獨立功能模塊,最好不要將Filter依賴於其他第三方的DLL。因為 Filter具有COM的位置透明性特點,Filter文件可以放在硬碟的任何位置,只要位置移動後重新注冊。但此時,如果Filter依賴其他DLL,則Filter對該DLL的定位就會出現問題。
Filter不能脫離Filter Graph單獨使用。所以,如果你想繞過Filter Graph直接使用Filter實現的模塊功能,請將你的Filter移植成DMO(DirectX Media Object)。對於DirectShow應用程序開發者來說,還有一點,請不要忘記使用OleInitialize進行初始化。
2. Filter的注冊
Filter是COM組件,所以在使用前一定要注冊。Filter的注冊程序為 regsvr32.exe。如果帶上命令行參數/u,表示注銷;如果帶上是/s,表示不彈出任何注冊/注銷成功與否的提示對話框。如果你想在Build Filter項目的時候進行自動注冊,請在VC的Project settings的Custom Build頁如下設置:
Description: Register filter
Commands: regsvr32 /s /c $(TargetPath)
echo regsvr32 exe.time > $(TargetDir)\$(TargetName).trg
Outputs: $(TargetDir)\$(TargetName).trg
Filter的注冊信息包括兩部分:基本的COM信息和Filter信息。注冊信息都存放在注冊表中。前者的位置為:HKEY_CLASSES_ROOT\CLSID\Filter Clsid\,後者的位置為:HKEY_CLASSES_ROOT\CLSID\Category\Instance\ Filter Clsid\。COM信息標示了Filter是一個標準的可以通過CoCreateInstance函數創建的COM組件,Filter信息標示了我們通過Graphedit看到的描述這個Filter的信息。如果你不想讓Graphedit看到(或者讓Filter枚舉器找到)你寫的Filter,你完全可以不注冊Filter信息。而且不用擔心,你這么做也完全不會影響Filter的功能。
屏蔽注冊Filter信息的方法也很簡單。因為CBaseFilter實現了IAMovieSetup介面的兩個函數:Register和Unregister。我們只需重載這兩個函數,直接return S_OK就行了。
Filter的Merit值。這個值是微軟的「智能連接」函數使用的。在Graphedit中,當我們加入一個Source Filter後,在它的pin上執行「Render」,會自動連上一些Filter。Merit的值參考如下:
MERIT_PREFERRED = 0x800000,
MERIT_NORMAL = 0x600000,
MERIT_UNLIKELY = 0x400000,
MERIT_DO_NOT_USE = 0x200000,
MERIT_SW_COMPRESSOR = 0x100000,
MERIT_HW_COMPRESSOR = 0x100050
Merit值只有大於MERIT_DO_NOT_USE的時候才有可能被「智能連接」使用;Merit的值越大,這個Filter的機會就越大。
3. Filter之間Pin的連接過程
Filter只有加入到Filter Graph中並且和其它Filter連接成完整的鏈路後,才會發揮作用。Filter之間的連接(也就是Pin之間的連接),實際上是連接雙方的一個 Media type的協商過程。連接的方向總是從Output pin指向Input pin。連接的大致過程為:如果調用連接函數時已經指定了完整的Media type,則用這個Media type進行連接,成功與否都結束連接過程;如果沒有指定或不完全指定了Media type,則進入下面的枚舉過程。枚舉欲連接的Input pin上所有的Media type,逐一用這些Media type與Output pin進行連接(如果連接函數提供了不完全Media type,則要先將每個枚舉出來的Media type與它進行匹配檢查),如果Output pin也接受這種Media type,則Pin之間的連接宣告成功;如果所有Input pin上枚舉的Media type,Output pin都不支持,則枚舉Output pin上的所有Media type,並逐一用這些Media type與Input pin進行連接。如果Input pin接受其中的一種Media type,則Pin之間的連接到此也宣告成功;如果Output pin上的所有Media type,Input pin都不支持,則這兩個Pin之間的連接過程宣告失敗。
每個Pin都可以實現GetMediaType函數來提供該Pin上支持的所有 Preferred Media type(但一般只在Output pin上實現,Input pin主要實現CheckMediaType看是否支持當前提供的Media type就行了)。連接過程中,Pin上枚舉得到的所有Media type就是這里提供的。
在CBasePin類中有一個protected的成員變數 m_bTryMyTypesFirst,默認值為false。在我們定製Filter的Output pin中改變這個變數的值為true,可以定製我們自己的連接過程(先枚舉Output pin上的Media type)。
當Pin之間的連接成功後,各自的pin上都會調用CompleteConnect函數。我們可以在這里取得一些連接上的Media type的信息,以及進行一些計算等。在Output pin的CompleteConnect實現中,還有一個重要的任務,就是協商Filter Graph運行起來後Sample傳輸使用的內存配置情況。這同樣是一個交互過程:首先要詢問一下Input pin上的配置要求,如果Input pin提供內存管理器(Allocator),則優先使用Input pin上的內存管理器;否則,使用Output pin自己生成的內存管理器。我們一般都要實現DecideBufferSize來決定存放Sample的內存大小。注意:這個過程協商完成之後,實際的內存並沒有分配,而要等到Output pin上的Active函數調用。
4. Filter Media type概述
Media type一般可以有兩種表示:AM_MEDIA_TYPE和CMediaType。前者是一個Struct,後者是從這個Struct繼承過來的類。
每個Media type有三部分組成:Major type、Subtype和Format type。這三個部分都使用GUID來唯一標示。Major type主要定性描述一種Media type,比如指定這是一個Video,或Audio或Stream等;Subtype進一步細化Media type,如果Video的話可以進一步指定是UYVY或YUY2或RGB24或RGB32等;Format type用一個Struct更進一步細化Media type。
如果Media type的三個部分都是指定了某個具體的GUID值,則稱這個Media type是完全指定的;如果Media type的三個部分中有任何一個值是GUID_NULL,則稱這個Media type 是不完全指定的。GUID_NULL具有通配符的作用。
常用的Major type:
MEDIATYPE_Video;
MEDIATYPE_Audio;
MEDIATYPE_AnalogVideo; // Analog capture
MEDIATYPE_AnalogAudio;
MEDIATYPE_Text;
MEDIATYPE_Midi;
MEDIATYPE_Stream;
MEDIATYPE_Interleaved; // DV camcorder
MEDIATYPE_MPEG1SystemStream;
MEDIATYPE_MPEG2_PACK;
MEDIATYPE_MPEG2_PES;
MEDIATYPE_DVD_ENCRYPTED_PACK;
MEDIATYPE_DVD_NAVIGATION;
常用的Subtype:
MEDIASUBTYPE_YUY2;
MEDIASUBTYPE_YVYU;
MEDIASUBTYPE_YUYV;
MEDIASUBTYPE_UYVY;
MEDIASUBTYPE_YVU9;
MEDIASUBTYPE_Y411;
MEDIASUBTYPE_RGB4;
MEDIASUBTYPE_RGB8;
MEDIASUBTYPE_RGB565;
MEDIASUBTYPE_RGB555;
MEDIASUBTYPE_RGB24;
MEDIASUBTYPE_RGB32;
MEDIASUBTYPE_ARGB32; // Contains alpha value
MEDIASUBTYPE_Overlay;
MEDIASUBTYPE_MPEG1Packet;
MEDIASUBTYPE_MPEG1Payload; // Video payload
MEDIASUBTYPE_MPEG1AudioPayload; // Audio payload
MEDIASUBTYPE_MPEG1System; // A/V payload
MEDIASUBTYPE_MPEG1VideoCD;
MEDIASUBTYPE_MPEG1Video;
MEDIASUBTYPE_MPEG1Audio;
MEDIASUBTYPE_Avi;
MEDIASUBTYPE_Asf;
MEDIASUBTYPE_QTMovie;
MEDIASUBTYPE_PCM;
MEDIASUBTYPE_WAVE;
MEDIASUBTYPE_dvsd; // DV
MEDIASUBTYPE_dvhd;
MEDIASUBTYPE_dvsl;
MEDIASUBTYPE_MPEG2_VIDEO;
MEDIASUBTYPE_MPEG2_PROGRAM;
MEDIASUBTYPE_MPEG2_TRANSPORT;
MEDIASUBTYPE_MPEG2_AUDIO;
MEDIASUBTYPE_DOLBY_AC3;
MEDIASUBTYPE_DVD_SUBPICTURE;
MEDIASUBTYPE_DVD_LPCM_AUDIO;
MEDIASUBTYPE_DVD_NAVIGATION_PCI;
MEDIASUBTYPE_DVD_NAVIGATION_DSI;
MEDIASUBTYPE_DVD_NAVIGATION_PROVIDER;
常用的Format type:
FORMAT_None
FORMAT_DvInfo DVINFO
FORMAT_MPEGVideo MPEG1VIDEOINFO
FORMAT_MPEG2Video MPEG2VIDEOINFO
FORMAT_VideoInfo VIDEOINFOHEADER
FORMAT_VideoInfo2 VIDEOINFOHEADER2
FORMAT_WaveFormatEx WAVEFORMATEX
5. Filter之間的數據傳送
Filter之間的數據是通過Sample來傳送的。Sample是一個COM組件,擁有自己的一段數據緩沖。Sample由Allocator統一管理。如下圖所示:
Filter之間數據傳送的方式有兩種:Push模式和Pull模式。