[問題] mp2 資訊如何填到 WAVEFORMATEX struct?
我用 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