📄 codec.h
字号:
#ifndef _CODEC_H_
#define _CODEC_H_
#include <windows.h>
#include <vfw.h>
#include "config.h"
#include "mp4v.h"
#define FOURCC_RMP4 mmioFOURCC('R','M','P','4')
#define FOURCC_DIVX mmioFOURCC('D','I','V','X')
#define FOURCC_DX50 mmioFOURCC('D','X','5','0')
#define RMP4_4CC 0
#define DIVX_4CC 1
#define DX50_4CC 2
// yuyu YUV=4:2:2 16bit, y-u-y-v, packed
#define FOURCC_YUYV mmioFOURCC('Y','U','Y','V')
#define FOURCC_YUY2 mmioFOURCC('Y','U','Y','2')
#define FOURCC_V422 mmioFOURCC('V','4','2','2')
// yvyu YUV=4:2:2 16bit, y-v-y-u, packed
#define FOURCC_YVYU mmioFOURCC('Y','V','Y','U')
// uyvy YUV=4:2:2 16bit, u-y-v-y, packed
#define FOURCC_UYVY mmioFOURCC('U','Y','V','Y')
// i420 YUV=4:2:4, 12bit, y-u-v
#define FOURCC_I420 mmioFOURCC('I','4','2','0')
#define FOURCC_IYUV mmioFOURCC('I','Y','U','V')
// yv12 YUV=4:2:4, 12bit, y-u-v
#define FOURCC_YV12 mmioFOURCC('Y','V','1','2')
#define MP4V_NAME_L L"RMP4"
#define MP4V_DESC_L L"REALmagic MPEG-4 Video Codec"
typedef struct
{
CONFIG_MP4V config;
// encoder
void * enc_handle;
// decoder
void * dec_handle;
int colorspace;
int fincr;
int fbase;
int framenum;
int keyspacing;
} CODEC;
// decoding functions
LRESULT QueryDecompressor(CODEC *, BITMAPINFO *, BITMAPINFO *);
LRESULT GetFormatDecompressing(CODEC *, BITMAPINFO *, BITMAPINFO *);
LRESULT BeginDecompressing(CODEC *, BITMAPINFO *, BITMAPINFO *);
LRESULT EndDecompressing(CODEC *);
LRESULT Decompressing(CODEC *, ICDECOMPRESS *);
// encoding functions
LRESULT QueryCompressor(CODEC *, BITMAPINFO *, BITMAPINFO *);
LRESULT GetFormatCompressing(CODEC *, BITMAPINFO *, BITMAPINFO *);
LRESULT GetSizeCompressing(CODEC *, BITMAPINFO *, BITMAPINFO *);
LRESULT GetFrameInfoCompressing(CODEC *, ICCOMPRESSFRAMES *);
LRESULT BeginCompressing(CODEC *, BITMAPINFO *, BITMAPINFO *);
LRESULT EncCompressing(CODEC *);
LRESULT compress(CODEC *, ICCOMPRESS *);
#endif /* _CODEC_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -