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


Входные данные, потоки и выходные данные

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

Входные данные в этой документации — это любой поток данных цифрового носителя (например, аудио или видео), который приложение передает объекту записи из источника с помощью соответствующих API. Входные данные должны быть доставлены в поддерживаемом формате. В качестве входных данных поддерживаются несколько стандартных форматов RGB и YUV, а аудиокодеки поддерживают PCM. Если указанный входной формат не поддерживается в собственном кодеке, объект записи создает экземпляр вспомогательного объекта аудио или видео, который способен преобразовать широкий спектр форматов в форматы, которые кодек может принимать. Для входных звуковых данных вспомогательный объект будет настраивать битовую глубину, частоту выборки и количество каналов по мере необходимости. Для входных данных видео вспомогательный объект видео будет выполнять преобразования цветового пространства и корректировки размера прямоугольника. В некоторых случаях сжатые звуковые и видеоданных могут передаваться в входном потоке. Входные данные могут быть некоторых других типов мультимедиа, кроме звука и видео, таких как текст, команды скриптов, по-прежнему изображения или произвольные данные файла.

Выходные данные в этой документации относятся к данным, которые объект читателя передает приложению для отрисовки. Выходные данные приравниваются к одному потоку во время воспроизведения. Если вы используете взаимное исключение, все взаимоисключающие потоки совместно используют один выход. Как правило, выходные данные хранятся в виде несжатых звуковых или видеоданных, хотя они могут содержать любой тип данных. Поддерживаемые форматы выходных данных видео перечислены в других частях этой документации.

Термин stream в этой документации относится к данным в ASF-файле, а не (1) входным исходным данным перед обработкой объектом записи и (2) выходными данными после распаковки объектом чтения. Поток ASF содержит данные, поступающие из одного входного данных объекта записи, хотя несколько потоков можно создать из одного входного данных. Поток имеет одинаковые параметры формата и сжатия от начала до конца. Простой ASF-файл имеет два потока, один для звука и один для видео. Более сложный файл может содержать два аудиопотока и несколько видеопотоков. Звуковые потоки могут иметь одинаковые параметры сжатия, но содержат другое содержимое, например диктор на разных языках. Видеопотоки могут содержать одно и то же содержимое, но имеют разные параметры сжатия. Параметры формата мультимедиа и сжатия, которые объект записи будет применять к каждому потоку, указываются в профиле.

Связь между входными данными, потоками и выходными данными может быть трех основных типов. На следующих трех схемах показаны связи.

В наиболее базовой связи, которая является профилем без каких-либо взаимных исключений, каждый вход обрабатывается средством записи и вставляется в ASF-файл в виде одного потока. При воспроизведении средство чтения считывает поток и передает несжатые образцы в виде одного выходных данных, как показано на следующей схеме.

схема, показывающая обычную связь между входными данными, потоками и выходными данными.

Более сложная связь возникает, когда используется взаимное исключение нескольких скоростей. В этом случае один вход обрабатывается средством записи и кодируется на нескольких скоростях. Каждая кодировка данных вставляется в ФАЙЛ ASF в виде отдельного потока. При воспроизведении средство чтения определяет, какой поток следует распаковывать на основе доступной пропускной способности. Затем средство чтения считывает выбранный поток и предоставляет несжатые образцы в виде одного выходных данных, как показано на следующей схеме.

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

Третий тип связи может возникать при использовании языкового или пользовательского взаимного исключения. В этой связи несколько входных данных обрабатываются средством чтения и каждый из них вставляется в ФАЙЛ ASF в виде отдельного потока. При воспроизведении приложение вручную выбирает поток для распаковки на основе предоставленной логики. Затем средство чтения считывает выбранный поток и передает несжатые образцы в виде одного выходных данных. Этот процесс можно использовать для включения саундтреков на нескольких языках. На следующей схеме показан этот процесс.

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

Существует некоторый вариант в отношениях, описанных ранее. Например, файл может содержать все три отношения или один или два из них. Кроме того, можно сжать некоторые входные данные, в этом случае модуль записи не выполняет дополнительного сжатия. Средство чтения также может доставлять сжатые образцы. Но при этом необходимо получить доступ к ним по номеру потока, а не по выходному номеру.

Заметка

Входные данные, пар и выходные данные — это все назначенные номера объектами пакета SDK для формата Windows Media. Потоки имеют номер потока, который основан на 1, который определяется в профиле. Каждый поток также назначается индекс потока для использования в перечислении потоков в профиле. Ни одно из этих чисел гарантированно не будет согласовано друг с другом. То есть входной номер 1 может не соответствовать номеру потока 1, номер потока 1 может не соответствовать индексу потока 1 и т. д.

 

основные понятия

взаимное исключение