Ситуация такая: есть аналоговая камера + конвертер, интерфейс firewire. Надо с определенной периодичностью хватать кадры с камеры и скидывать на диск (ну + нужно окошко с превью, но я уже замутил его). Проблема в том, что DirectShow предоставляет только средства для сохранения видеопотока в файл (был жесткий вариант - скидывать на диск изображение клиентской части окна превьюшки, только получалось хреново, потому что она может затираться вышележащими окнами). Был один вариант установить фильтр ISampleGrabber, в котором вроде можно поставить callback на прием кадра и скинуть его на диск, если истек тайм-аут. Еще варианты будут?
Great ISampleGrabber вполне нормальный вариант, и достаточно простой. Есть ещё вариант написать фильтр самому, но это гораздо сложнее.
Great >(был жесткий вариант - скидывать на диск изображение клиентской части окна превьюшки, >только получалось хреново, потому что она может затираться вышележащими окнами). Насчет "затирания" вам недавно говорили: http://www.wasm.ru/forum/viewtopic.php?id=20790, пост #22. Кроме указанного там WS_EX_LAYERED - есть еще и WS_EX_COMPOSITED, и PrintWindow, а еще и AlphaPrintWindow (нацеленная на дочерние окна не-WS_EX_LAYERED-окон) из моей учебной утилитки http://www.geocities.com/xmemor/2lz/printlayered.zip .
Ой только трахаться с этим мне не хватало для полного счастья ) Както не катит на приемлимый вариант=\ Короче уже разобрался, установка ISampleGrabber вполне решила проблему, как я и полагал. Собственно вопросов больше не имею Правда у меня чето не получилось одновременно законнектить preview-pin чтобы на экране был нормальный превью и одновременно в соседнем потоке снимать кадры. Либо одно либо другое, поэтому пришлось эмулировать превью граббя кадр каждые 4 миллисекунды и отображая его на экране ) Даже вроде не так чтобы и сильно тормозит %) Сойдет вообщем ) Вообщем тему, можно закрыть