Здравствуйте, romson, Вы писали:
R либо CheckMediaType (в случае CBaseRenderer). Обе они получают параметр
const CMediaType *pmt. Далее действуем так:
R>R>if (pmt->subtype == MEDIASUBTYPE_RGB24)
R> // формат RGB42
R>else if (pmt->subtype == MEDIASUBTYPE_YUY2)
R> // формат YUY2
R>else if // и т.д.
R>
Не согласен! CheckMediaType выдывается несколько раз при установке соеденния и не факт, что соеденение будет установлено именно с медиатипом, переданным в при посленем вызове CheckMediaType(). То есть если требудется знать с каким именно медиатипом соеденение было-таки установлено, то необходимо перекрывать функцию SetMediaType(). CheckMediaType() идеально подходит если нужно "отсечь лишнее".
Здравствуйте, Hata, Вы писали:
H>дело в том, что я пишу свой фильтр, в котором мне необходимо знать фомат входящего стрима..
H>что значит "перекрыть"?
А от какого базового класса наследуется Ваш фильтр? Наверняка Вы "перекрываете" либо функцию CheckInputType (в случае наследования от CTransformFilter), либо CheckMediaType (в случае CBaseRenderer). Обе они получают параметр
const CMediaType *pmt. Далее действуем так:
if (pmt->subtype == MEDIASUBTYPE_RGB24)
// формат RGB42
else if (pmt->subtype == MEDIASUBTYPE_YUY2)
// формат YUY2
else if // и т.д.