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


Фильтр модуля записи WM ASF (пакет SDK для Windows Media в формате 11)

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

Фильтр модуля записи WM ASF принимает переменное количество входных потоков и создает ASF-файл. Фильтр обрабатывает все сжатие и мультиплексирование (хотя механизм сжатия можно обойти). Фильтр модуля записи WM ASF можно использовать в различных сценариях, включая запись цифрового видео (DV), повторную сжатие звука и преобразование файлов мультимедиа Audio-Video interleaved (AVI) или MPEG digital media files для потоковой передачи по сети. Этот фильтр предоставляет единственный способ создания файлов Microsoft Windows Media Audio и Windows Media Video в DirectShow.

Дополнительные сведения см. в разделе Создание ASF-файлов в DirectShow.

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

Сведения о фильтре Типы
Интерфейсы фильтрации IAMFilterMiscFlags, IBaseFilter, IConfigAsfWriter, IFileSinkFilter2, IMediaSeeking, IPersistStream, IServiceProvider, ISpecifyPropertyPages, IWMIndexer2, IWMHeaderInfo, IWMWriterAdvanced2
Типы носителей входных контактов Зависит от профиля. Обычно это несжатые типы, такие как MEDIATYPE_Audio или MEDIATYPE_Video, хотя сжатые типы могут приниматься, если они соответствуют профилю.
Интерфейсы входных контактов IPin, IMemInputPin, IAMStreamConfig, IServiceProvider, IAMWMBufferPass, IWMStreamConfig2 (через IServiceProvider)
Выходные типы носителей контактов Неприменимо
Интерфейсы вывода контактов Неприменимо
Фильтрация CLSID CLSID_WMAsfWriter
Страница свойств CLSID CLSID_WMAsfWriterProperties
Исполняемый файл Qasf.dll
Заслуга MERIT_DO_NOT_USE
Категория фильтра Не указано

 

Комментарии

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

Входные контакты поддерживают один метод из интерфейса IAMStreamConfig : IAMStreamConfig::GetFormat. Все остальные методы возвращают E_NOTIMPL. Вызовите метод GetFormat , чтобы запросить целевой формат сжатия пин-кода, который определяется текущим профилем. Используйте интерфейс IConfigAsfWriter , чтобы задать профиль.

Интерфейс IServiceProvider фильтра позволяет приложениям получать интерфейс IWMWriterAdvanced2 , определенный в пакете SDK для формата Windows Media. Интерфейс IWMWriterAdvanced2 управляет деинтерлейзированием видео и полезен, если входные данные являются источником с чередованием , например DV (цифровое видео). Используйте методы GetInputSetting и SetInputSetting для управления деинтерлейсингом. Клиентам не рекомендуется использовать другие методы в этом интерфейсе. Этот интерфейс можно получить только после добавления фильтра в граф фильтра. В следующем примере показано, как запросить этот интерфейс:

// Assume that m_pGraph is a valid IGraphBuilder interface pointer,
// and that pAsfWriter points to the IBaseFilter interface
// on the WM ASF Writer filter.

IServiceProvider *pProvider = NULL;
IWMWriterAdvanced2 *pWMWA2 = NULL;

hr = m_pGraph->AddFilter(pAsfWriter, L"WM ASF Writer");
...
hr = pAsfWriter->QueryInterface(IID_IServiceProvider, (void**)&pProvider)
if (SUCCEEDED(hr))
{
    hr = pProvider->QueryService(IID_IWMWriterAdvanced2,
        IID_IWMWriterAdvanced2, (void**)&pWMWA2);
    pProvider->Release();
}

Справочник по DirectShow QASF