Форум: "Начинающим";
Текущий архив: 2011.02.13;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c