2012-05-23 44 views
0

在一些多媒體框架中,我們發送規格信息,如VC1 Profile Type(AP/SP/MP)和比特流格式(RCV) WMV解析器和WMV解碼器。規格信息用於初始化WMV解碼器。如何爲媒體基礎中的解碼器設置wmv規格信息

我使用默認的Media Foundation WMV Source和我自己的WMV解碼器MFT。當我從MFT轉儲數據時,它只有視頻數據,沒有規格信息。所以,我認爲spec信息是使用其他接口設置的。

有人可以給我一個垃圾郵件嗎?

回答

1

通過規格信息,如果你的意思是VC1序列標題,然後看看MF_MT_USER_DATA屬性。 MF會話管理器調用解碼器MFT的SetOutputType()時,它會將MF_MT_USER_DATA作爲一個blob提供。以下片段可能會給你一個提示。

HRESULT SetOutputType(DWORD dwStreamID, IMFMediaType* pmt, DWORD dwFlags) 
{ 
    ... 

    BYTE* seqData; 
    DWORD seqLength; 
    HRESULT hr; 

    hr = pmt->GetBlobSize(MF_MT_USER_DATA, &seqLength); 
    if (SUCCEEDED(hr)) 
    { 
     seqData = (BYTE*) malloc(seqLength); 

     if (seqData != NULL) 
     { 
     hr = pmt->GetBlob(MF_MT_USER_DATA, seqLength, &seqLength); 
     } 
    } 

    /* Use MF_MT_USER_DATA to do something. */ 

    ... 
}