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

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

DSPack SampleGrabber


novichek ©   (2012-05-27 01:55:00) 

FilterGraph.ClearGraph;
   FilterGraph.Active := false;
   FilterGraph.Active := true;
   FilterGraph.RenderFile(OpenDialog.FileName);
   FilterGraph.QueryInterface(IID_IVideoWindow, VideoWindow);
   FilterGraph.Play;

procedure SampleGrabberBuffer
begin
..
SampleGrabber.GetBitmap(B, pBuffer, BufferLen);
..
end;

при воспроизведении avi всё нормально.
при попытке воспроизвести mkv, vob в ActiveMovie Window (или владельце VideoWindow если установить)  видео выводится нормально, но обрабочик граббера (SampleGrabberBuffer) даже не вызывается.
насколько я понимаю FilterGraph сам строит цепочку нужных фильтров или я не прав?
как заставить граббер обрабатывать кадры не avi?


Sapersky   (2012-05-27 12:01:00) [1]

SampleGrabber не поддерживает Mpeg-2 и ещё некоторые типы видео.

"The filter has the following limitations for video formats:
It does not support video types with top-down orientation (negative biHeight).
It does not support the VIDEOINFOHEADER2 format structure (format type equal to FORMAT_VideoInfo2).
It rejects any video type where the surface stride does not match the video width.
As a result, the Sample Grabber will not connect to the Video Mixing Renderer (VMR) for some video types"
http://msdn.microsoft.com/en-us/library/windows/desktop/dd377544(v=vs.85).aspx

Нужно делать свой фильтр или рендер. Скорее фильтр, если тебе нужно сохранить стандартное воспроизведение. Ищи пример самого простого фильтра обработки картинки, вместо обработки дёргай callback или ещё как-то сохраняй.


Наверх

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