49 #define MAX_PACKET_SIZE 58
50 #define MAX_BUF_SIZE (MAX_PACKET_SIZE + 2)
52 DEFINE_GUID(CLSID_SampleGrabber, 0xc1f400a0, 0x3f08, 0x11d3, 0x9f, 0x0b, 0x00,
53 0x60, 0x08, 0x03, 0x9e, 0x37);
54 DEFINE_GUID(IID_ISampleGrabber, 0x6b652fff, 0x11fe, 0x4fce, 0x92, 0xad, 0x02,
55 0x66, 0xb5, 0xd7, 0xc7, 0x8f);
56 DEFINE_GUID(CLSID_NullRenderer, 0xc1f400a4, 0x3f08, 0x11d3, 0x9f, 0x0b, 0x00,
57 0x60, 0x08, 0x03, 0x9e, 0x37);
58 DEFINE_GUID(MEDIASUBTYPE_BY8, 0x20385942, 0x0000, 0x0010, 0x80, 0x00, 0x00,
59 0xaa, 0x00, 0x38, 0x9b, 0x71);
60 DEFINE_GUID(MEDIASUBTYPE_Y16, 0x20363159, 0x0000, 0x0010, 0x80, 0x00, 0x00,
61 0xAA, 0x00, 0x38, 0x9B, 0x71);
62 DEFINE_GUID(MEDIASUBTYPE_GREY, 0x59455247, 0x0000, 0x0010, 0x80, 0x00, 0x00,
63 0xaa, 0x00, 0x38, 0x9b, 0x71);
64 DEFINE_GUID(MEDIASUBTYPE_Y8, 0x20203859, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa,
65 0x00, 0x38, 0x9b, 0x71);
66 DEFINE_GUID(MEDIASUBTYPE_Y800, 0x30303859, 0x0000, 0x0010, 0x80, 0x00, 0x00,
67 0xaa, 0x00, 0x38, 0x9b, 0x71);
69 static const GUID
EXT_UNIT_GUID = {0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00,
70 0x00, 0x00, 0x00, 0x00, 0x00};
72 #pragma comment(lib, "strmiids")
74 interface ISampleGrabberCB :
public IUnknown {
75 virtual HRESULT STDMETHODCALLTYPE SampleCB(
double SampleTime,
78 virtual HRESULT STDMETHODCALLTYPE
BufferCB(
double SampleTime, BYTE *pBuffer,
84 interface ISampleGrabber :
public IUnknown {
85 virtual HRESULT STDMETHODCALLTYPE SetOneShot(BOOL OneShot) = 0;
87 virtual HRESULT STDMETHODCALLTYPE
90 virtual HRESULT STDMETHODCALLTYPE
98 virtual HRESULT STDMETHODCALLTYPE
101 virtual HRESULT STDMETHODCALLTYPE
102 SetCallback(ISampleGrabberCB *pCallback, LONG WhichMethodToCallback) = 0;
126 *ppvObject =
static_cast<ISampleGrabberCB *
>(
this);
140 STDMETHODIMP
BufferCB(
double Time, BYTE *pBuffer,
long BufferLen) {
189 IBaseFilter **pVideoInputFilter);
192 const uint8_t *
buffer, ULONG nbBytes);
195 uint8_t *
buffer, ULONG nbBytes);
198 ULONG selector, int16_t
id,
200 uint32_t bufferLength);
203 ULONG selector, int16_t
id,
205 uint32_t bufferLength);