Форум: "Media";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизКак сделать в реалтайме обработку видео(DSPack)? Найти похожие ветки
← →
Dufe (2004-11-29 13:49) [0]Необходимо сделать обработку в реальном времени видефайла и вывод на экран результата. Я делаю это с помощью DSPack"a.
procedure TForm1.SampleGrabberBuffer(sender: TObject; SampleTime: Double;pBuffer: Pointer; BufferLen: Integer);
begin
Bit.Canvas.Lock;
try
if SampleGrabber.GetBitmap(Bit,pBuffer, BufferLen) then
begin
ColorTransform(Bit);
end;
finally
Bit.Canvas.Unlock;
Image2.Canvas.Lock;
Image2.Canvas.StretchDraw(rec,Bit);
Image2.Canvas.Unlock;
end;
end;
При перезагрузке процессора возникает ошибка."Canvas does not allow drawing" . Остановка происходит в разных местах!
Как сделать, чтобы если не успевают проделаться все процедуры не брался следующий кадр? Или это что-то другое?
← →
programania © (2004-11-29 21:16) [1]>Как сделать, чтобы если не успевают проделаться все процедуры не брался следующий кадр?
попробуйте поставить в начало что-то типа:
if runSampleGrabber then exit;
runSampleGrabber:=true;
и в конец
runSampleGrabber:=false;
Однако, ничего хорошего все равно не выйдет:
если не успевают проделаться все процедуры
значит загрузка CPU 100% все будет тормозить
и зависеть от CPU и конкретного фильма
и главный тормоз это StretchDraw
к тому же качество от него заметно ухудшается.
Однако, если выкинуть StretchDraw и показывать
в натуральный размер, то P3 хватит и на обработку
типа яркость, контрастность.
А вместо StretchDraw наверно можно написать
что-то свое более быстрое, если заранее расчитать
все коэфициенты для всех пикселов.
← →
Dufe (2004-11-30 13:12) [2]Так я уже пробовал. Ничего хорошего не происходит. Мне бы лучше пропустить пару кадров в случае неуспевания.
← →
Анонимщик © (2004-12-02 15:15) [3]И тебе не стыдно такое спрашивать?
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c