![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DSPack [D7, WinXP]
Nik2006 © (2006-03-28 16:22:00)делаю захват видео сразу с нескольких входов карточки:
в обработчике SampleGrabber.OnBuffer
пишу следующее:
...
var
channel : integer = 0 ;
...
procedure TVideoForm.SampleGrabberBuffer(sender: TObject;
SampleTime: Double; pBuffer: Pointer; BufferLen: Integer);
begin
if channel > 3 then channel : = 0 ;
if channel = 0 then
SampleGrabber.GetBitmap(Image0.Picture.Bitmap) ;
if channel = 1 then
SampleGrabber.GetBitmap(Image1.Picture.Bitmap) ;
if channel = 2 then
SampleGrabber.GetBitmap(Image2.Picture.Bitmap) ;
if channel = 3 then
SampleGrabber.GetBitmap(Image3.Picture.Bitmap) ;
inc(channel) ;
(CrossBar as IAMCrossBar).Route(0,channel) ;
end;
//---------------------
работает всё нормально, листает источники видео ("каналы") как я и хотел, но .... проблемма заключается в том, что изображение постоянно дёргается или половина изображения от одного источника, вторая от другого. Я бы сказал нет синхронизации.
пробовал останавливать граф, встявляя SampleGrabber.SapleGrabber.SetOneShot(..) , всё равно идёт наслоение. А как работать с буфером устройства, что бы контроллировать заполняемость его - я не знаю ... Кто что может подсказать ???
Анонимщики (2006-03-29 16:39:00) [21]А как ты узнаешь текущий номер канала?
И как карточка назыается?
Nik2006 (2006-03-28 16:23:00) [22]Как "синхронизировать" вводимое изображение ?