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

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

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

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

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

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

diagram showing the normal relationship between inputs, streams, and outputs.

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

diagram showing the relationships between inputs, streams, and outputs when using multiple bit rate mutual exclusion.

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

diagram showing the relationships between inputs, streams, and outputs when using custom mutual exclusion.

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

Примечание

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

 

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

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