锘??xml version="1.0" encoding="utf-8" standalone="yes"?>狠狠综合久久,欧美视频日韩视频在线观看,蜜臀久久久99精品久久久久久http://m.shnenglu.com/kenlistian/category/9061.html鍘氱Н钖勫彂. 鍕や負妗?鎬濅負甯? zh-cnSat, 14 Mar 2009 02:17:02 GMTSat, 14 Mar 2009 02:17:02 GMT60Filter鐭ヨ瘑鐐規淮http://m.shnenglu.com/kenlistian/archive/2009/03/13/76502.htmlkenlistiankenlistianFri, 13 Mar 2009 11:45:00 GMThttp://m.shnenglu.com/kenlistian/archive/2009/03/13/76502.html鏉ヨ嚜http://blog.cnii.com.cn/?75821/viewspace-19610.html鐨勫紑鍙慺ilter浠嬬粛

 pdf



kenlistian 2009-03-13 19:45 鍙戣〃璇勮
]]>
pin 榪炴帴鍐呴儴澶勭悊http://m.shnenglu.com/kenlistian/archive/2009/03/09/76040.htmlkenlistiankenlistianMon, 09 Mar 2009 14:36:00 GMThttp://m.shnenglu.com/kenlistian/archive/2009/03/09/76040.htmlhttp://m.shnenglu.com/kenlistian/comments/76040.htmlhttp://m.shnenglu.com/kenlistian/archive/2009/03/09/76040.html#Feedback0http://m.shnenglu.com/kenlistian/comments/commentRss/76040.htmlhttp://m.shnenglu.com/kenlistian/services/trackbacks/76040.html瀵逛簬pin鐨勮繛鎺ヨ繃紼?鎬葷粨涓?

   1.
   搴旂敤紼嬪簭閫氳繃璋冪敤filter graph 綆$悊鍣ㄦ柟娉曟潵榪炴帴filter.
   搴旂敤紼嬪簭璋冪敤IFilterGraph::ConnectDirect
               IGraphBuilder::Connect鏉ユ寚瀹氫笉鍚岀殑filter鐩存帴榪炴帴錛?br>              涔熷彲鐢↖GraphBuilder::RenderFile鑷姩瀹炵幇榪炴帴
   搴旂敤紼嬪簭鍙互閫氳繃IFilterGraph::AddFilter灝唂ilter 娣誨姞graph涓紝
   褰撲竴涓猣ilter琚坊鍔犲埌graph涓椂錛宖ilter鍥捐〃綆$悊鍣ㄩ氳繃IBaseFilter::JoinFilterGraph鏉ラ氱煡filter.

   榪欑偣璇存槑, 涓嶆槸filter鐨勭洿鎺ヨ繛鎺ュ嚱鏁扮浉浜掗摼鎺?鑰屾槸鍦ㄤ互涓婂唴閮ㄨ皟鐢ㄥ疄鐜扮殑.

   2. 鑰冭檻鍒頒互鍓嶆弿榪?br>              FilterA ---->FilterB
      鐨勮繛鎺ユ鏌ュ獟浣撶被鍨?閫昏緫鍩烘湰灝辨槸榪欐牱:

 寰幆FilterA鐨勮緭鍑簆in,鍐嶅驚鐜疐ilterB鐨勮緭鍏in濯掍綋綾誨瀷鏄惁鍜宲mt濯掍綋綾誨瀷
 鍖歸厤

 for (j = 0 ; j<FilterB.PinIn.MediaTypeCount; j++)
 {
             if (FilterB.PinIn.MediaType[j] = pmt )
      {
            if(FilterA.PinIn.ReceiveConnection(FilterA.PinOut, FilterB.MediaType[i]) = OK)
                   return TRUE;
      }

        }

        for (i= 0; i< FilterA.PinOut.MediaTypeCount; i++)
 {
      if (FilterA.PinOut.MediaType[i] 鏄惁鍦‵ilterB.PinIn涓槸鍚︽敮鎸?
        if (FilterA.PinIn.ReceiveConnection(FilterA.PinOut, FilterA.MediaType[i]) = OK)
             return TRUE;
 }

  鍦ㄥ疄鐜頒笂,璋冪敤嬈″簭浠ヤ笅榪囩▼:


filterGraph棣栧厛璋冪敤FilterA.PinOut::Connect().

FilterA.IPinOut::Connect()
       鍘熷瀷:IPin::Connect(IPin* pReceivePin, const AM_MEDIA_TYPE * pmt)     
       璇onnect鍙傛暟涓?br>            pReceivePin 涓?FilterB鐨勮緭鍏in,
            pmt         鏄疐ilterA鐨勫綋鍓嶅獟浣撶被鍨?
 


      鍦ㄥ唴閮ㄨ皟鐢?涓昏)
         hr = AgreeMediaType(pReceivePin, pmt);
             媯鏌ReceivePin 鏈夊惁pmt鐨勫獟浣撶被鍨?

  鏈?鍒欒嚜鐒秓k
  娌℃湁,澶辮觸,閫鍑鴻鍑芥暟.
         鍒欏湪AgreeMediaType鍋氫簡浠ヤ笂閫昏緫寰幆.

  
   IPin::AgreeMediaType鍑芥暟澶勭悊濡備笅:
 
      1.鍒ゆ柇pmt 鏄惁鏄畬鍏ㄥ獟浣撶被鍨?鏄垯鎸夊叏濯掍綋綾誨瀷妯″紡鍑烘潵
      2.闈炲畬鍏ㄥ獟浣撶被鍨?br>     IPin::EnumMediaTypes(IEnumMediaTypes** pEnum)
      鑾峰彇鏋氫婦鎸囬拡(鎸囧悜Pin涓殑濯掍綋綾誨瀷闆嗗悎).
   
           鍏堟灇涓緁ilterB鐨勮緭鍏in鐨勫獟浣撶被鍨嬬殑鏋氫婦闆?
         璋冪敤TryMediaTypes 鍑芥暟鍘誨垽鏂槸鍚﹀尮閰?
    榪樹笉鍖歸厤,鍙栧嚭FilterA鐨勬灇涓劇被鎸囬拡.鍐嶈皟鐢═ryMediaTyes
    

    IPin::TryMediaType()澶勭悊
    鍘熷瀷:
   HRESULT CBasePin::TryMediaTypes(IPin*pReceivePin, const CMediaType*pmt,
         IEnumMediaType *pEnum)

    鍦ㄨ鍑芥暟澶勭悊:
         for (pmt in 鎵鏈夎鏋氫婦闆嗕腑鐨勬灇涓懼獟浣撶被鍨?)
  {
     AttemptConnect(pReceivePin, pmt)
  }


    鍦ˋttemptConnection涓皟鐢?br>    CBasePin::AttemptConnection(IPin* pReceivePin, const CMediaType*pmt)
   
      媯鏌ilterA 鐨凜heckConnect(pReceivePin)
      FilterA鐨凱InOut::CheckMediaType(pmt)
           ok,return
      FilterA鐨凱inOut::SetMediaType(pmt)
       
      pReceivePin->ReceiveConnection(...)  (filterB 鐨凱inIn)
           ok,return
      FilterA鐨凱inOut::CompleteConnect(pReceivePin)



kenlistian 2009-03-09 22:36 鍙戣〃璇勮
]]>
鍑犱釜闊抽鏍煎紡緇嗚妭澶囪(娣?http://m.shnenglu.com/kenlistian/archive/2009/01/05/71221.htmlkenlistiankenlistianMon, 05 Jan 2009 06:16:00 GMThttp://m.shnenglu.com/kenlistian/archive/2009/01/05/71221.htmlhttp://m.shnenglu.com/kenlistian/comments/71221.htmlhttp://m.shnenglu.com/kenlistian/archive/2009/01/05/71221.html#Feedback0http://m.shnenglu.com/kenlistian/comments/commentRss/71221.htmlhttp://m.shnenglu.com/kenlistian/services/trackbacks/71221.html
鍑犱釜鏍煎紡緇嗚妭澶囪(娣?


typedef struct  _MediaType {
    GUID      majortype; 
    GUID      subtype;
    BOOL      bFixedSizeSamples;
    BOOL      bTemporalCompression;
    ULONG     lSampleSize;
    GUID      formattype;
    IUnknown  *pUnk;                  //not use
    ULONG     cbFormat;
    BYTE *pbFormat;
} AM_MEDIA_TYPE;

涓昏鏈?br>   majortype  濯掍綋綾誨瀷澶ц嚧璇存槑
   subtype    鏇翠竴姝ョ殑緇嗚嚧璇存槑
   formattype 
      鍖呮嫭鏈変互涓嬶細鍏跺搴旂殑涓嶅悓鐨勬暟鎹牸寮?br>       FORMAT_None
       FORMAT_DvInfo
       FORMAT_MPEGVideo
       FORMAT_MPEG2Video
       FORMAT_VideoInfo
       FORMAT_VideoInfo2 
       FORMAT_WaveFormatEx  
       GUID_NULL

  cbForamt鎴愬憳鎸囧畾浜嗘牸寮忓潡pbFormat鐨勫ぇ灝?
  pbFormat鎸囬拡鎸囧悜鏍煎紡瀛愬潡銆?br>            pbFormat鏄竴涓獀oid*鐨勬寚閽堬紝鍥犱負鏍煎紡鍧椾細鍥犱負濯掍綋綾誨瀷
            鐨勪笉鍚岃屾湁涓嶅悓鐨勬寚鍚戙傚闊抽濉厖鐨勬槸WAVEFORMATEX緇撴瀯
     鏁版嵁.

     鍙互浠庝腑鍙栧嚭浼犳潵鐨勬暟鎹牸寮忋?br>    

 

//TWaveFormatEx 緇撴瀯:
TWaveFormatEx = packed record
  wFormatTag: Word;       {鎸囧畾鏍煎紡綾誨瀷; 榛樿 WAVE_FORMAT_PCM = 1;}
  nChannels: Word;        {鎸囧嚭娉㈠艦鏁版嵁鐨勯氶亾鏁? 鍗曞0閬撲負 1, 绔嬩綋澹頒負 2}
  nSamplesPerSec: DWORD;  {鎸囧畾鏍鋒湰閫熺巼(姣忕鐨勬牱鏈暟)}涓鑸負8000
  nAvgBytesPerSec: DWORD; {鎸囧畾鏁版嵁浼犺緭鐨勫鉤鍧囬熺巼(姣忕鐨勫瓧鑺傛暟)} 姣忕鐨勫瓧鑺傛暟:
  nBlockAlign: Word;      {鎸囧畾鍧楀榻?鍗曚綅瀛楄妭), 鍧楀榻愭槸鏁版嵁鐨勬渶灝忓崟浣峿
  wBitsPerSample: Word;   {閲囨牱澶у皬(瀛楄妭)}姣忎釜鏍鋒湰鐨凚IT鏁扮洰錛屼竴鑸負16
  cbSize: Word;           {搴旇鏄緇撴瀯鐨勫ぇ灝弣
end;

nChannels       :   瀵逛簬pcm,鍏秐channels涓嶈秴榪?,瀵逛簬闈瀙cm鏍煎紡,鍒欒秴榪?.
nSamplesPerSec  :   閫氬父涓?kHz, 11.025 kHz, 22.05 kHz, and 44.1 kHz.
nAvgBytesPerSec :   姣忕浼犻佸瓧鑺傛暟 = nSamplesPerSec * nBlockAlign
nBlockAlign     :   瀵歸綈瀛楄妭  = nChannels * wBitsPerSample / 8
                    灝辨槸琛ㄧず涓涓牱鏈殑鏈灝忓瓧鑺?
wBitsPerSample  :   鍦ㄦ牸寮忛粯璁ゆ儏鍐典笅,涓鑸負8,16,琛ㄧず鐨勬槸鏍鋒湰鐨刡it 鏁?/p>

瀵逛簬涓涓?浣?11k浼犺緭鐨勭珛浣撳0鍒?br>nChannels  = 2
nSamplesPerSec(姣忕鐨勬牱鏈暟) = 11025  灝辨槸鍙栨牱鏁?br>nBlockAlign  = 2 * 8 / 8= 2           瀵歸綈瀛楄妭錛屾渶灝忔牱鏈瓧鑺傛暟
nAvgBytesPerSec = 11025 *  2 = 22050
wBitsPerSample  = 8
 

 涓嬮潰鐨勫浘鍒楁竻妤氫粠鍙︿竴涓柟闈㈣〃杈炬牱鏈?br>
 鏍鋒湰1  鏍鋒湰2 ...n
8浣嶅崟澹伴亾 0澹伴亾 0澹伴亾
8浣嶇珛浣撳0 0澹伴亾L         1澹伴亾R  0澹伴亾L  1澹癛閬?/td>
16浣嶅崟澹伴亾 0澹伴亾(浣庡瓧鑺?    0澹伴亾(楂樺瓧鑺? 0澹伴亾(浣庡瓧鑺?    0澹伴亾(楂樺瓧鑺?
16浣嶇珛浣撳0

0澹伴亾(浣庡瓧鑺?0澹伴亾錛堥珮瀛楄妭錛?澹伴亾(浣? 1澹伴亾(楂? 

鍚屽乏

                                                                                                                     
                                        
                                   
---------

waveform-audio 緙撳瓨鏍煎紡銆    
  typedef   struct   {    
          LPSTR     lpData;           //鍐呭瓨鎸囬拡錛屾斁緗煶棰憄cm鏍鋒湰鏁版嵁
          DWORD     dwBufferLength;   //闀垮害    
          DWORD     dwBytesRecorded;  //宸插綍闊崇殑瀛楄妭闀垮害  
          DWORD     dwUser;    
          DWORD     dwFlags;    
          DWORD     dwLoops;           //寰幆嬈℃暟  
          struct   wavehdr_tag* lpNext; //淇濈暀    
          DWORD     reserved;           //淇濈暀
  }   WAVEHDR; 
 
  鍏朵腑lpdata 鍗充負pcm鏍煎紡鏍鋒湰鏁版嵁銆?br> 
閲囨牱澶у皬涓?浣嶏紝鍒欓噰鏍風殑鍔ㄦ佽寖鍥翠負20*log(256)鍒嗚礉=48db銆?br>鏍鋒湰澶у皬涓?6浣嶏紝鍒欓噰鏍峰姩鎬佽寖鍥翠負20*log(65536)澶х害鏄?6鍒嗚礉

鎸箙澶у皬錛?#160;  20*log(A1/A2)鍒嗚礉錛孉1,A2涓轟袱涓0闊崇殑鎸箙銆?br>鍒欏浜庣殑闊抽錛?br>          8浣?#160;      20 * lg( lpData[0] /256)
   16浣?#160;     20 * lg( lpData[0]--lpData[1] / 65536)
 鑰冭檻鍒板崟鍙岄亾錛岃繕闇瑕佺浉搴斿彇鍑哄乏鍙沖0閬撶殑鍊箋?br> 鑰冭檻鍒發g姹傚間負璐?8鑷?涔嬮棿錛屽垯鍦ㄥ疄闄呰漿鎹腑闇瑕?48or96.


鏍鋒湰澶у皬  鏁版嵁鏍煎紡      鏈澶у?#160; 鏈灝忓?
8浣峆CM    unsigned int   256     0
16浣峆CM   int            32767  -32767

 8浣嶉煶棰戞槸unsigned 瀛樻斁娉㈠艦,鍙栨尟騫呰-127.
 鑰?6浣嶅洜鍏跺瓨鏀句負int 綾誨瀷,鐩存帴濂楃敤鍏紡.
 

audiometer宸﹀彸澹伴亾闊抽噺鎺㈡祴紼嬪簭錛?a href="http://m.shnenglu.com/Files/kenlistian/audioVu_di.rar">鍙傝冧唬鐮?delphi鐗?/a>錛?/p>

 



kenlistian 2009-01-05 14:16 鍙戣〃璇勮
]]>
鍙挱鏀緍m,rmvb鏍煎紡鎾斁鍣ㄧ殑鏂規硶http://m.shnenglu.com/kenlistian/archive/2008/12/28/70557.htmlkenlistiankenlistianSun, 28 Dec 2008 03:21:00 GMThttp://m.shnenglu.com/kenlistian/archive/2008/12/28/70557.html
Source(.rm/.rmvb)->RealMediaSplitter->Video(Audio)->real a/v decoder->A/V   Render

鍏跺疄澶嶅師騫舵煡鎵捐ax寰堢畝鍗曪紝瀹夎鏆撮鍚庡湪graphedit涓紝鎷栦竴涓猺m鏂囦歡錛?br>鏌ョ湅瑙g爜榪囩▼錛岀劧鍚庡湪filter鍒楄〃涓壘鍑鴻ax鏂囦歡鍚嶏紝鍗沖彲鏋勫緩鍒拌嚜宸辯殑
鎾斁鍣ㄤ腑銆?

kenlistian 2008-12-28 11:21 鍙戣〃璇勮
]]>
directsound鐨勪竴浜涘熀鏈湱璁?/title><link>http://m.shnenglu.com/kenlistian/archive/2008/12/27/70521.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Sat, 27 Dec 2008 10:30:00 GMT</pubDate><guid>http://m.shnenglu.com/kenlistian/archive/2008/12/27/70521.html</guid><wfw:comment>http://m.shnenglu.com/kenlistian/comments/70521.html</wfw:comment><comments>http://m.shnenglu.com/kenlistian/archive/2008/12/27/70521.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/kenlistian/comments/commentRss/70521.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/kenlistian/services/trackbacks/70521.html</trackback:ping><description><![CDATA[<p>1銆侀厤緗瓺irectDound鐨勫紑鍙戠幆澧?br>鍖呭惈浠ヤ笅<br>#include <mmsystem.h><br>#include <dsound.h><br>娣誨姞Dsound.lib搴?br>comctl32.lib dxerr9.lib winmm.lib dsound.lib dxguid.lib odbc32.lib odbccp32.lib錛?/p> <p>2 DiectDound鍑犱釜瀵硅薄<br> <br>  鍒涘緩涓涓澶囧璞★紝鍚庨氳繃璁懼瀵硅薄鍒涘緩緙撳啿鍖哄璞°?br>  杈呭姪緙撳啿鍖虹敱搴旂敤紼嬪簭鍒涘緩鍜岀鐞嗭紝DirectSound浼氳嚜鍔ㄥ湴鍒涘緩鍜岀鐞嗕富緙撳啿鍖猴紝</p> <p><br>3 鎾斁闊抽鏂囦歡寮鍙戠殑鍩烘湰嫻佺▼</p> <p>銆a 鍒涘緩涓涓澶囧璞★紝璁劇疆璁懼瀵硅薄鐨勫崗浣滃害銆?</p> <p>銆銆  璋冪敤DirectSoundCreat8鍒涘緩涓涓敮鎸両DirectSound8鎺ュ彛鐨勫璞★紝<br>      榪欎釜瀵硅薄閫氬父浠h〃緙虹渷鐨勬挱鏀捐澶囥?br>  銆<br>      銆濡傛灉娌℃湁澹伴煶杈撳嚭璁懼錛岃繖涓嚱鏁板氨榪斿洖error錛屾垨鑰咃紝鍦╒XD椹卞姩紼嬪簭涓嬶紝<br>      濡傛灉澹伴煶杈撳嚭璁懼姝h鏌愪釜搴旂敤紼嬪簭閫氳繃waveform鏍煎紡鐨刟pi鍑芥暟鎵鎺у埗錛?br>      璇ュ嚱鏁頒篃榪斿洖error銆?nbsp;</p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">LPDIRECTSOUND8 lpDirectSound; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>HRESULT hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> DirectSoundCreate8(NULL,</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">lpDirectSound, NULL));</span></div> <p>      褰撳垱寤哄畬璁懼瀵硅薄鍚庯紝璋冪敤IDirectSound8::SetCooperativeLevel鏉ヨ緗?br>      鍗忎綔搴︼紝鍚﹀垯鍚笉鍒板0闊?<br><br>  b.鍒涘緩涓涓緟鍔〣uffer錛屼篃鍙悗澶囩紦鍐插尯<br>      (IDirectSound8::CreateSoundBuffer)<br>      鍒涘緩鐨刡uffer縐頒綔杈呭姪緙撳啿鍖猴紝Direcsound閫氳繃鎶婂嚑涓悗澶囩紦鍐插尯鐨勫0闊?br>      娣峰悎鍒頒富緙撳啿鍖轟腑錛岀劧鍚庤緭鍑哄埌澹伴煶杈撳嚭璁懼涓婏紝杈懼埌娣烽煶鐨勬晥鏋溿?/p> <p>  c. 鑾峰彇PCM綾誨瀷鐨勬暟鎹?br>    <br>銆銆灝哤AV鏂囦歡鎴栬呭叾浠栬祫婧愮殑鏁版嵁璇誨彇鍒扮紦鍐插尯涓?/p> <p>  d. 灝嗘暟鎹鍙栧埌緙撳啿鍖?br>       鍏朵腑鐢ㄥ埌浠ヤ笅鏉ラ攣緙撳啿鍖恒?br>          IDirectSoundBuffer8::Lock<br>          IDirectSoundBuffer8::Unlock.</p> <p>  e. 鎾斁緙撳啿鍖轟腑鐨勬暟鎹?br>       IDirectSoundBuffer8::Play  鎾斁緙撳啿鍖轟腑鐨勯煶棰戞暟鎹紝<br>       IDirectSoundBuffer8::Stop 鏆傚仠鎾斁鏁版嵁錛?br>       <br>       鑾峰彇鎴栬呰緗鍦ㄦ挱鏀劇殑闊抽鐨勯煶閲忕殑澶у皬<br>銆 銆IDirectSoundBuffer8::GetVolume <br>         IDirectSoundBuffer8::SetVolume</p> <p>      鑾峰彇璁劇疆闊抽鎾斁鐨勯鐜?br>銆  銆IDirectSoundBuffer8::GetFrequency <br>         IDirectSoundBuffer8::SetFrequency    <br>              涓葷紦鍐插尯鐨勯鐜囦笉鍏佽鏀瑰姩錛?/p> <p>      璁劇疆闊抽鍦ㄥ乏鍙沖0閬撴挱鏀劇殑浣嶇疆<br>          IDirectSoundBuffer8::GetPan <br>          IDirectSoundBuffer8::SetPan</p> <p>銆銆鍖呭惈鍏ㄩ儴闊抽鏁版嵁鐨勭紦鍐插尯鎴戜滑縐頒負闈欐佺殑緙撳啿鍖猴紝<br>        灝界涓嶅悓鐨勫0闊沖彲鑳戒細鍙嶅浣跨敤鍚屼竴涓唴瀛榖uffer錛屼絾闈欐佺紦鍐插尯鐨勬暟鎹彧鍐欏叆涓嬈°?/p> <p>        闈欐佺紦鍐插尯鍙~鍏呬竴嬈℃暟鎹紝鐒跺悗灝卞彲浠lay錛?br> <br> 銆緇欓潤鎬佺紦鍐插尯鍔犺澆鏁版嵁鍒嗕笅闈㈠嚑涓楠?br>銆銆1銆佺敤IDirectSoundBuffer8::Lock鍑芥暟鏉ラ攣瀹氭墍鏈夌殑鍐呭瓨錛?br>            鎸囧畾浣犻攣瀹氬唴瀛樹腑浣犲紑濮嬪啓鍏ユ暟鎹殑鍋忕Щ浣嶇疆錛屽茍涓斿彇鍥炶鍋忕Щ浣嶇疆鐨勫湴鍧銆?br>銆銆2銆侀噰鐢ㄦ爣鍑嗙殑鏁版嵁copy鏂規硶錛屽皢闊抽鏁版嵁澶嶅埗鍒拌繑鍥炵殑鍦板潃銆?br>銆銆3銆佽皟鐢↖DirectSoundBuffer8::Unlock.錛岃В閿佽鍦板潃銆?/p> <p><br>鐢╯tatic buffer 鎾斁wav鏂規硶</p> <p>   </p> <p> </p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">LPDIRECTSOUNDBUFFER8    g_pDSBuffer8 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">buffer</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">LPDIRECTSOUND8                   g_pDsd </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">dsound</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">CWaveFile                                   </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">g_pWaveFile</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鍒濆鍖朌irectSound宸ヤ綔</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">HRESULT hr;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(FAILED(hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> DirectSoundCreate8(NULL,</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">g_pDsd,NULL)))<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>銆</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> FALSE;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">璁劇疆璁懼鐨勫崗浣滃害</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(FAILED(hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> g_pDsd</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">SetCooperativeLevel(m_hWnd,DSSCL_PRIORITY)))<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>銆</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> FALSE;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>g_pWaveFile </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> CWaveFile;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>g_pWaveFile</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Open(_T(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">c:\\test.wav</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">), NULL, WAVEFILE_READ);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>DSBUFFERDESC dsbd;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>ZeroMemory( </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">dsbd, </span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(DSBUFFERDESC) );<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>dsbd.dwSize </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(DSBUFFERDESC);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>dsbd.dwFlags </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> DSBCAPS_GLOBALFOCUS               </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">璁劇疆涓繪挱</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">                                </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> DSBCAPS_CTRLFX<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>                                </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> DSBCAPS_CTRLPOSITIONNOTIFY <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>                                </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> DSBCAPS_GETCURRENTPOSITION2;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>dsbd.dwBufferBytes </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> g_pWaveFile</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">GetSize();    <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>dsbd.lpwfxFormat </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> g_pWaveFile</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">m_pwfx;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>LPDIRECTSOUNDBUFFER lPBuffer;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鍒涘緩杈呭姪緙撳啿鍖哄璞?/span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(FAILED(hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> g_pDsd</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">CreateSoundBuffer(</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">dsbd,</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">lpbuffer,NULL)))<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>銆</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> ;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">( FAILED(hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> lpbuffer</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">QueryInterface( IID_IDirectSoundBuffer8, (LPVOID</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">g_pDSBuffer8) ) )<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>銆</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> ; <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>lpbuffer</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Release();<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鎾斁</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">LPVOID lplockbuf;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>DWORD len;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>DWORD dwWrite;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>g_pDSBuffer8</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Lock(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">lplockbuf,  </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">len,  NULL,  NULL, DSBLOCK_ENTIREBUFFER);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">g_pWaveFile 澹伴煶鍐欏叆鍒發plockbuf鎵鎸囧湴鍧</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">g_pWaveFile</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Read((BYTE</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)lplockbuf, len, </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">dwWrite);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>g_pDSBuffer8</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Unlock(lplockbuf,len,NULL,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>g_pDSBuffer8</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">SetCurrentPosition(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>g_pDSBuffer8</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Play(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,DSBPLAY_LOOPING);</span></div> <p><br><br><br>   f  嫻佺紦鍐插尯鎾斁瓚呭ぇ鍨嬬殑wave鏂囦歡</p> <p>  銆嫻佺紦鍐插尯灝辨槸鎾斁閭d簺姣旇緝闀跨殑闊抽鏂囦歡,杈規挱鏀撅紝杈瑰~鍏匘irectSound緙撳啿鍖恒?/p> <p>   DirectSound鐨勯氱煡鏈哄埗<br>      鍥犱負Stream buffer 澶у皬鍙瀹圭撼涓閮ㄥ垎鏁版嵁錛屽湪鎾斁瀹岀紦鍐插尯涓殑鏁版嵁鍚庯紝<br>      DirectSound灝變細閫氱煡搴旂敤紼嬪簭錛屽皢鏂扮殑鏁版嵁濉厖鍒癉irectSound鐨勭紦鍐插尯涓?/p> <p> </p> <p> </p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000"> MAX_AUDIO_BUF 4                        </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">璁劇疆4涓猙uffer</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000"> BUFFERNOTIFYSIZE 1920               </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">姣忎釜buffer灝哄涓?920</span><span style="COLOR: #000000"><br><br>BOOL g_bPlaying     </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> FALSE;                                            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鏄惁姝e湪鎾斁</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">LPDIRECTSOUNDNOTIFY8 g_pDSNotify </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL; <br>DSBPOSITIONNOTIFY        g_aPosNotify[MAX_AUDIO_BUF];     </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">璁劇疆閫氱煡鏍囧織鐨勬暟緇?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>HANDLE g_event[MAX_AUDIO_BUF];<br></span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> MAX_AUDIO_BUF;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br>{<br>銆g_aPosNotify[i].dwOffset </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> i</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> BUFFERNOTIFYSIZE ;   <br>   銆g_aPosNotify[i].hEventNotify </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> g_event[i];<br>}<br><br></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(FAILED(hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> g_pDSBuffer8</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">QueryInterface(IID_IDirectSoundNotify,(LPVOID </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">g_pDSNotify )))<br>銆</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> ;<br><br>g_pDSNotify</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">SetNotificationPositions(MAX_AUDIO_BUF,g_aPosNotify);<br><br>g_pDSNotify</span><span style="COLOR: #000000">-></span><span style="COLOR: #000000">Release();</span></div> <p><br>     褰揇irectSound鎾斁鍒癰uffer鐨?920錛?840錛?760錛?680絳変綅緗椂錛?br>Directsound灝變細閫氱煡搴旂敤紼嬪簭錛屽皢g_event,璁劇疆涓洪氱煡鎬?<br>  搴旂敤紼嬪簭灝遍氳繃WaitForMultipleObjects 鍑芥暟絳夊緟DirectSound鐨勯氱煡錛?br>灝嗘暟鎹~鍏呭埌DirectSoun鐨勮緟鍔╃紦鍐插尯銆?/p> <p> </p> <p><br> </p> <img src ="http://m.shnenglu.com/kenlistian/aggbug/70521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/kenlistian/" target="_blank">kenlistian</a> 2008-12-27 18:30 <a href="http://m.shnenglu.com/kenlistian/archive/2008/12/27/70521.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鏋氫婦嫻佺▼鍥?/title><link>http://m.shnenglu.com/kenlistian/archive/2008/12/15/69469.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Mon, 15 Dec 2008 02:07:00 GMT</pubDate><guid>http://m.shnenglu.com/kenlistian/archive/2008/12/15/69469.html</guid><wfw:comment>http://m.shnenglu.com/kenlistian/comments/69469.html</wfw:comment><comments>http://m.shnenglu.com/kenlistian/archive/2008/12/15/69469.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/kenlistian/comments/commentRss/69469.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/kenlistian/services/trackbacks/69469.html</trackback:ping><description><![CDATA[<img height=245 alt="" src="http://m.shnenglu.com/images/cppblog_com/kenlistian/enum.jpg" width=458 border=0><br><br>  Moniker 鏄釜鎺ュ彛銆? <img src ="http://m.shnenglu.com/kenlistian/aggbug/69469.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/kenlistian/" target="_blank">kenlistian</a> 2008-12-15 10:07 <a href="http://m.shnenglu.com/kenlistian/archive/2008/12/15/69469.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑾峰彇紲為緳鍗¤澶囪礬鏁?/title><link>http://m.shnenglu.com/kenlistian/archive/2008/12/10/69027.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Wed, 10 Dec 2008 02:45:00 GMT</pubDate><guid>http://m.shnenglu.com/kenlistian/archive/2008/12/10/69027.html</guid><wfw:comment>http://m.shnenglu.com/kenlistian/comments/69027.html</wfw:comment><comments>http://m.shnenglu.com/kenlistian/archive/2008/12/10/69027.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/kenlistian/comments/commentRss/69027.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/kenlistian/services/trackbacks/69027.html</trackback:ping><description><![CDATA[<br><br>  嫻嬭瘯紲為緳鍗¤礬鏁幫紝鍏朵腑pDecoderFilter瑕佸搴斾笉鍚岀殑璁懼銆?br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">         </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> iDev </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">10</span><span style="COLOR: #000000"> ; i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_49_253_Open_Image onclick="this.style.display='none'; Codehighlighter1_49_253_Open_Text.style.display='none'; Codehighlighter1_49_253_Closed_Image.style.display='inline'; Codehighlighter1_49_253_Closed_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_49_253_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_49_253_Closed_Text.style.display='none'; Codehighlighter1_49_253_Open_Image.style.display='inline'; Codehighlighter1_49_253_Open_Text.style.display='inline';" src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>        </span><span id=Codehighlighter1_49_253_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://m.shnenglu.com/Images/dot.gif"></span><span id=Codehighlighter1_49_253_Open_Text><span style="COLOR: #000000">{<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">榪欓噷鍙互鍒ゆ柇鏈夊嚑璺榫欏崱</span><span style="COLOR: #008000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            hr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> CoCreateInstance(CLSID_RM_MPEG2_VIDEO_SUBPICTURE, NULL, CLSCTX_INPROC_SERVER,<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>                IID_IBaseFilter, (LPVOID </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">&</span><span style="COLOR: #000000">pDecoderFilter);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(hr </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> S_OK) <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>                </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;    <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align=top>            iDev</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> sMsg[</span><span style="COLOR: #000000">256</span><span style="COLOR: #000000">];<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>        sprintf(sMsg,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, iDev);        <br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>        MessageBox(ghApp, sMsg, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Msg</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, MB_OK);</span></div> <img src ="http://m.shnenglu.com/kenlistian/aggbug/69027.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/kenlistian/" target="_blank">kenlistian</a> 2008-12-10 10:45 <a href="http://m.shnenglu.com/kenlistian/archive/2008/12/10/69027.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鑾峰彇緋葷粺璁懼鏂規硶---directshow 鐭ヨ瘑瀛︿範澶囨敞1(杞?http://m.shnenglu.com/kenlistian/archive/2008/12/09/68920.htmlkenlistiankenlistianTue, 09 Dec 2008 03:43:00 GMThttp://m.shnenglu.com/kenlistian/archive/2008/12/09/68920.htmlhttp://m.shnenglu.com/kenlistian/comments/68920.htmlhttp://m.shnenglu.com/kenlistian/archive/2008/12/09/68920.html#Feedback0http://m.shnenglu.com/kenlistian/comments/commentRss/68920.htmlhttp://m.shnenglu.com/kenlistian/services/trackbacks/68920.html1.閲囩敤緋葷粺璁懼鏋氫婦鍣ㄦ潵鏋氫婦.
   鏍規嵁紜歡緋葷粺縐嶇被鏉ユ灇涓劇郴緇熶腑娉ㄥ唽鐨刦ilter銆?br>   姣忎竴縐嶄笉鍚岀殑紜歡鍙兘鏈夎嚜宸辯殑filter錛屼篃鍙兘鎵鏈夌殑紜歡璁懼鍏辯敤filter銆?/p>

銆緋葷粺璁懼鏋氫婦鍣ㄦ槸鏍規嵁涓嶅悓鐨勭綾繪潵鍒涘緩鐨勶紝濡傦紝闊抽鍘嬬緝錛岃棰戞崟鎹夈?br>  涓嶅悓縐嶇被鐨勬灇涓懼櫒瀵逛簬姣忎竴縐嶈澶囪繑鍥炰竴涓嫭绔嬬殑鍚嶇О錛坢oniker錛夈?/p>

涓嬮潰鐨勬楠ゆ槸浣跨敤璁懼鏋氫婦鍣ㄦ潵鑾峰彇璁懼錛?/p>

1) 鍒涘緩鏋氫婦鍣ㄧ粍浠訛紝CLSID涓篊LSID_SystemDeviceEnum
2) 鎸囧畾鏌愪竴縐嶇被鍨嬭澶囷紝鑾峰彇璇ョ綾繪灇涓懼櫒
    閫氳繃ICreateDevEnum::CreateClassEnumerator鑾峰彇鏌愪竴縐嶇被鐨勬灇涓懼櫒錛?br>    璇ュ嚱鏁拌繑鍥炰竴涓狪EnumMoniker鎺ュ彛鎸囬拡錛?br>    閫氳繃媯鏌ヨ繑鍥炲兼槸鍚︿負S_OK鏉ュ垽鏂槸鍚﹁幏鍙栧埌璇ョ綾繪灇涓懼櫒.
3) 鐢↖EnumMoniker::Next鏋氫婦姣忎竴涓猰oniker銆?br>     榪欎釜鏂規硶榪斿洖涓涓狪Moniker鎺ュ彛鎸囬拡銆?br>4) 閫氳繃IMoniker::BindToStorage鑾峰彇璁懼鐨勫悕縐?/p>

澶ц嚧渚嬪瓙濡備笅錛?br>   

HRESULT hr;
ICreateDevEnum 
*pSysDevEnum = NULL;
hr 
= CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER,
          IID_ICreateDevEnum, (
void **)&pSysDevEnum);
if (FAILED(hr))銆return hr;

//鑾峰彇video compressor 縐嶇被鏋氫婦鍣?nbsp;
IEnumMoniker *pEnumCat = NULL;
hr 
= pSysDevEnum->CreateClassEnumerator(CLSID_VideoCompressorCategory, &pEnumCat,0);
if (hr == S_OK){

銆IMoniker 
*pMoniker = NULL;
銆ULONG cFetched;

while(pEnumCat->Next(1&pMoniker, &cFetched) == S_OK){

銆銆IPropertyBag 
*pPropBag;
銆銆hr 
= pMoniker->BindToStorage(00, IID_IPropertyBag, (void **)&pPropBag);
銆銆
if (SUCCEEDED(hr))
銆銆
{
銆銆銆
// 鑾峰彇璁懼鍚嶇О
銆銆銆VARIANT varName;
銆銆銆VariantInit(
&varName);
銆銆銆hr 
= pPropBag->Read(L"FriendlyName"&varName, 0);
銆銆銆
if (SUCCEEDED(hr)){銆銆銆
        
//鑾峰彇璁懼鍚嶇О
銆銆銆}

銆銆銆VariantClear(
&varName);
銆銆}

銆銆pMoniker
->Release();
銆}

銆pEnumCat
->Release();
}

pSysDevEnum
->Release();


2.閲囩敤Filer Mapper銆?br>   綾諱技鏉′歡鏌ヨ銆?br>
   姣旂郴緇熻澶囨灇涓懼櫒錛圫ystem Device Enumerator錛夌殑鏁堢巼瑕佷綆涓浜涖?br>   褰撹鏋氫婦鏌愮壒瀹氱綾葷殑filter鏃訛紝搴旈噰鐢ㄧ郴緇熻澶囨灇涓懼櫒鏂規硶錛屼絾鎼滅儲鏀寔鏌愮
   濯掍綋綾誨瀷鐨刦ilter鏃訛紝鐢╢ilter mapper.

   Filter Mapper 閫氳繃IFilerMapper2鎺ュ彛鎼滅儲鎺ュ彛錛?br>   閫氳繃璋冪敤IFilterMapper2::EnumMatchingFilters鏂規硶錛屼紶閫掍竴浜涘弬鏁版潵瀹氫箟鎼滅儲鏉′歡錛?br>   榪斿洖涓涓傚悎鏉′歡鐨刦ilter鐨勬灇涓懼櫒錛?br>
   榪斿洖鐨勬槸涓涓狪EnumMoniker鎺ュ彛錛屽茍瀵逛簬姣忎釜閫傚悎鐨刦ilter閮芥彁渚涗竴涓崟鐙殑moniker銆?/p>

渚嬪瓙錛?br>

//鏋氫婦鎵鏈夌殑鏀寔DV錛屽茍涓旇嚦灝戞湁涓涓緭鍑簆in鐨刦ilter錛?br>//榪欎釜filter鏀寔浠諱綍濯掍綋綾誨瀷銆?/span>
IFilterMapper2 *pMapper = NULL;
IEnumMoniker 
*pEnum = NULL;

hr 
=CoCreateInstance( CLSID_FilterMapper2,NULL, CLSCTX_INPROC, IID_IFilterMapper2, (void **&pMapper);
if (FAILED(hr)) {   }

GUID arrayInTypes[
2];
arrayInTypes[
0= MEDIATYPE_Video;
arrayInTypes[
1= MEDIASUBTYPE_dvsd;
hr 
= pMapper->EnumMatchingFilters(
           銆 
&pEnum,
                 
0,           // Reserved.
            銆TRUE,        // Use exact match?
            銆MERIT_DO_NOT_USE+1,  // Minimum merit.
            銆TRUE,        // At least one input pin?
            銆1,                 // Number of major type/subtype pairs for input.
            arrayInTypes,     // Array of major type/subtype pairs for input.
            NULL,   // Input medium.
            NULL,   // Input pin category.
            FALSE,  // Must be a renderer?
            TRUE,   // At least one output pin?
             0,      // Number of major type/subtype pairs for output.
              NULL,   // Array of major type/subtype pairs for output.
          銆NULL,   // Output medium.
             NULL);  // Output pin category.
                   
IMoniker 
*pMoniker;
ULONG cFetched; 

//鏋氫婦filter錛?/span>
while(pEnumCat->Next(1&pMoniker, &cFetched) == S_OK)
{
 銆IPropertyBag 
*pPropBag = NULL;
 銆hr 
= pMoniker->BindToStorage(00, IID_IPropertyBag, (void **)&pPropBag);
 銆
if (SUCCEEDED(hr))
 銆
{
            VARIANT varName;
   銆銆VariantInit(
&varName);
 銆  銆hr 
= pPropBag->Read(L"FriendlyName"&varName, 0);
 銆銆
if (SUCCEEDED(hr))
 銆銆
{
                   
//澶勭悊
 銆銆 }

 銆 銆VariantClear(
&varName);
銆}

銆pMoniker
->Release();
}


pMapper
->Release();
pEnum
->Release();

娉細
 * 鏈夊叧directshow鐨刟pi鍑芥暟錛屼及璁″彧鑳藉湪緗戜笂鎼滅儲錛岃嚦浜庝笅杞界殑msdn娌℃湁錛屾垨鑰呬笅涓猟ssdk2002鐗堟湰鐨刪elp鎵嶈兘鏈夈?br> * 鍦╠irectshow涓紝鍏充簬capture dev錛屾湁涓撻棬鐨刣emo婕旂ず濡備綍鑾峰彇闊寵璁懼銆傝繖閲屽彧鏄?br>鏄庝簡鑾峰彇璁懼鐨勬柟娉曘備互澶囦簡瑙c?br>


kenlistian 2008-12-09 11:43 鍙戣〃璇勮
]]>
directshow 鍩烘湰鐭ヨ瘑3http://m.shnenglu.com/kenlistian/archive/2008/12/08/68878.htmlkenlistiankenlistianMon, 08 Dec 2008 12:21:00 GMThttp://m.shnenglu.com/kenlistian/archive/2008/12/08/68878.htmlhttp://m.shnenglu.com/kenlistian/comments/68878.htmlhttp://m.shnenglu.com/kenlistian/archive/2008/12/08/68878.html#Feedback0http://m.shnenglu.com/kenlistian/comments/commentRss/68878.htmlhttp://m.shnenglu.com/kenlistian/services/trackbacks/68878.html浣跨敤DirectShow鍐欎竴涓煶棰戞崟鎹変緥瀛?br>
DirectShow瀵圭‖浠剁殑鏀寔鏄氳繃鐗瑰畾鐨勫寘瑁匜ilter鏉ュ疄鐜扮殑銆?br>澹板崱浣跨敤鐨勬槸Audio Capture Filter錛孎ilter鍐呴儴浣跨敤浠aveIn寮澶?br>鐨勪竴濂桝PI瀹炵幇錛堝waveInOpen絳夛級銆?br>榪愯GraphEdit錛屾彃鍏ilter鏃訛紝鍦?#8220;Audio Capture Sources”鐩綍涓嬶紝
灝辮兘鐪嬪埌鎵鏈変唬琛ㄦ湰鍦版満鍣ㄤ笂鐨勫0鍗$殑鍚勪釜Filter(瑁呬簡鍑犲紶澹板崱錛屽氨浼氭湁鍑犱釜Filter)


DirectShow鍔犲叆涓涓‖浠禙ilter錛屾槸闈?#8220;鏋氫婦”錛涘0鍗ilter涔熶笉渚嬪銆?br>浠h〃澹板崱鐨凢ilter閮芥敞鍐屽湪CLSID_AudioInputDeviceCategory鐩綍涓嬶紝
浣跨敤緋葷粺璁懼鏋氫婦鍣ㄦ灇涓捐繖涓洰褰曪紝灝辮兘鍙戠幇瑕佸垱寤虹殑澹板崱瀵硅薄銆?br> 錛堝浣曟灇涓捐繖閲屽氨涓嶅啀璧樿堪浜嗐?
褰撴垚鍔熷姞鍏ュ0鍗ilter鍚庯紝鎺ヤ笅鍘葷殑闂灝辨槸瑕佸皢榪欎釜Filter涓庡叾浠朏ilter鐩歌繛銆?/p>


 鎯蟲崟鎹夌敓鎴愪竴涓猈ave鏂囦歡錛岄噰鐢ㄨ繃婊ゅ櫒鐨勫嬀榪炲涓?br>     澹板崱filter--->Wave Dest Filter  ---->File Writer Filter
 Wave Dest Filter鏄井杞疍irectX SDK鑷甫鐨勮繃婊ゅ櫒
    鍏跺姛鑳芥槸錛屽綋緇撴潫鎹曟崏鏃訛紝寰Wave鏂囦歡涓啓鍏ヤ竴涓枃浠跺ご淇℃伅銆?br>
 Filte Write Filter 鏄井杞郴緇熻繃婊ゅ櫒銆?br>鐢╣raphedit鍙互鍕捐繛鍚庢祴璇曚笅銆?/p>


//閲囩敤紼嬪簭鏉ヨ繛鎺ヨ繃婊ゅ櫒鐨勫ぇ鑷存柟娉?
//娌℃湁澶勭悊閿欒
void BuildAudioCaptureGraph(void)
{
 銆IBaseFilter *pSrc = NULL,            //鎹曟崏闊抽璁懼
               *pWaveDest = NULL,         //澶勭悊闊抽榪囨護鍣?br>        *pWriter = NULL;                      //浜х敓鏂囦歡榪囨護鍣?/p>

 銆IFileSinkFilter *pSink= NULL;
 銆IGraphBuilder *pGraph;

 銆// Create the Filter Graph Manager.
 銆CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,     IID_IGraphBuilder, (void**)&pGraph);

 銆// Add the audio capture filter.
     //榪欓噷鐪佺暐浜嗘灇涓捐澶囧鐞?br> 銆FindAudioCapture(&pSrc);
 
 銆// audio capture devices and picks one.
 銆pGraph->AddFilter(pSrc, L"Capture");

 銆// Add the WavDest and the File Writer.
 銆AddFilterByClsid(pGraph, L"WavDest", CLSID_WavDest, &pWavDest);
 銆AddFilterByClsid(pGraph, L"File Writer", CLSID_FileWriter, &pWriter);

 銆//鏄痺riter鎺ュ彛涓睘鎬?br> 銆pWriter->QueryInterface(IID_IFileSinkFilter, (void**)&pSink);
 銆pSink->SetFileName(L"C:\test.wav", NULL);

 銆//榪炴帴filter
 銆ConnectTwoFilters(pGraph, pSrc, pWavDest);
 銆ConnectTwoFilters(pGraph, pWavDest, pWriter);
}


 



kenlistian 2008-12-08 20:21 鍙戣〃璇勮
]]>
directshow 鍩烘湰瀛︿範2http://m.shnenglu.com/kenlistian/archive/2008/12/08/68835.htmlkenlistiankenlistianMon, 08 Dec 2008 04:50:00 GMThttp://m.shnenglu.com/kenlistian/archive/2008/12/08/68835.htmlhttp://m.shnenglu.com/kenlistian/comments/68835.htmlhttp://m.shnenglu.com/kenlistian/archive/2008/12/08/68835.html#Feedback0http://m.shnenglu.com/kenlistian/comments/commentRss/68835.htmlhttp://m.shnenglu.com/kenlistian/services/trackbacks/68835.htmlDirectShow鎶鏈槸寤虹珛鍦―irectDraw鍜孌irectSound緇勪歡鍩虹涔嬩笂鐨勶紝
瀹冮氳繃DirectDraw瀵規樉鍗¤繘琛屾帶鍒朵互鏄劇ず瑙嗛錛?br>閫氳繃DirectSound瀵瑰0鍗¤繘琛屾帶鍒朵互鎾斁澹伴煶銆?/p>

DirectShow鍔熻兘瀹炵幇錛?/p>

1.鍙彁渚涢珮璐ㄩ噺鐨勫濯掍綋嫻佺殑鎹曡幏鍜屽洖鏀懼姛鑳斤紱
2.鏀寔澶氱濯掍綋鏍煎紡錛屽寘鎷珹SF錛圓dvanced Systems Format錛夛紝MPEG錛圡otion Picture Experts Group錛夛紝AVI錛圓udio-Video Interleaved錛夛紝MP3錛圡PEG Audio Layer-3錛夊拰WAV澹伴煶鏂囦歡錛?br>3.鍙粠紜歡涓婃崟鑾峰獟浣撴暟鎹祦錛?br>4.鍙嚜鍔ㄦ嫻嬪茍浣跨敤瑙嗛鍜岄煶棰戝姞閫熺‖浠躲?/p>

鏁咃紝DirectShow鏄敤浜庡濯掍綋搴旂敤寮鍙戙?鍏跺疄灝辨槸涓涓蔣緙栫爜(or瑙g爜))
瀹冨厖鍒嗗彂鎸ュ獟浣撶殑鎬ц兘錛屾彁楂樿繍琛岄熷害錛屽彲浠ョ畝鍖栧獟浣撴挱鏀俱佸獟浣撻棿鐨勬牸寮忚漿鎹?br>鍜屽獟浣撴崟鑾風瓑宸ヤ綔銆傚悓鏃訛紝瀹冭繕鍏鋒湁鏋佸ぇ鐨勫彲鎵╁睍鎬у拰鐏墊椿鎬э紝鍙互鐢辯敤鎴瘋嚜宸?br>鍒涘緩緇勪歡錛屽茍灝嗚繖涓粍浠跺姞鍏irectShow緇撴瀯涓互鏀寔鏂扮殑鏍煎紡鎴栫壒孌婄殑鏁堟灉銆?/p>

搴旂敤紼嬪簭涓嶥irectShow緇勪歡浠ュ強DirectShow鎵鏀寔鐨勮蔣紜歡涔嬮棿鐨勫叧緋?br>濡傚浘1

 


浜屻傛蹇?br>1.榪囨護鍣?br>榪囨護鍣ㄥ垎涓轟互涓嬪嚑縐嶇被鍨嬶細
 a 婧愯繃婊ゅ櫒錛坰ource filter錛夛細
    婧愯繃婊ゅ櫒寮曞叆鏁版嵁鍒拌繃婊ゅ櫒鍥捐〃涓紝鏁版嵁鏉ユ簮鍙互鏄枃浠躲佺綉緇溿佺収鐩告満絳夈?br>    涓嶅悓鐨勬簮榪囨護鍣ㄥ鐞嗕笉鍚岀被鍨嬬殑鏁版嵁婧愩?/p>

 b 鍙樻崲榪囨護鍣紙transform filter錛夛細
   鍙樻崲榪囨護鍣ㄧ殑宸ヤ綔鏄幏鍙栬緭鍏ユ祦錛屽鐞嗘暟鎹紝騫剁敓鎴愯緭鍑烘祦銆?br>   鍙樻崲榪囨護鍣ㄥ鏁版嵁鐨勫鐞嗗寘鎷紪瑙g爜銆佹牸寮忚漿鎹€佸帇緙╄В鍘嬬緝絳夈?/p>

 c 鎻愪氦榪囨護鍣紙renderer filter錛夛細
    鎺ユ敹鏁版嵁騫舵妸鏁版嵁鎻愪氦緇欏璁俱?/p>

 d 鍒嗗壊榪囨護鍣紙splitter filter錛夛細
    鎶婅緭鍏ユ祦鍒嗗壊鎴愬涓緭鍑恒?br>    濡傦紝AVI鍒嗗壊榪囨護鍣ㄦ妸涓涓狝VI鏍煎紡鐨勫瓧鑺傛祦鍒嗗壊鎴愯棰戞祦鍜岄煶棰戞祦銆?/p>

 e 娣峰悎榪囨護鍣紙mux filter錛夛細
    鎶婂涓緭鍏ョ粍鍚堟垚涓涓崟鐙殑鏁版嵁嫻併?br>    濡傦紝AVI娣峰悎榪囨護鍣ㄦ妸瑙嗛嫻佸拰闊抽嫻佸悎鎴愪竴涓狝VI鏍煎紡鐨勫瓧鑺傛祦銆?br>    銆榪囨護鍣ㄧ殑榪欎簺鍒嗙被騫朵笉鏄粷瀵圭殑錛屽涓涓狝SF璇昏繃婊ゅ櫒錛圓SF Reader filter錛?br>       鏃㈡槸涓涓簮榪囨護鍣ㄥ張鏄竴涓垎鍓茶繃婊ゅ櫒銆?br>

2  filter graph

    榪囨護鍣ㄥ浘琛ㄧ敤鏉ヨ繛鎺ヨ繃婊ゅ櫒浠ユ帶鍒跺獟浣撴祦錛屽畠涔熷彲浠ュ皢鏁版嵁榪斿洖緇欏簲鐢ㄧ▼搴忥紝
    騫舵悳绱㈡墍鏀寔鐨勮繃婊ゅ櫒銆?br>    榪囨護鍣ㄦ湁涓夌鍙兘鐨勭姸鎬侊細榪愯銆佸仠姝㈠拰鏆傚仠銆?br>    鏆傚仠鏄竴縐嶄腑闂寸姸鎬侊紝鍋滄鐘舵佸埌榪愯鐘舵佸繀瀹氱粡榪囨殏鍋滅姸鎬併?br>    鏆傚仠鍙互鐞嗚В涓烘暟鎹氨緇姸鎬侊紝鏄負浜嗗揩閫熷垏鎹㈠埌榪愯鐘舵佽岃璁$殑銆?nbsp;  
    鍦ㄦ殏鍋滅姸鎬佷笅錛屾暟鎹嚎紼嬫槸鍚姩鐨勶紝浣嗚鎻愪氦榪囨護鍣ㄩ樆濉炰簡銆?br>   
    閫氬父鎯呭喌涓嬶紝榪囨護鍣ㄥ浘琛ㄤ腑鎵鏈夎繃婊ゅ櫒鐨勭姸鎬佹槸涓鑷寸殑銆?br>
3. 寮曡剼錛坧in錛?br>銆榪囨護鍣ㄥ彲浠ュ拰涓涓垨澶氫釜榪囨護鍣ㄧ浉榪烇紝
    榪炴帴鐨勬帴鍙d篃鏄疌OM褰㈠紡鐨勶紝縐頒負寮曡剼銆?br>   
    榪囨護鍣ㄥ埄鐢ㄥ紩鑴氬湪鍚勪釜榪囨護鍣ㄩ棿浼犺緭鏁版嵁銆?br>    姣忎釜寮曡剼閮戒粠Ipin榪欎釜COM瀵硅薄媧劇敓鍑烘潵鐨勩?br>    姣忎釜寮曡剼閮芥槸榪囨護鍣ㄧ殑縐佹湁瀵硅薄錛岃繃婊ゅ櫒鍙互鍔ㄦ佺殑鍒涘緩寮曡剼錛岄攢姣佸紩鑴氾紝鑷敱鎺у埗寮曡剼鐨勭敓瀛樻椂闂淬?br>    寮曡剼鍒嗚緭鍏ュ紩鑴氾紙Input pin錛夊拰杈撳嚭寮曡剼錛圤utput pin錛変袱縐嶇被鍨嬶紝
    涓や釜鐩歌繛鐨勫紩鑴氬繀欏繪槸涓嶅悓縐嶇被鐨勶紝鍗寵緭鍏ュ紩鑴氬彧鑳藉拰杈撳嚭寮曡剼鐩歌繛

銆榪囨護鍣ㄤ箣闂寸殑榪炴帴錛堜篃灝辨槸寮曡剼涔嬮棿鐨勮繛鎺ワ級錛屽疄闄呬笂鏄繛鎺ュ弻鏂瑰獟浣撶被鍨嬶紙Media Type錛夊崗鍟嗙殑榪囩▼銆傦紙濯掍綋綾誨瀷錛屼笉瀹屽叏濯掍綋綾誨瀷 鍐嶄笅涓鑺傛湁璁茶В)


   榪炴帴鐨勫ぇ鑷磋繃紼嬩負錛?br>     濡傛灉璋冪敤榪炴帴鍑芥暟鏃跺凡緇忔寚瀹氫簡瀹屾暣鐨勫獟浣撶被鍨嬶紝鍒欑敤榪欎釜濯掍綋綾誨瀷榪涜榪炴帴錛?br>  鎴愬姛涓庡惁閮界粨鏉熻繛鎺ヨ繃紼嬶紱
      濡傛灉娌℃湁鎸囧畾鎴栦笉瀹屽叏鎸囧畾浜嗗獟浣撶被鍨嬶紝
      鍒欐灇涓捐繃紼嬭鍚庨潰.鍏朵袱涓猣ilter鐨勮繛鎺ヨ瀹氬涓?
    
                 Filter A     ------------------> Filter B



------------------------------------------------------------- ------------------

璇存槑:
濯掍綋綾誨瀷錛圡edia Type錛?br>    涓や釜榪囨護鍣ㄧ浉榪炴椂錛屽繀欏諱嬌鐢ㄤ竴鑷寸殑濯掍綋綾誨瀷錛屽惁鍒欒繖涓や釜榪囨護鍣ㄥ氨涓嶈兘鐩歌繛銆?br>
    濯掍綋綾誨瀷鑳借瘑鍒笂涓綰ц繃婊ゅ櫒浼犻佺粰涓嬩竴綰ц繃婊ゅ櫒鐨勬暟鎹被鍨嬶紝騫跺鏁版嵁榪涜鍒嗙被銆?br>   濯掍綋綾誨瀷鐨勭粨鏋?nbsp; AM_MEDIA_TYPE
 
  AM_MEDIA_TYPE鐢變笁閮ㄥ垎緇勬垚錛?br>      Major type
      Subtype
      Format type
   
   閮戒嬌鐢℅UID 鏉ュ敮涓鏍囩ず
    
     Major type涓昏瀹氭ф弿榪頒竴縐嶅獟浣撶被鍨嬶紝榪欑濯掍綋綾誨瀷鍙互鏄棰戙侀煶棰戙佹瘮鐗規暟鎹祦鎴朚IDI鏁版嵁絳夛紱
     Subtype   榪涗竴姝ョ粏鍖栧獟浣撶被鍨嬶紝
              鎷胯棰戠殑璇村氨鏄繘涓姝ユ寚瀹氭槸RGB-24錛岃繕鏄疪GB-32錛屾垨鏄疷YVY絳夛紱
     Format type鍒欑敤涓涓粨鏋勬洿榪涗竴姝ョ粏鍖栧獟浣撶被鍨嬨?/p>

銆濯掍綋綾誨瀷鐨勪笁涓儴鍒嗛兘鎸囧畾浜嗘煇涓叿浣撶殑GUID鍊鹼紝鍒欑О榪欎釜濯掍綋綾誨瀷鏄畬鍏ㄦ寚瀹氱殑錛?br>    濯掍綋綾誨瀷鐨勪笁涓儴鍒嗕腑鏈変換浣曚竴涓兼槸GUID_NULL錛屽垯縐拌繖涓獟浣撶被鍨嬫槸涓嶅畬鍏ㄦ寚瀹氱殑銆?br>    GUID_NULL璧烽氶厤絎︿綔鐢?br>

pinout鍜宲inin鐨勮繛鎺ヨ繃紼嬪彲浠ョ敤涓嬮潰閫昏緫璇█琛ㄨ揪.

1.濡傝皟鐢ㄨ繛鎺ュ嚱鏁版椂宸茬粡鎸囧畾浜嗗畬鏁寸殑Media type錛屽垯鐢ㄨ繖涓狹edia type榪涜榪炴帴錛?br>鎴愬姛涓庡惁閮界粨鏉熻繛鎺ヨ繃紼嬶紱

2.濡傛病鏈夋寚瀹氭垨涓嶅畬鍏ㄦ寚瀹氫簡Media type錛?br>鍒欏涓?

  BOOL CheckFilterB_PinIn()
  {
       for(i = 0 ; i < FilterB.FPinIn.MediaTypeCount ; i++)
      {
           if (IsSameMediaType(FilterA.FPinOut,FilterB.FPinIn.MediaType[i]) = True)
          {
                 return TRUE;   //Pin涔嬮棿鐨勮繛鎺ユ垚鍔燂紱
          }
       }
        return FALSE;          //鍦↖nput pin涓嶆敮鎸佽濯掍綋綾誨瀷,澶辮觸.
    }


  榪斿洖FALSE鍐嶆灇涓綩utput pin涓婄殑鎵鏈塎edia type錛屽茍閫愪竴鐢ㄨ繖浜汳edia type涓嶪nput pin榪涜榪炴帴銆?br>  
   for(i = 0 ; i < FilterA.FPinOut.MediaTypeCount; i++)
   {
      if (CheckFilteB_PinIn(FilterA.FPinOut.MediaType[i]) = True )
      {
         return TRUE;
      }
   }
   return FALSE;  //filterA鍜宖ilterB鐨勮繛鎺ュけ璐?



 



kenlistian 2008-12-08 12:50 鍙戣〃璇勮
]]>
directshow 鍩烘湰1http://m.shnenglu.com/kenlistian/archive/2008/12/08/68825.htmlkenlistiankenlistianMon, 08 Dec 2008 03:38:00 GMThttp://m.shnenglu.com/kenlistian/archive/2008/12/08/68825.htmlhttp://m.shnenglu.com/kenlistian/comments/68825.htmlhttp://m.shnenglu.com/kenlistian/archive/2008/12/08/68825.html#Feedback0http://m.shnenglu.com/kenlistian/comments/commentRss/68825.htmlhttp://m.shnenglu.com/kenlistian/services/trackbacks/68825.htmlDirectShow 鐨勫嚑涓帴鍙h鏄?br>(1) IGraphBuilder鎺ュ彛
     鐢ㄤ簬鏋勯燜ilter Graph鐨勬帴鍙o紝寤虹珛鍜岀鐞嗕竴緋誨垪鐨凢ilter錛岃繃婊ゅ拰澶勭悊婧愬獟浣撴祦銆?br>(2) IMediaControl鎺ュ彛
     鐢ㄤ簬鎺у埗澶氬獟浣撴祦鍦‵ilter Graph涓殑嫻佸姩錛屽嫻佺殑鍚姩鍜屽仠姝€?br>(3) IMediaEvent鎺ュ彛
     鐢ㄤ簬鎹曡幏鎾斁榪囩▼涓彂鐢熺殑浜嬩歡錛屽茍閫氱煡搴旂敤紼嬪簭錛屽EC_COMPLETE絳夈?br>(4) IVideoWindow鎺ュ彛
     鐢ㄤ簬鎺у埗瑙嗛紿楀彛鐨勫睘鎬с?br>(5) IMeadiaSeeking鎺ュ彛
     鐢ㄤ簬鏌ユ壘濯掍綋鐨勬帴鍙o紝瀹氫綅嫻佸獟浣擄紝鎺у埗澶氬獟浣撴暟鎹挱鏀炬彁渚涚簿紜帶鍒躲?br>(6) IBaseFilter鎺ュ彛
    浠嶪mediaFilter鎺ュ彛緇ф壙錛岀敤鏉ュ畾涔変竴涓叿浣撶殑榪囨護鍣ㄦ寚閽堬紝騫跺澶氬獟浣撴暟鎹繘琛屽鐞嗐?br>(7) IPin鎺ュ彛
    鐢ㄤ簬綆$悊涓や釜榪囨護鍣ㄤ箣闂寸殑Pin錛屼粠鑰岃繛鎺ヨ繃婊ゅ櫒銆?br>(8) IsampleGrabberCB鎺ュ彛
   鏄疭ample Grabber榪囨護鍣ㄧ殑涓涓帴鍙o紝鐢ㄤ簬褰撴祦濯掍綋鏁版嵁閫氳繃榪囨護鍣ㄦ椂榪涜閲囨牱浠ヨ幏寰楀撫鍥捐薄銆?/p>


Filter蹇呴』鍔犲叆鍒癋ilter Graph騫舵帴鍏ュ埌宸ヤ綔閾捐礬涓墠鑳藉彂鎸ヤ綔鐢ㄣ?br>濡傛兂緇曡繃Filter Graph鑰岀洿鎺ヤ嬌鐢‵ilter瀹炵幇鐨勫姛鑳芥ā鍧楋紝閭e氨瑕佸皢Filter鍔熻兘
縐繪鎴怐irectX濯掍綋瀵硅薄錛圖MO錛夈?br>Filter鏈?縐嶇姸鎬侊細鍋滄銆佹殏鍋滃拰榪愯銆?/p>

Filter Chain鏄浉浜掕繛鎺ョ潃鐨勪竴鏉ilter閾捐礬錛屽茍涓旈摼璺腑鐨勬瘡涓狥ilter鍏ㄩ兘鏈変竴涓浜?#8220;宸茶繛鎺?#8221;鐘舵佺殑
杈撳叆Pin錛岃嚦澶氭湁涓涓浜?#8220;宸茶繛鎺?#8221;鐘舵佺殑杈撳嚭Pin錛岃繖鏉ilter閾捐礬涓殑鏁版嵁嫻佷笉渚濊禆閾捐礬澶栫殑鍏朵粬Filter銆?/p>

Filter Chain閫氳繃IFilterChain鎺ュ彛鏉ヨ繘琛岀浉鍏蟲搷浣溿?br>褰揊ilter Graph澶勪簬榪愯鐘舵佷笅錛孎ilter Chain鍙互鍦ㄨ繍琛屽拰鍋滄鐘舵佷箣闂村垏鎹紱
褰揊ilter Graph澶勪簬鏆傚仠鐘舵佷笅錛孎ilter Chain鍙互鍦ㄦ殏鍋滃拰鍋滄鐘舵佷箣闂村垏鎹€?br>Filter Chain鍙湁涓ょ鐘舵佽漿鎹€?/p>

Filter鐨勬暟鎹紶閫?br>Filter涔嬮棿浠ample鐨勫艦寮忎紶閫佹暟鎹?br>Sample鏄竴涓皝瑁呬簡涓瀹氬ぇ灝忔暟鎹唴瀛樼殑COM緇勪歡銆?br>鐢ㄤ簬鏁版嵁浼犺緭鐨勪竴鑸槸杈撳叆pin涓婂疄鐜扮殑IMemInputPin鎺ュ彛銆?/p>

kenlistian 2008-12-08 11:38 鍙戣〃璇勮
]]>
鏈夊叧direct show 緙栬瘧闂姹囨?杞?http://m.shnenglu.com/kenlistian/archive/2008/12/08/68797.htmlkenlistiankenlistianSun, 07 Dec 2008 17:11:00 GMThttp://m.shnenglu.com/kenlistian/archive/2008/12/08/68797.htmlhttp://m.shnenglu.com/kenlistian/comments/68797.htmlhttp://m.shnenglu.com/kenlistian/archive/2008/12/08/68797.html#Feedback0http://m.shnenglu.com/kenlistian/comments/commentRss/68797.htmlhttp://m.shnenglu.com/kenlistian/services/trackbacks/68797.html    浠ヤ笅閰嶇疆鍧囦互vc6涓轟富.

涓銆侀厤緗柟娉?
1 鍏堢紪璇慡amples\C++\DirectShow\BaseClasses涓殑宸ョ▼鏂囦歡銆?br>娉ㄦ剰宸ョ▼鐨勯粯璁ら夐」鏄?Debug_Unicode鐨勶紝鍦ㄩ潪Unicode鐨勫伐紼嬩腑浣跨敤榪橀渶瑕佺紪璇慏ebug鐗堟湰鐨勩?

 娉ㄦ剰:
  涓鑸敤 ansi debug鐗?涓嶆曢夯鐑︽妸release涔熺敓鎴?鍙栧嚭璇trmbasd.lib(strmbase.lib).
  鏀懼湪dxsdk涓殑lib涓?


2 闇瑕佽緗ソVC涓洰褰曠殑璁劇疆 include鐨勭洰褰曚腑娣誨姞 C:\DXSDK\Samples\C++\DirectShow\BaseClasses Lib鐨勭洰褰曚腑娣誨姞 C:\DXSDK\Samples\C++\DirectShow\BaseClasses\Debug
娉ㄦ剰:
  寤鴻鎶婃妸classes 鎶婂ご鏂囦歡鍙互鍗曠嫭鎷瘋礉鍒癲xsdk鐨刬nclude鍜宭ib涓?

3銆佷嬌鐢―irectShow鐨勫伐紼嬮渶瑕佹坊鍔犱笅闈袱涓ご鏂囦歡
#include   //DS鎺ュ彛銆佸熀綾葷殑瀹氫箟
#include    //CComPtr妯℃澘鐨勫畾涔?
#pragma comment(lib,"strmbasd.lib")
#pragma comment(lib,"winmm.lib")
#pragma comment(linker,"/NODEFAULTLIB:libcmtd.lib")

娉ㄦ剰:
  VC鑷甫鐨勫簱涓篃鏈塻trmbasd.lib鏂囦歡銆?br>涓瀹氳淇濊瘉榪炴帴鍒癉S鐨勫簱涓紝鍚﹀垯浼氬嚭鐜?#160;
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA)
strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "int g_cTemplates" (?g_cTemplates@@3HA) 涔嬬被鐨勯敊璇?

  浠ヤ笂link鎶ラ敊鍚勫紓,鏈濂芥妸lib鐨勪綅緗笂涓嬭皟璋?鍒摼鍒皏c鑷甫鐨勫簱涓?楝奸棶棰樺悕鍫傚お澶?鏈夋椂涔熷拰direct showsdk鐗堟湰鏈夊叧.

浜?緙栬瘧鍚庡嚭鐜扮殑閿欒:
1 syntax error : identifier 'DWORD_PTR'
濡備笅:
e:\directx9\samples\c++\directshow\baseclasses\wxutil.h(53) : error C2061: syntax error : identifier 'DWORD_PTR'
e:\directx9\samples\c++\directshow\baseclasses\ctlutil.h(43) : error C2504: 'IBasicVideo2' : base class undefined
e:\directx9\samples\c++\directshow\baseclasses\ctlutil.h(904) : error C2146: syntax error : missing ';' before identifier 'm_dwAdvise' e:\directx9\samples\c++\directshow\baseclasses\ctlutil.h(90) : error C2501: 'DWORD_PTR' : missing storage-class or type specifierse
   濡傛灉鍙戠敓榪欑鎯呭喌錛屼綘搴旇浠?Tools"鐩綍涓夋嫨"Option"錛?br>   鐒跺悗鍦╥nclude directory涓皢Platform SDK鍔犲埌VC inlcude涓?

娉ㄦ剰:
 1. 娌℃湁璇dk,闇瑕佸厛涓嬭澆platform sdk. 鍦ㄦ垜鐨勯殢絎斾腑鍖呭惈璇ラ摼鎺?
2. 瑕佹斁鍦↖nclude鏈鍓嶉潰.


2 LINK : fatal error LNK1104: cannot open file "mfc42ud.lib" mfc42ud.lib鏄笓闂ㄧ粰unicode鐢ㄧ殑 build-->set active Configuration--> XXX win32 debug 榪欐牱灝卞彲浠ヤ簡 

3“CComPtr< ”鎬庝箞鐢紵
CComPtr m_spApi;鍦ㄦ帶鍒跺彴紼嬪簭涓彲浠ョ紪璇戞垚鍔燂紝
   浣唌fc涓姤閿欙紝鎬庝箞鍥炰簨錛熼敊璇俊鎭細
error C2143: syntax error : missing ';' before '<'
error C2501: 'CComPtr' : missing storage-class or type specifiers
error C2059: syntax error : '<'
error C2238: unexpected token(s) preceding ';'
鍘熷洜錛氱己灝戞枃浠訛紝鍦╲c6涓槸atlbase.h錛屽彲鑳藉湪.net涓槸atlcomcli.h
瑙e喅鏂規硶錛氬湪stdafx.h涓姞鍏?include
 娉ㄦ剰:
    浠ヤ笂lib璺緞瑕佸.


5 璋冪敤CoInitializeEx(),緙栬瘧鍚庢樉紺烘湭瀹氫箟
CoInitializeEx()鏄埄鐢–OM緇勪歡鏃舵瘡涓嚎紼嬮兘瑕佽皟鐢ㄧ殑鍑芥暟錛?br>浣跨敤榪欎釜鍑芥暟闇瑕佹湁濡備笅璁劇疆錛?br>  鍦≒roject -> setting -> C/C++鏍囩涓嬬殑Preprocessor definitions涓姞鍏?_WIN32_WINNT=0x400"璇彞




]]>
vc6涓嬬殑directshow鐨勫ご鏂囦歡http://m.shnenglu.com/kenlistian/archive/2008/07/15/56223.htmlkenlistiankenlistianTue, 15 Jul 2008 11:28:00 GMThttp://m.shnenglu.com/kenlistian/archive/2008/07/15/56223.htmlhttp://m.shnenglu.com/kenlistian/comments/56223.htmlhttp://m.shnenglu.com/kenlistian/archive/2008/07/15/56223.html#Feedback0http://m.shnenglu.com/kenlistian/comments/commentRss/56223.htmlhttp://m.shnenglu.com/kenlistian/services/trackbacks/56223.htmlvc6 涓嬬殑msdn鐗堟湰錛氭渶鍚庝竴涓敮鎸乂S6鐨勭増鏈槸2001騫?0鏈堢増錛?br>

DirectX SDK錛欴irectX 9.0 Summer 2004 SDK Update錛?br>
涓嬭澆欏甸潰錛?a >http://www.microsoft.com/downloads/details.aspx?FamilyID=fd044a42-9912-42a3-9a9e-d857199f888e&DisplayLang=en
榪欎釜鐗堟湰鐨凞irect 9 SDK鏄笉瀹屽叏鏀寔VC6鐨勶紝

娉ㄦ剰涓嬭澆欏甸潰鐨凮verview錛?br>This download contains all the extra files that are not included in the DirectX 9.0 SDK Summer Update 2004 release such as a d3dx.lib which supports VC 6.0, older plug-ins and Japanese version of the documentation.
鍗矰irectX SDK Summer Update 2004閲岄潰闄勫甫鐨刣3dx.lib鏄笉鏀寔VC6鐨勶紝鏀寔VC6鐨勭増鏈湪Extras鍖呴噷闈€?br>
榪橀』涓婦irectX 9.0 Summer 2004 SDK Update Extras錛?a >http://www.microsoft.com/downloads/details.aspx?FamilyID=736585e1-10f0-4e85-b940-828cba9971f1&DisplayLang=en錛夛紝

鍙﹀緙栬瘧鏃跺嚭鐜頒簡DWORD_PTR鎴栬呭叾浠栦粈涔堢被鍨嬫湭瀹氫箟涔嬬被鐨勯敊璇紝鏄洜涓哄井杞妸BASETSD.H浠嶥irectX SDK鍙戣鍖呴噷鎷挎帀浜嗭紝榪欎釜鏂囦歡鍦≒latform SDK閲屾湁錛屽湪VC鐨処nclude璺緞涓妸Platform SDK鐨刬nclude璺緞鎻愬埌鏈鍓嶉潰灝卞彲浠ヤ簡銆?br>Platform SDK錛屾渶鍚庝竴涓敮鎸乂C6鐨凱latform SDK鏄疐ebruary 2003 Edition錛?br>涓嬭澆錛?a >http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm


****************************************************
鍥犱負鐜板湪浠庡井杞笅杞介渶瑕侀獙璇?br>
鍙互涓婦irectX 9 SDK 綺劇畝鐗堬紝7M澶э紝榪欓噷DirectX 9 SDK 綺劇畝鐗堢殑涓嬭澆鍦板潃錛?br>http://www.gameres.com/Resource/dx9sdk.zip

浠嶮SDN6閲岄潰鎻愬彇鍑烘潵鐨凞irectShow澶存枃浠訛細
http://www.shenglu.com/UserFiles/File/files/DirectShow_Include_files_from_msdn6cd1.zip



鎰熻阿涓婇潰鎻愪緵鑰呫?

kenlistian 2008-07-15 19:28 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美另类一区| 国产午夜精品全部视频在线播放| 欧美日韩亚洲系列| 欧美一区永久视频免费观看| 亚洲综合欧美| 亚洲一区制服诱惑| 中文一区二区在线观看| 一区二区三区欧美| 欧美精品免费看| 日韩午夜黄色| 欧美日韩成人免费| 欧美日韩国语| 国产精品成人免费视频| 国产精品成人一区二区三区吃奶| 国产精品免费观看在线| 国产一区二区福利| 亚洲高清在线观看| 一区二区三区成人精品| 欧美一区二区三区日韩视频| 久久夜色精品国产欧美乱极品| 欧美成人中文字幕| 亚洲最快最全在线视频| 午夜亚洲福利| 欧美aⅴ99久久黑人专区| 欧美日韩国产免费观看| 国产精品一二一区| 亚洲高清在线播放| 亚洲免费影视| 久久综合色一综合色88| 亚洲精品国产精品乱码不99按摩| 亚洲精品久久久久久下一站| 亚洲在线1234| 欧美极品影院| 韩国一区二区三区美女美女秀| 亚洲国产日韩一区| 欧美在线啊v一区| 欧美高清影院| 午夜影院日韩| 欧美日韩国产91| 永久555www成人免费| 欧美阿v一级看视频| 国产精品二区三区四区| 亚洲人成7777| 久久久xxx| 国产精品99久久久久久久久| 久久人人爽国产| 国产精品一区一区| 一本色道精品久久一区二区三区 | 亚洲一区二区三区激情| 欧美aaaaaaaa牛牛影院| 亚洲欧美激情四射在线日| 欧美电影资源| 1024日韩| 看片网站欧美日韩| 欧美一区二区在线| 亚洲精品亚洲人成人网| 欧美xxx在线观看| 一区二区在线视频| 久久人人爽国产| 亚洲免费影视第一页| 国产精品久久婷婷六月丁香| 一区二区三区欧美| 亚洲伦理中文字幕| 免费观看一级特黄欧美大片| 亚洲国产精品一区二区尤物区| 久久免费视频在线| 久久av一区二区三区漫画| 国产精一区二区三区| 亚洲欧美综合国产精品一区| 99精品视频免费在线观看| 欧美日韩精品一区视频| 亚洲天天影视| 亚洲午夜免费视频| 国产精品女主播在线观看 | 国产农村妇女毛片精品久久莱园子| 亚洲淫性视频| 亚洲一区高清| 国产一区二区无遮挡| 裸体丰满少妇做受久久99精品 | 一区二区三区|亚洲午夜| 亚洲免费观看高清完整版在线观看| 欧美高清在线视频| 亚洲深爱激情| 欧美国产日韩免费| 欧美日本在线一区| 亚洲欧美韩国| 久久av一区二区三区漫画| 亚洲第一久久影院| 亚洲精品乱码久久久久久| 欧美日韩视频免费播放| 欧美一区二视频| 久久久久在线| 亚洲午夜av在线| 欧美在线亚洲| 欧美日韩国产成人在线91| 激情综合色综合久久综合| 欧美激情精品久久久久久黑人 | 久久99在线观看| 日韩视频在线观看| 亚洲欧美日韩国产综合| 亚洲国产日韩一级| 亚洲一区二区欧美| 亚洲电影免费观看高清完整版| 亚洲精品一区二区网址| 国产一区二区日韩精品欧美精品| 欧美国产精品久久| 亚洲精品中文字| 国产欧美日韩另类一区| 亚洲肉体裸体xxxx137| 黑人一区二区| 亚洲一本大道在线| 99视频在线观看一区三区| 久久久久久久久久久久久9999| 亚洲综合日韩在线| 欧美精品观看| 欧美国产视频在线观看| 国产一区二区三区久久悠悠色av| 亚洲精品乱码久久久久久| 在线欧美日韩精品| 久久精品电影| 香蕉久久精品日日躁夜夜躁| 欧美日韩在线视频观看| 亚洲人成人一区二区在线观看| 激情欧美一区二区三区在线观看| 亚洲性感激情| 亚洲欧美中文另类| 国产精品久久久久久久久久ktv| 最新国产成人在线观看| 亚洲激情视频网| 久久久久国产精品www | 久久久久在线| 国产精品久久久久久妇女6080 | 国产精品电影网站| 99国产一区| 亚洲激情影视| 久久狠狠一本精品综合网| 亚洲影院免费| 欧美另类在线观看| 亚洲精品中文字| 亚洲人在线视频| 久久久噜噜噜久久中文字幕色伊伊 | 欧美日韩中文精品| 欧美freesex交免费视频| 国产精品久久久久久久午夜片| 老鸭窝91久久精品色噜噜导演| 欧美国产亚洲另类动漫| 久久人人爽人人爽爽久久| 欧美在线精品一区| 久久成人综合视频| 欧美日韩调教| 亚洲综合精品四区| 亚洲一区黄色| 亚洲视频在线播放| 一区二区三区精密机械公司| 亚洲欧美日韩精品久久久久| 欧美午夜剧场| 一区二区三区欧美激情| 欧美一区二区三区免费观看| 亚洲一区日韩在线| 亚洲一区二区不卡免费| 国产嫩草一区二区三区在线观看| 一区二区福利| 久久久久久久999| 国产一区二区三区观看| 久久成人18免费观看| 亚洲视频一区二区| 欧美亚洲不卡| 亚洲欧美日韩成人高清在线一区| 亚洲欧美日韩一区二区三区在线| 国产日韩亚洲欧美综合| 久久不射网站| 亚洲成人资源网| 亚洲国产婷婷综合在线精品| 欧美日韩中文| 欧美一区在线看| 欧美国产精品专区| 亚洲精品免费一区二区三区| 久久婷婷蜜乳一本欲蜜臀| 一区二区三区欧美视频| 久久精品五月| 亚洲国产欧洲综合997久久| 欧美久久在线| 久久久久久午夜| 亚洲人成在线免费观看| 香蕉久久夜色精品国产| 激情成人亚洲| 国产日韩欧美在线播放| 噜噜噜躁狠狠躁狠狠精品视频| 欧美电影在线播放| 亚洲视频在线一区| 国产情人节一区| 国产精品爱久久久久久久| 久久福利电影| 99re热这里只有精品免费视频| 久久国产福利| 亚洲欧洲美洲综合色网| 国产精品免费看| 欧美国产高潮xxxx1819| 亚洲综合第一| 久久国产精品久久久久久电车|