При дальнейших исследованиях обнаружилось, что проблема проявляется только если:
1. subtype = MEDIASUBTYPE_UYVY
2. format = FORMAT_VideoInfo2
??????
"Romul" <18524@users.rsdn.ru> сообщил/сообщила в новостях следующее:
news:1178081@news.rsdn.ru...
From: Romul
У меня есть transform filter (написан без использования базовых классов CTrans...., а на обычных CBase...).
Почему-то глючит с видео рендерами (как с VMR7, так и с VMR9)
Падает в DecideBufferSize, а точнее в DecideAllocator, если коннект идет на UYVY формате
hr = DecideBufferSize(*ppAlloc, &prop);
if (SUCCEEDED(hr))
{
hr = pPin->NotifyAllocator(*ppAlloc, FALSE); //Возвращает E_FAIL.
if (SUCCEEDED(hr))
{
return NOERROR;
}
}
Т.е. входной пин рендерера не принимает мои проперти. (cbAlign = 1, cBuffers = 2, cbBuffer считается правильно)
Если коннект идет на RGB32 формате, то все проходит замечательно, но картинка получается перевернутой . Я знаю о том, что положительное значение высоты означает bottom-top картинку. Результат никак не изменяется от того, что я меняю знак высоты.
Если я конекчусь не к рендереру, а скажем к MPEG2 encoder, то результирующий файл записывается прекрасно, как и должен был бы в любом формате (RGB32, UYVY)
Есть еще одна фигня, которую я заметил при коннекте на UYVY формате — в GetMediaType я возвращаю размер 720х576, а в CheckMediaType мне приходит предложение о типе 1024х-576. Если я соглашаюсь на данный тип, то коннект проходит на ура, но результат естественно получается малость сказать смещенный.
Стандартный DV decoder прекрасно проигрывает файл в формате YUY2 на VMR7,9
Кто-нибудь сталкивался с такими явлениями когда-нибудь?
Posted via RSDN NNTP Server 1.9
проблема с videomixingrenderer Оценить
Posted via RSDN NNTP Server 1.9