Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей. Он был заменен средства чтения источника и записи приемника. средства чтения источников и записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новые компоненты Source Reader и Sink Writer вместо пакета SDK Windows Media Format 11, когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Образцы, записанные в файлы ASF, могут содержать дополнительные сведения, помимо самих медиаобразцов. Эти сведения включаются с помощью расширений единиц данных. Дополнительные сведения о расширениях единиц данных см. в расширениях единиц данных.
Чтобы использовать расширения единиц данных, необходимо настроить поток в профиле, чтобы принять их. Чтобы настроить расширение единицы данных для потока, выполните следующие действия.
- Получите указатель на интерфейс IWMStreamConfig2, вызвав метод QueryInterface интерфейса IWMStreamConfig.
- Вызовите IWMStreamConfig2::AddDataUnitExtension, чтобы зарегистрировать для потока тип расширения единицы данных.
Все типы расширений единиц данных, зарегистрированные в настоящее время для потока, можно проверить, вызвав IWMStreamConfig2::GetDataUnitExtensionCount, чтобы получить количество зарегистрированных типов расширений единиц данных. Затем можно выполнить цикл по всем типам, используя вызовы для IWMStreamConfig2::GetDataUnitExtension для каждого.
Расширения единиц данных назначаются размеру при настройке потока. Во многих системах расширений единиц данных используются данные, которые являются константным размером (обычно структура). Однако, можно также настроить расширения единиц данных таким образом, чтобы они имели переменный размер, задав размер 0xFFFF. Затем каждое расширение единицы данных, назначенное во время кодирования, может иметь любой размер от 1 байта до 65534 байтов. Расширения единиц данных в разных размерах также называются динамическими расширениями единиц данных.
Преимущество использования расширений динамических единиц данных заключается в том, что при необходимости можно подключить данные расширения. Если вы определяете расширение единицы данных с заданным размером, каждый пример для потока должен содержать данные расширения этого размера, даже если у вас нет данных для некоторых примеров. С помощью расширений динамических единиц данных можно опустить расширения единиц данных из некоторых примеров, что экономит пространство и снижает требования к пропускной способности. Однако если расширения единиц данных имеют размер переменной, объект чтения не может проверить полученные данные расширения по статическому размеру. Необходимо убедиться, что полученные данные из расширения являются допустимыми и не представляют собой вредоносные искажения битового потока.
Для отдельных расширений единиц данных необходимо задать примеры с помощью метода INSSBuffer3::SetProperty. Дополнительные сведения см. в разделе Настройка расширений единиц данных.
Связанные разделы