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


Метод CDynamicOutputPin.ChangeOutputFormat

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

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

Синтаксис

HRESULT ChangeOutputFormat(
   const AM_MEDIA_TYPE  *pmt,
         REFERENCE_TIME tSegmentStart,
         REFERENCE_TIME tSegmentStop,
         double         dSegmentRate
);

Параметры

Pmt

Указатель на структуру AM_MEDIA_TYPE , указывающую тип носителя.

tSegmentStart

Время начала сегмента.

tSegmentStop

Время остановки сегмента.

dSegmentRate

Частота сегментов.

Возвращаемое значение

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

Код возврата Описание
S_OK
Успешно.
E_FAIL
Ошибка. Возможно, фильтр владельцев не вызывал CDynamicOutputPin::SetConfigInfo.
VFW_E_NOT_CONNECTED
Контакт не подключен.

Комментарии

Этот метод изменяет тип формата во время выполнения фильтра. Если подчиненный контакт принимает новый формат, повторное подключение не требуется. В противном случае метод пытается повторно подключить контакт. Если метод успешно изменяет формат, он доставляет сведения о новом сегменте. Этот метод вызывает метод CDynamicOutputPin::ChangeMediaType для изменения формата.

Перед вызовом этого метода необходимо вызвать метод CDynamicOutputPin::StartUsingOutputPin .

Требования

Требование Значение
Заголовок
Amfilter.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

См. также раздел

Класс CDynamicOutputPin