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

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

DSpack фильтры


izja ©   (2010-11-20 18:28:00) 

удаляю Video Renderer и добавляю свой фильтр

FDC - канвас формы

function TBCmyRenderer.DoRenderSample(MediaSample: IMediaSample): HResult;
var
 Bits: PByte;
begin

 if (MediaSample = nil) then  Exit(E_POINTER);

 MediaSample.GetPointer(Bits);

 StretchDIBits(FDC ,
   0, 0, FWidth, FHeight,
   0, 0, FWidth, FHeight,
   Bits, PBitmapInfo(@FBMI)^,
   DIB_RGB_COLORS, SRCCOPY);

 Result := NOERROR;

end;

на форме нормально отрисовывается видео..

необходимо добавить на видео свой битмап..

пробую для начала через битмап сделать вывод, что бы потом на нем можно было что то рисовать..

создаю свой битмап:

 bmp:= TBitmap.Create;
 bmp.PixelFormat := pf24Bit;
c размерами формы..

FDC - уже канвас битмапа
 StretchDIBits(FDC ,
   0, 0, WidthF, Height,
   0, 0, FWidth, FHeight,
   Bits, PBitmapInfo(@FBMI)^,
   DIB_RGB_COLORS, SRCCOPY);

тут же пытаюсь на канве формы отрисовать данный битмап через
form.canvas.draw(0,0, bmp);

на форме отрисовываеся только белый прямоугольник..

простите, я только учусь, поэтому не могу понять почему не получается.
чувствую что вероятно что - то с этими DIBits..

но почему на канву формы StretchDIBits нормально выводит а на канву битмапа нет...


izja   (2010-11-20 18:45:00) [1]

второй более не понятный момент:

videoF.Canvas.lock;
 StretchDIBits(videoF.Canvas.Handle,
   0, 0, FWidth, FHeight,
   0, 0, FWidth, FHeight,
   Bits, PBitmapInfo(@FBMI)^,
   DIB_RGB_COLORS, SRCCOPY);

   videoF.Canvas.TextOut(0,0, timeToStr(time));

 videoF.Canvas.unlock;

в первых секундах на форме отрисовывается мельком время, но потом только видео поток..

почему так происходит?


Наверх

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