00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef TVReaderControler_h
00010 #define TVReaderControler_h
00011
00012 #include <windows.h>
00013 #include <streams.h>
00014 #include <dvdmedia.h>
00015
00016 #include "IVideoReaderControler.h"
00017
00018
00019 class TVReaderControler : public CUnknown, IVideoReaderControler
00020 {
00021 public:
00022 static CUnknown* WINAPI CreateInstance(LPUNKNOWN unk, HRESULT *hr);
00023 ~TVReaderControler();
00024
00025 virtual STDMETHODIMP SetFrameCapacity(int num);
00026 virtual STDMETHODIMP GetFrameCapacity(int *num);
00027
00028 virtual STDMETHODIMP GetLength(int *num);
00029 virtual STDMETHODIMP GetFrameWidth(int *width);
00030 virtual STDMETHODIMP GetFrameHeight(int *height);
00031 virtual STDMETHODIMP GetFrame(int num, BYTE **sample);
00032
00033 virtual STDMETHODIMP SetFilterGraph(IFilterGraph* iGraph);
00034
00035 virtual STDMETHODIMP NextData(BYTE *sample);
00036 virtual STDMETHODIMP SetDataSizes(int width, int height);
00037
00038 DECLARE_IUNKNOWN;
00039
00040
00041 private:
00042 TVReaderControler(LPUNKNOWN unk, HRESULT *hr);
00043
00044
00045 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void ** ppv);
00046
00047 CCritSec* _critSec;
00048
00049 BYTE* _currentData;
00050 BYTE* _newData;
00051 int _newAvailable;
00052
00053 int _width;
00054 int _height;
00055
00056 IMediaControl* _imCtrl;
00057 };
00058
00059 #endif