Метод IAMStreamConfig::SetFormat (strmif.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Метод SetFormat
задает формат выходных данных для закрепления.
Синтаксис
HRESULT SetFormat(
[in] AM_MEDIA_TYPE *pmt
);
Параметры
[in] pmt
Указатель на структуру AM_MEDIA_TYPE , указывающую новый формат.
Возвращаемое значение
Возвращает значение HRESULT . Ниже приведены возможные значения.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Недостаточно памяти. |
|
Значение указателя NULL . |
|
Недопустимый тип носителя. |
|
Входной контакт не подключен. |
|
Не удается задать тип; фильтр не остановлен. |
|
Не удается задать тип; фильтр не остановлен. |
Комментарии
Этот метод задает формат выходного закрепления. Если контакт не подключен, он будет использовать этот формат для следующего подключения. Если закрепление уже подключено, будет предпринята попытка повторного подключения с использованием этого формата. Метод может завершиться ошибкой, если другой контакт отклоняет новый тип.
Если этот метод будет выполнен успешно, последующие вызовы метода IPin::EnumMediaTypes будут возвращать новый тип, а другие — нет.
В большинстве фильтров этот метод завершается сбоем, если фильтр приостановлен или запущен. В некоторых фильтрах сжатия метод завершается ошибкой, если входной контакт фильтра не подключен.
С помощью некоторых фильтров можно вызвать этот метод со значением NULL , чтобы сбросить закрепление в формат по умолчанию.
Разработчики фильтров. В следующих примечаниях описывается, как реализовать этот метод:
Если выходной контакт не подключен и контакт поддерживает указанный тип носителя, верните S_OK. Сохраните тип носителя и предложите его в виде нулевого числа формата в методе CBasePin::GetMediaType . Не предлагайте другие форматы и отклоняйте другие форматы в методе CBasePin::CheckMediaType .
Если контакт уже подключен и контакт поддерживает тип носителя, повторно подключите контакт с этим типом. Если другой контакт отклоняет новый тип, верните VFW_E_INVALIDMEDIATYPE и восстановите исходное соединение.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | strmif.h (включая Dshow.h) |
Библиотека | Strmiids.lib |