Проблема с писателем asf

Я пытаюсь закодировать необработанные данные (как видеокадр, так и аудиосэмпл) в файл.asf, используя фильтр писателя asf в directshow. моя структура графа фильтра: raw_send_filter -> asf писатель фильтр raw_send_filter реализует CBaseFilter и CBaseOutputPin. Он играет роль исходного фильтра, который получает необработанные данные, а затем доставляет их в фильтр записи ASF. Процесс следует за этими шагами:

  1. Получить буфер доставки (возврат в "образец"), используя функцию CBaseOutputPin::GetDeliveryBuffer
  2. ственный образец>GetPointer(& буфер);
  3. Установите метку времени (с частотой кадров = 30 кадров в секунду)
  4. доставить образец

Проблема заключается в том, что после кодирования некоторых необработанных данных, я не могу доставить больше.

Я могу закодировать файл.avi таким образом, используя фильтр mux Avi. Можете ли вы сказать мне, почему я не могу доставить образцы после некоторых кодировок?

Благодарю.

1 ответ

Возможно, мультиплексор ASF ожидает больше данных. Проверьте, отправляете ли вы аудио и видео с одинаковой скоростью.

Другие вопросы по тегам