📄 cvideomixcontroller.h
字号:
//
// CVideoMixController.h
//
#ifndef __H_CVideoMixController__
#define __H_CVideoMixController__
#define RGB565_MASK_RED 0xF800
#define RGB565_MASK_GREEN 0x07E0
#define RGB565_MASK_BLUE 0x001F
#define RGB32_MASK_RED 0x00FF0000
#define RGB32_MASK_GREEN 0x0000FF00
#define RGB32_MASK_BLUE 0x000000FF
#define DEFAULT_RGB565_DRIFT 8
#define DEFAULT_RGB32_DRIFT 24
#define BUFFERED_FRAME_COUNT 3
#include "VideoKeyerDefs.h"
#include "CFrameList.h"
#include "IVideoKeyer.h"
class CVideoMixController
{
private:
// Mixing buffer to hold frames
CFrameList * mMixingFrames;
long mMixingFrameSize; // Input video info
long mTotalPixels;
WORD mBitCount;
BOOL mEOSMixing; // Running status
BOOL mEOSMainVideo;
BOOL mStopped;
BOOL mMixingFlushing;
DETECT_TYPE mDetectType;
BOOL mDetectOnceFinished;
BYTE mBackColorR;
BYTE mBackColorG;
BYTE mBackColorB;
BYTE mBackDrift;
BOOL mIsMMXSupported;
public:
CVideoMixController();
~CVideoMixController();
private:
void ReleaseMixingBuffer(void);
__inline BYTE MyAbs(__int16 inValue);
__inline void ActualMixing16Bits(BYTE * outPrimary, BYTE * inMixing);
__inline void ActualMixing32Bits(BYTE * outPrimary, BYTE * inMixing);
__inline void IdealMixing16Bits(BYTE * outPrimary, BYTE * inMixing);
__inline void IdealMixing32Bits(BYTE * outPrimary, BYTE * inMixing);
BOOL IsMMXSupported(void);
void IdealMMXMixing16Bits(BYTE * outPrimary, BYTE * inMixing);
public:
void Start(void);
void Stop(void);
void SetInputVideoInfo(VIDEOINFOHEADER * inInfo);
// Interface methods
void SetDetectType(DETECT_TYPE inType);
void GetDetectType(DETECT_TYPE * outType);
void SetBackgroundColor(BYTE inRed, BYTE inGreen, BYTE inBlue);
void GetBackgroundColor(BYTE * outRed, BYTE * outGreen, BYTE * outBlue);
HRESULT ReceiveMixingVideo(IMediaSample * inMixingSample);
HRESULT MixingEndOfStream(void);
HRESULT MixingBeginFlush(void);
HRESULT MixingEndFlush(void);
HRESULT DoMixing(IMediaSample * inMainSample);
HRESULT MainVideoEndOfStream(void);
};
#endif // __H_CVideoMixController__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -