Я пытаюсь использовать настраиваемый фильтр для приема видео и аудио данных из потока RTSP и доставлять образцы вниз по графику. Кажется, что этот фильтр был изменен из SDK source.cpp sample (CSource) и реализовал два выходных вывода для аудио и видео. Когда фильтр напрямую подключен к фильтру avi mux с режимом INTERLEAVE_NONE, он работает нормально.Почему функция GetDeliveryBuffer заблокирована с помощью режима AVLE MULLE INTERLEAVE_CAPTURE?
Однако, когда режим перемежать из AVI мультиплексора установлен в INTERLEAVE_CAPTURE, вывод видео контактного будет висеть на методе GetDeliveryBuffer (в DoBufferProcessingLoop) этот фильтр после того, как несколько образцов были отправлены, в то время как аудио выходного контакт все еще работает Что ж.
Кроме того, когда я вставил бесконечный пин-тройник в один из путей между AVI-муком и этим фильтром источника, граф произвольно превратился в состояние остановки после отправки некоторых выборок (от одного до трех образцов или вида). И когда я помещал фильтр, который является просто пустым фильтром транс-в месте, который ничего не делает после бесконечного тройника, граф вернулся к первому случаю: никогда не поворачивается, чтобы остановить состояние, но висеть на GetDeliveryBuffer.
(Вот изображение, которое показывает связи я упомянул как)
Так вот мои вопросы:
1: Какие могут быть причины, что выход видео контактный вешали на GetDeliveryBuffer?
В моей догадке похоже, что avi mux поймал эти буферы и не выпустил их до тех пор, пока их не хватит для чередования, , но даже когда я установил количество буферов видео в 30 в DecideBufferSize, он все равно повиснет. Если причина в том, что так, так, как я могу определить размер буфера булавки для нисходящего avi-мультиплеера?
Вероятно, создание более 50 буферов видеоплеера не гарантируется, потому что размер памяти не может быть обещано. :(
2:?. Почему граф идет остановить состояние, когда бесконечный контактный тройник вставлен А почему бы не-работы фильтра преодолевает его
Любой ответ или предложение оценили Или надеюсь, кто-то просто дайте мне несколько советов.
Я рассмотрел вопрос о том же вопроснике и проверил, произошел ли он от тупика. Но два булавки действительно используют свою собственную асинхронную очередь. Тем не менее, для меня процесс очередей все еще недостаточно ясен, и это очень вероятно, поэтому я сделаю еще несколько исследований для этого. Благодарю. –
А у вас есть представление о втором вопросе? Возможно, это вызвано проблемой потоковой передачи? –
Что такое Nop Filter? –