Я пытаюсь создать исходный фильтр DirectShow на основе примера push-источника из DirectShow SDK.Мой исходный фильтр по сути выводит набор растровых изображений, каждое из которых обычно длится около 600 миллисекунд, для видео.Я настроил график фильтра, который использует Async_reader с Wave Parser для аудио и мой новый фильтр для передачи видео (фильтр CSourceStream, и я заполняю свои кадры в функции FillBuffer).Они оба подключены к WMASFWriter для вывода WMV.
Я обнаружил, что во время, соответствующее интервалу ключевого кадра, видео останавливается на секунду или две.Похоже, что это хуже при разрешении HD, но это может быть красная сельдь.Какие вещи могут быть причиной этого?Связано ли это с тем, как часто я позволяю вызывать FillBuffer (моя частота кадров составляет 30 кадров в секунду, поэтому я получаю одно и то же растровое изображение, повторяющееся для нескольких кадров)?