Поделиться через


Поиск по коду времени SMPTE с помощью асинхронного средства чтения

[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Он был заменен средством чтения исходного кода и модуля записи приемника. Средство чтения исходного кода и модуль записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код по возможности использовал средство чтения исходного кода и модуль записи приемника вместо пакета SDK для Windows Media Format 11. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Объект средства чтения может искать точку в файле на основе кода времени SMPTE, связанного с видеопотоком. Данные кода времени инкапсулируются в WMT_TIMECODE_EXTENSION_DATA структурах, которые присоединяются к примерам видео в виде расширений единиц данных.

Коды времени SMPTE определяются диапазоном и кодом времени в этом диапазоне. Диапазон — это непрерывный ряд временных кодов. Каждый код времени определяется часами, минутами, секундами и кадрами.

Чтобы искать данные в ASF-файле с помощью кода времени SMPTE с помощью асинхронного средства чтения, выполните следующие действия.

  1. Получите указатель на интерфейс IWMReaderAdvanced3 объекта чтения, вызвав IWMReader::QueryInterface.
  2. Задайте код времени начала и длительность, вызвав IWMReaderAdvanced3::StartAtPosition. Необходимо указать номер потока видеопотока, индексированного по коду времени. Средство чтения синхронизирует остальные выходные данные со временем представления указанного кадра указанного потока и начнет доставлять примеры выходных данных.
  3. Обрабатывайте примеры так, как обычно в реализации метода IWMReaderCallback::OnSample .

Чтение файлов с помощью асинхронного средства чтения

Работа с индексами

Поддержка кода времени SMPTE