Почему я получаю последовательные образцы мультимедиа из фильтра захвата DirectShow с одинаковым временем выборки? - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть приложение DirectShow, написанное на Delphi 6 с использованием библиотеки компонентов DSPACK и работающее на Windows XP. Вверху моего графика фильтра находится фильтр захвата звука. Фильтр захвата назначен моему телефону VOIP и имеет фильтр граббера образца сразу вниз. В методе обратного вызова примера фильтра захвата я добавил код, чтобы сообщать всякий раз, когда я получаю две выборки мультимедиа подряд из фильтра захвата образца с одинаковыми временными метками (SampleTime's). Такое состояние встречается довольно часто, иногда почти каждый раз. Обратите внимание, что фильтр захвата имеет размер буфера 100 миллисекунд и частоту дискретизации 8000 кГц. Логика подсказывает мне, что я никогда не получу две доставки образцов с одинаковым временем выборки и что они всегда должны быть очень близки к 100 миллисекундам друг от друга. Но это не то, что происходит.

Что означает, что фильтр захвата DirectShow отправляет вам 2 последовательных сэмпла с одинаковым временем выборки? Должен ли я игнорировать второй образец доставки, который имеет то же время образца, что и предыдущий? Или есть еще одна проблема, которую мне нужно решить?

Заметьте, я не контролирую время выборки, приходящее ко мне. Они генерируются фильтром захвата.

1 Ответ

0 голосов
/ 03 декабря 2011

Настоящей ошибкой была ошибка, которую я допустил при расчете меток времени.Фильтр захвата не был ответственным.Я бы проголосовал за закрытие своего поста, за исключением того, что в нем есть ценный комментарий об утилите DumpMediaSample (см. Раздел комментариев к моему исходному сообщению).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...