И дальше из клипборда берется имадж. На то чтобы сделать так один кадр — уходит >200 мс, что слишком много (камера 30 fps максимум, получается около 5 fps). Нет другого способа тоже самое сделать, более быстрого (получить одиночный кадр)?
09.03.10 04:27: Перенесено модератором из 'WIN API' — Кодт
Здравствуйте, v_sergei, Вы писали:
_>И дальше из клипборда берется имадж. На то чтобы сделать так один кадр — уходит >200 мс, что слишком много (камера 30 fps максимум, получается около 5 fps). Нет другого способа тоже самое сделать, более быстрого (получить одиночный кадр)?
Здравствуйте, CyberDemon, Вы писали:
CD>DirectShow делает это быстро.
Попробовал — взял пример из DirectShowSamples для .NET — DxSnap, камера логитек квикэкспресс, комп — E6550 (4Гб ОЗУ) — все те же печальные 5 fps. (Единственное отличие в примере — DsFindPin.ByCategory(capFilter, PinCategory.Still, 0) убрал, иначе падает в экспешене на filterGraph.Connect 0x80040217). Так что — это предел?
Здравствуйте, v_sergei, Вы писали:
_>Попробовал — взял пример из DirectShowSamples для .NET — DxSnap, камера логитек квикэкспресс, комп — E6550 (4Гб ОЗУ) — все те же печальные 5 fps. (Единственное отличие в примере — DsFindPin.ByCategory(capFilter, PinCategory.Still, 0) убрал, иначе падает в экспешене на filterGraph.Connect 0x80040217). Так что — это предел?
Че-то не так делаешь. На "простых тормозных" пнях 4ых все летает (на более древних не пробовал). По поводу .net ничего не скажу, я на нативном с++ лабал.
_>И дальше из клипборда берется имадж. На то чтобы сделать так один кадр — уходит >200 мс, что слишком много (камера 30 fps максимум, получается около 5 fps). Нет другого способа тоже самое сделать, более быстрого (получить одиночный кадр)?
Зачем через clipboard? Это же тормоза. Бери непосредственно через WM_CAP_GRAB_FRAME_NOSTOP.
Есть еще кое-какой момент при инициализации камеры. Один из параметров отвечает за то, сколько кадров использовано для получения усредненного снимка, возможно у тебя тот самый случай, когда берутся несколько кадров.