12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #pragma once
- #include "ivideocaptureinterface.h"
- #include "../libvideoframework/videoutil.h"
- #include "../rvcmediacommon/common_video/videocommon.h"
- static const int mode_width[VIDEOCAP_MAX_MODE] = {
- VIDEOCAP_SQCIF_WIDTH,VIDEOCAP_QQVGA_WIDTH,
- VIDEOCAP_QCIF_WIDTH,VIDEOCAP_QVGA_WIDTH,
- VIDEOCAP_CIF_WIDTH,VIDEOCAP_VGA_WIDTH,
- VIDEOCAP_4CIF_WIDTH,VIDEOCAP_SVGA_WIDTH,
- VIDEOCAP_NHD_WIDTH,VIDEOCAP_SXGA_WIDTH,
- VIDEOCAP_720P_WIDTH,VIDEOCAP_1080P_WIDTH,
- };
- static const int mode_height[VIDEOCAP_MAX_MODE] = {
- VIDEOCAP_SQCIF_HEIGHT,VIDEOCAP_QQVGA_HEIGHT,
- VIDEOCAP_QCIF_HEIGHT,VIDEOCAP_QVGA_HEIGHT,
- VIDEOCAP_CIF_HEIGHT,VIDEOCAP_VGA_HEIGHT,
- VIDEOCAP_4CIF_HEIGHT,VIDEOCAP_SVGA_HEIGHT,
- VIDEOCAP_NHD_HEIGHT,VIDEOCAP_SXGA_HEIGHT,
- VIDEOCAP_720P_HEIGHT,VIDEOCAP_1080P_HEIGHT,
- };
- typedef struct videocap_s
- {
- videocap_param_t param;
- int running;
- int cap_index;
- video_frame cap_frame;
- video_frame res_frame;
- struct SwsContext* sws_context; /* for image scaling and format converting */
- } videocap_t;
- class VideoCaptureImpl : public IVideoCapture
- {
- public:
- VideoCaptureImpl(ICaptureCallback* pCallback);
- ~VideoCaptureImpl();
- virtual int VideoCaptureInit(videocap_param_t* param);
- virtual int StartVideoCapture();
- virtual int StopVideoCapture();
- virtual void VideoCaptureDestroy();
- bool VideoCaptureStarted();
- ICaptureCallback* GetCaptureCallback();
- int GetCaptureVideoFd();
- private:
- ICaptureCallback* m_callback;
- videocap_t* m_capture;
- bool m_bCaptureStarted;
- int m_deviceId;
- int m_deviceFd;
- int m_frame_fmt;
- int m_capture_width;
- int m_capture_height;
- VideoType m_captureVideoType;
- int m_currentFrameRate;
- };
|