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 DSFORMATMANAGER_H_
00025 #define DSFORMATMANAGER_H_
00026
00027 #include <list>
00028 #include <string>
00029 #include <Dshow.h>
00030
00031 #ifndef _MSC_VER
00032 # include <stdint.h>
00033 #endif
00034
00035 #include "FormatManager.h"
00036 #include "avcap-export.h"
00037
00038 class IBaseFilter;
00039 class IPin;
00040
00041 namespace avcap
00042 {
00043 class DS_DeviceDescriptor;
00044
00046
00051 class AVCAP_Export DS_FormatManager : public FormatManager
00052 {
00053 private:
00054 DS_DeviceDescriptor* mDSDeviceDescriptor;
00055 int mFrameRate;
00056
00057 public:
00058 DS_FormatManager(DS_DeviceDescriptor *dd);
00059
00060 virtual ~DS_FormatManager();
00061
00062 virtual int setFormat(Format *fmt);
00063
00064 virtual Format* getFormat();
00065
00066 virtual int setResolution(int w, int h);
00067
00068 virtual int getWidth();
00069
00070 virtual int getHeight();
00071
00072 virtual int getBytesPerLine();
00073
00074 virtual int setFramerate(int fps);
00075
00076 virtual int getFramerate();
00077
00078 virtual int flush();
00079
00080 virtual size_t getImageSize();
00081
00082 virtual const VideoStandard* getVideoStandard();
00083
00084 virtual int setVideoStandard(const VideoStandard* std);
00085
00086 virtual void query();
00087
00088 private:
00089 int getParams();
00090
00091 void queryVideoStandards();
00092
00093 bool getVideoInfoHeader(AM_MEDIA_TYPE *MediaType,
00094 VIDEOINFOHEADER *VideoInfoHeader);
00095
00096 bool getCurrentConnectedVideoPin(IBaseFilter *CaptureFilter,
00097 IPin **VideoPin);
00098 };
00099 }
00100
00101 #endif // DSFORMATMANAGER_H_