Re[3]: обработка и воспроизведение видео
От: Денис Федотов Россия  
Дата: 08.11.06 16:35
Оценка:
Здравствуйте, vemind, Вы писали:

V>Здравствуйте, D. Mon, Вы писали:


DM>>На данный момент, как я понимаю, лучший вариант действительно directshow.

DM>>Все необходимое для Вашей задачи есть в DirectX 9
V>Четстно сказать в directX sdk я не нашел того что искал, поставил directshow sdk, там убогий пример того что мне в принципе нужно имеется, с горем пополам как не очень опытный VS пользователь скомпилировал playwnd, но не могу разобраться куда мне вставить свой фильтр, его можно представить как функцию int filtr(&входной кадр, &выходной кадр), как я понимаю в граф DS мне его в таком состоянии не прикрутить, выхода у меня два, или писать фильтр и включать его в граф или перед выводом изображения вытащить кадр, обработать его и положить на вывод, второй по некоторым причинам гораздо предпочтительнее. я догадываюсь что средства воспроизведения существуют и в directX sdk, только ничего конкретного не нашел, в msdn тоже ничего конкретного на глаза не попадалось. подскажите где смотреть? или может быть вообще подход пересмотреть.

DirectShow это как раз то что тебе нужно. Для того, чтобы реализовать твою задачу ( насколько я ее понял ) тебе нужно:

1) Хоть немного почитать DirectShow SDK. Без базовах знаний тебе не обойтись.
2) Создать свой Transform Filter ( в DirectShow ), в котором реализовать твое преобразование изображения.
Ты как раз получишь функцию Transform( <указатель на кадр> ){ здесь делаешь с кадром все что угодно; }
3) Строишь граф ручками ( ну или почти ручками )
Смотришь: AddSourceFilter ( исходный файл), AddFilter ( твой фильтр и "Infinite Pin Tee Filter" ),
Render ( для того, что бы все это безобразие побыстрее отрендарить ), ну так по-мелочи кое-что.
4) Для развлетвления ( на 2 потока из 1-го ) используй "Infinite Pin Tee Filter"
( 1-ый без преобразования, 2-ой с преобразованием )
5) Наслаждаешься полученным эффектом

Как расположить видеоокна на своем приложение см. IVideoWindow

Удачи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.