Как установить свойства фильтров DirectShow - PullRequest
0 голосов
/ 08 февраля 2011

Хорошо, у меня есть этот 3-й телевизионный Фильтр Трансформации. Я могу легко настроить его свойства с помощью GraphEdit, щелкнуть правой кнопкой мыши на его свойствах и установить все, что я хочу.

Теперь я хочу установить свойства автоматически, создав график фильтра в C ++. Я прочитал документацию по Windows SDK и обнаружил, что мне нужно использовать функцию IKsPropertySet (поправьте меня, если я ошибаюсь).

Я должен использовать IKsPropertySet :: QuerySupported, чтобы проверить, поддерживает ли он этот тип свойства или нет. И чтобы сделать это, я должен знать

dwPropID

[in] Идентификатор свойства в наборе свойств.

Но как я могу получить этот идентификатор? Как этот фильтр имеет свойство регулировки по горизонтали и вертикали, но я не могу найти идентификатор этих свойств.

Есть ли способ перечислить все свойства ID, которые поддерживает фильтр?

1 Ответ

1 голос
/ 09 февраля 2011

Функциональность фильтров DirectShow обычно предоставляется через интерфейсы. Либо стандартные интерфейсы DirectShow, либо пользовательские интерфейсы. Вы получаете интерфейс, вызывая QueryInterface для COM-объекта (возможно, вашего фильтра, но он также может быть одним из выводов). Какие виды интерфейсов предоставляет фильтр, вероятно, описано в документации к фильтру.

Я думаю, вы должны попытаться взглянуть на некоторую информацию о directshow и COM, прежде чем погрузиться в кодирование. Здесь вы найдете информацию о DirecShow. И здесь вы найдете немного о COM.

Если вы планируете сделать это в .net, попробуйте поискать directshownet. Это проект с открытым исходным кодом, который оборачивает API directshow для использования в управляемом коде.

-Svein

...