Фильтр InfTee не работает с VMR

У меня есть график фильтра, как Source -> InfTee -> VMR7 / VMR9

График работает нормально, когда я подключаю граф как Source -> VMR7 / VMR9, но как только я вставляю InfTee
фильтр между источником и VMR, то я получаю проблему с соединением выводов между выводом o / p фильтра InfTee и выводом i / p VMR.
Я не хочу добавлять какие-либо другие фильтры, такие как AVIdecompressor или преобразователь цветового пространства, ч / б InfTee и VMR.

Соединение установлено
в порядке, пока функция DecideAllocator () выходного контакта InfTee не была
называется. Эта функция имеет следующий код:

hr = pPin-> NotifyAllocator (pTee-> m_pAllocator, TRUE);

NotifyAllocator возвращает E_FAIL.

Здесь pPin — это приемный вывод (входной вывод VMR), а pTee-> m_pAllocator.
хранит распределитель, который InfTee получил от входного контакта в своем собственном
Реализация NotifyAllocator ().

Я проверил в сети и получил проблему с фильтром InfTee из-за его тупой природы. Но не смог найти никакого правильного решения.

Кто-нибудь может мне помочь?

2

Решение

VMR-7, VMR-9, EVR — все рендеры «настаивают» на собственном распределителе памяти, подкрепленном памятью видеоповерхностей. Эти распределители имеют конкретные требования. Вы не можете изменить это поведение.

InfTee, с другой стороны, «настаивает» на своем собственном распределителе памяти выходных выводов и распределяет его между выходными выводами, чтобы при вводе в ленту не происходило копирование данных (это то, что вы называете «тупой природой») ,

Вы не можете заставить это работать все вместе, вам нужен дополнительный фильтр между ними, который копирует данные из тройника в память видео рендерера. Идеальным с точки зрения производительности является пользовательский фильтр преобразования, который копирует данные с учетом расширенных возможностей. Без этого у вас будет ближайший запас / зарегистрированный фильтр для той же цели.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]