Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.02.13;
Скачать: CL | DM;

Вниз

DSpack фильтры   Найти похожие ветки 

 
izja   (2010-11-20 18:28) [0]

удаляю 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) [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;

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

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



Страницы: 1 вся ветка

Текущий архив: 2011.02.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
15-1288709198
Andy BitOff
2010-11-02 17:46
2011.02.13
Photoshop в СССР


2-1290516542
Евгений07
2010-11-23 15:49
2011.02.13
Смена класса источника данных


2-1290500657
adigozelov
2010-11-23 11:24
2011.02.13
Lisenziya


15-1288470604
Юрий
2010-10-31 00:30
2011.02.13
С днем рождения ! 31 октября 2010 воскресенье


2-1285314207
Aleks
2010-09-24 11:43
2011.02.13
Как узнать о завершении работы Windows XP?