Метод ISampleGrabber::SetMediaType
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Примечание
[Не рекомендуется. Этот API можно удалить из будущих выпусков Windows.]
Метод SetMediaType
задает тип носителя для подключения на входном контакте Sample Grabber.
Синтаксис
HRESULT SetMediaType(
const AM_MEDIA_TYPE *pType
);
Параметры
-
pType
-
Указатель на структуру AM_MEDIA_TYPE указывает требуемый тип носителя. Нет необходимости задавать все члены структуры; Дополнительные сведения см. в разделе Примечания.
Возвращаемое значение
Возвращает S_OK.
Комментарии
По умолчанию у sample Grabber нет предпочтительного типа мультимедиа. Чтобы убедиться, что sample Grabber подключается к правильному фильтру, вызовите этот метод перед построением графа фильтра.
Этот метод ограничивает диапазон типов мультимедиа, которые будет принимать фильтр. При подключении фильтр пытается сопоставить тип мультимедиа, заданный в pType. Для этого сравниваются идентификаторы GUID основного типа, подтипа и типа формата в указанном порядке. Если для каждого из этих идентификаторов GUID pType имеет значение GUID_NULL, sample Grabber принимает тип носителя без дальнейших проверок. Если pType имеет другое значение, sample Grabber сравнивает его с ИДЕНТИФИКАТОРом GUID в типе подключения. Если два идентификатора GUID не совпадают точно, sample Grabber отклоняет подключение.
Для типов видеоданных пример Grabber игнорирует блок форматирования. Таким образом, он принимает любой размер видео и частоту кадров. При вызове SetMediaType
задайте для блока формата (pbFormat) значение NULL , а для размера (cbFormat) — нулевое значение. Для типов звуковых носителей пример Grabber проверит структуру WAVEFORMATEX и потребует от другого фильтра подключения к такому формату, если только блок формата в pType не имеет значение NULL или тег формата WAVE_FORMAT_PCM а остальные элементы структуры не равны нулю.
Пример 1:
- Основной тип: MEDIATYPE_Video
- Подтип: GUID_NULL
- Тип формата: GUID_NULL
Sample Grabber принимает любой тип видео, где основной тип равен MEDIATYPE_Video. Он не будет проверка подтипа.
Пример 2.
- Основной тип: MEDIATYPE_Video
- Подтип: MEDIASUBTYPE_RGB24
- Тип формата: GUID_NULL
Теперь sample Grabber будет проверка подтипа и принимать только видео RGB 24.
Ограничения: Независимо от того, какой тип вы задали, фильтр Sample Grabber отклоняет любые типы видео с ориентацией сверху вниз ( отрицательное значение biHeight) или с типом формата FORMAT_VideoInfo2. В этом случае, несмотря на успешное SetMediaType
выполнение метода, фильтр не подключается.
Примечание
Файл заголовка Qedit.h несовместим с заголовками Direct3D более поздней версии 7.
Примечание
Чтобы получить Qedit.h, скачайте обновление Microsoft Windows SDK для Windows Vista и платформа .NET Framework 3.0. Qedit.h недоступен в Microsoft Windows SDK для Windows 7 и платформа .NET Framework 3.5 с пакетом обновления 1 (SP1).
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел