00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef SAMPLEGRABBER_H_
00025 #define SAMPLEGRABBER_H_
00026
00027 #include "QEdit.h"
00028
00029 #include "IOBuffer.h"
00030 #include "avcap-export.h"
00031
00032 namespace avcap
00033 {
00034 class DS_VidCapManager;
00035
00037
00042 class AVCAP_Export SampleGrabberCallback : public ISampleGrabberCB
00043 {
00044 private:
00045 DS_VidCapManager* mVidCapMngr;
00046 ISampleGrabber* mSampleGrabberFilter;
00047 HANDLE& mLock;
00048
00049 public:
00050 SampleGrabberCallback(HANDLE& lock);
00051
00052 ~SampleGrabberCallback();
00053
00057 void SetVideoCaptureManager(DS_VidCapManager *vidCapManager);
00058
00062 void SetSampleGrabberFilter(ISampleGrabber *SampleGrabberFilter);
00063
00064
00065
00066
00067 STDMETHODIMP_(ULONG) AddRef()
00068 { return 1; }
00069
00070 STDMETHODIMP_(ULONG) Release()
00071 { return 2; }
00072
00073 STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject);
00074
00078 STDMETHODIMP SampleCB(double Time, IMediaSample *pSample);
00079
00080 STDMETHODIMP BufferCB(double Time, BYTE *pBuffer, long BufferLen);
00081
00082 friend class IOBuffer;
00083 };
00084 }
00085
00086 #endif // SAMPLEGRABBER_H_