Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Берем видео сигнал


pasha676 ©   (2003-05-06 10:22:00) 

Где бы почитать (посмотреть примеры) на тему воспроизведения и капчунга видео через "чистый" DirectShow (без компонент). Созрел для отхода от компонентов. Хотелось бы изучить предмет самомому.


Владимир Васильев   (2003-05-06 12:18:00) [1]

> вывод видео в нужную область :

GraphBuilder : IGraphBuilder ;
MediaControl : IMediaControl ;
BasicAudio : IBasicAudio ;
BasicVideo : IBasicVideo ;

MediaSeeking : IMediaSeeking ;
VideoWindow : IVideoWindow ;
MediaEventEx : IMediaEventEx ;

GraphState : TGraphState;

L,T,W,H : Integer;
DstHandle : HWnd;

.........

if FAILED(GraphBuilder.QueryInterface(IID_IVideoWindow, VideoWindow)) then Exit;

if FAILED(GraphBuilder.QueryInterface(IID_IBasicVideo, BasicVideo)) then Exit;

BasicVideo.get_VideoWidth(W);
BasicVideo.get_VideoHeight(H);

VideoWindow.put_Owner(DstHandle);
VideoWindow.put_WindowStyle(WS_CHILD or WS_CLIPSIBLINGS);
VideoWindow.SetWindowPosition(L,T,W,H);

//specifies a window to receive mouse and keyboard messages from the video window.
( DstHandle)

> вывод видео в нужную область :

GraphBuilder : IGraphBuilder ;
MediaControl : IMediaControl ;
BasicAudio : IBasicAudio ;
BasicVideo : IBasicVideo ;

MediaSeeking : IMediaSeeking ;
VideoWindow : IVideoWindow ;
MediaEventEx : IMediaEventEx ;

GraphState : TGraphState;

L,T,W,H : Integer;
DstHandle : HWnd;

.........

if FAILED(GraphBuilder.QueryInterface(IID_IVideoWindow, VideoWindow)) then Exit;

if FAILED(GraphBuilder.QueryInterface(IID_IBasicVideo, BasicVideo)) then Exit;

BasicVideo.get_VideoWidth(W);
BasicVideo.get_VideoHeight(H);

VideoWindow.put_Owner(DstHandle);
VideoWindow.put_WindowStyle(WS_CHILD or WS_CLIPSIBLINGS);
VideoWindow.SetWindowPosition(L,T,W,H);

//specifies a window to receive mouse and keyboard messages from the video window.
VideoWindow.put_MessageDrain(DstHandle);


pasha676   (2003-05-06 11:44:00) [2]

Как всегда меня выручаешь. Большое спасибо!!!

ЗЫ Что граф надо построить я понимаю. Не понимаю как и как организовать вывод видео в нужную область экрана (окно, панель, канвас и т.д.). Пошел читать.


Владимир Васильев   (2003-05-06 10:43:00) [3]

С DirectShow всё как обычно, - будь то воспроизведение видео, аудио, videocapture и т.д. - нужно построить нужный граф.
Как построить граф руками см. : http://www.flipcode.com/tutorials/tut_dshow03.shtml


Наверх

Титульная страница Поиск, карта сайта Написать письмо