комуникация с decoder происходит через DirectShow
когда я прошу отдавать мне видео в HD изображение в выходном потоке нормальное
но когда я прошу видео поток в 4k то вижу только левый верхний угол
Я думал может проблемма с желзякой,
но graph studio next подключаеться к decoder через DirectShow и отображает нормальное 4k видео
я понимаю, что это как ставить диагноз по фотографии
но может подскажите идеи с чего начать
я уже делал экспорт моделей из studio инициализация DirectShow фильтров производиться +- как у меня
1. перепроверить все настройки фильтра/пинов. Скорее всего неправильно где-то задаете: буфер, размеры и прочее.
2. посмотреть инклюдники/доки/самплы на фильтр.
3. чисто в качестве идеи (не помню уже как в директшоу передаются самплы): возможно, фильтр сделан таким образом, что отдает изображение 4мя буферами.
Здравствуйте, DiPaolo, Вы писали:
DP>1. перепроверить все настройки фильтра/пинов. Скорее всего неправильно где-то задаете: буфер, размеры и прочее. DP>2. посмотреть инклюдники/доки/самплы на фильтр. DP>3. чисто в качестве идеи (не помню уже как в директшоу передаются самплы): возможно, фильтр сделан таким образом, что отдает изображение 4мя буферами.
Да, кстати, удостовертесь, что правильно вычисляете размер буфера. Возможно, там не типичные YV12, а что-то другое, или например 10 бит, а не 8. От этого вы можете выделять буфер меньшего размера.
R>>с чтения исходников "graph studio next"
S>я именно с этого начал
Насколько я помню, граф студия некст умеет показывать типы медиа самплов на пинах. Можно посмотреть, какой формат (FOURCC, резолюшен ...) на выходе с декодера в работающем графе, и убедиться, что вы используете в своем софте тот же.
вам не кажется что советовать синьору программистом с 15 годами опытом
как читать и разбираться в исходниках это несколько .... даже не знаю как корректней сказать...
DP>Насколько я помню, граф студия некст умеет показывать типы медиа самплов на пинах. Можно посмотреть, какой формат (FOURCC, резолюшен ...) на выходе с декодера в работающем графе, и убедиться, что вы используете в своем софте тот же.
дело окзалось в следующем в CoCreateInstance я использовал CLSCTX_INPROC флаг, когда изменил его на CLSCTX_INPROC_SERVER 4k заработал
при этом #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER)
CLSCTX_INPROC_SERVER
The code that creates and manages objects of this class runs in the same process as the caller of the function specifying the class context.
CLSCTX_INPROC_HANDLER
The code that manages objects of this class is an in-process handler. This is a DLL that runs in the client process and implements client-side structures of this class when instances of the class are accessed remotely.
CLSCTX_INPROC_SERVER — Uses a DLL to create and manage the object in the same process
CLSCTX_LOCAL_SERVER — Uses an EXE to create the object in a different process
CLSCTX_REMOTE_SERVER — Creates and manages the object but on a different computer