[問題] mp2 資訊如何填到 WAVEFORMATEX struct?

看板Programming作者 (ㄎ)時間17年前 (2009/01/21 22:58), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
我用 ffmpeg 得到的 audio 資訊如下 Stream #0.1: Audio: mp2, 16000 Hz, mono, s16, 32 kb/s 我要如何轉到 WAVEFORMATEX 結構呢? 因為我要用 directshow 去解..但不知道怎麼填.... 另外 CMediaType.SetSubtype() 也不知道該設什麼 ... // code WAVEFORMATEX *pwfm = (WAVEFORMATEX *)pmt->AllocFormatBuffer(sizeof(WAVEFORMATEX)); if(NULL == pwfm) return E_OUTOFMEMORY; // Initialize the VideoInfo structure before configuring its members ZeroMemory(pwfm, sizeof(WAVEFORMATEX)); pwfm->cbSize = 0; pwfm->wFormatTag = WAVE_FORMAT_PCM; // ignore ? pwfm->nChannels = 1; // pwfm->nSamplesPerSec = 16000; pwfm->wBitsPerSample = 16; //8 bit pwfm->nBlockAlign = pwfm->nChannels * pwfm->wBitsPerSample / 8; pwfm->nAvgBytesPerSec = pwfm->nSamplesPerSec * pwfm->nBlockAlign; pmt->SetType(&MEDIATYPE_Audio); //pmt->SetSubtype(&MEDIASUBTYPE_PCM); pmt->SetSubtype(&MEDIASUBTYPE_MPEG1Audio); pmt->SetFormatType(&FORMAT_WaveFormatEx); pmt->SetTemporalCompression(TRUE); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.21.59
文章代碼(AID): #19TpWdvl (Programming)