⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 codec.h

📁 经典的MP4编解码核心库
💻 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 + -