フィルタを作成していると、CheckMediaType
などメディアタイプを調整するメソッドで、入力されてきたメディアタイプがどんなものか確認したいときがある。
それにはDisplayType
を使う。
1 2 | HRESULT MyFilterPin::CheckMediaType(const CMediaType *pmt) {
DisplayType(_T("label"), pmt);
|
このメソッドはLOG_TRACE
メッセージとして出力される。ロギングレベル2以上では、メジャータイプ、マイナータイプ、フォーマットタイプ、フォーマットブロックのデータを出力する。ロギングレベル5以上ではフォーマットブロックの詳細を出力する。
1 2 3 4 5 6 7 8 9 10 11 12 13 | MyFilter.dll(tid 15e4) 1032 : label M type MEDIATYPE_Audio S type MEDIASUBTYPE_PCM
MyFilter.dll(tid 15e4) 1032 : Subtype description UNKNOWN
MyFilter.dll(tid 15e4) 1032 : Not temporally compressed
MyFilter.dll(tid 15e4) 1032 : Sample size 0
MyFilter.dll(tid 15e4) 1033 : Format type FORMAT_WaveFormatEx
MyFilter.dll(tid 15e4) 1033 : Subtype MEDIASUBTYPE_PCM
MyFilter.dll(tid 15e4) 1033 : wFormatTag 1
MyFilter.dll(tid 15e4) 1033 : nChannels 2
MyFilter.dll(tid 15e4) 1033 : nSamplesPerSec 48000
MyFilter.dll(tid 15e4) 1033 : nAvgBytesPerSec 192000
MyFilter.dll(tid 15e4) 1033 : nBlockAlign 4
MyFilter.dll(tid 15e4) 1034 : wBitsPerSample 16
MyFilter.dll(tid 15e4) 1034 : cbSize 0
|
LOG_TRACE
はDirectShow基底クラスライブラリで定めているデバッグ出力の種類である。ロギングレベルはDbgSetModuleLevel
で設定する。
1 | DbgSetModuleLevel(LOG_LOG_TRACE, 5);
|
Comments
comments powered by Disqus