📄 movie_rec.h
字号:
/*
DM270 ARM Evaluation Software
(c)Texas Instruments 2003
*/
#ifndef __MOVIE_REC_H__
#define __MOVIE_REC_H__
#include <system/armsys270.h>
#include <appl/movie_main.h>
#define MPEG4_REC_AVG_BITRATE ((Uint32)0x1400000)
#define MPEG4_REC_MAX_BITRATE ((Uint32)0x2000000)
// MPEG-4 encode ARM-DSP communication
#define MPEG4_REC_START (Uint16)0x0400
#define MPEG4_REC_STOP (Uint16)0x0401
#define MPEG4_REC_PAUSE (Uint16)0x0402
#define MPEG4_REC_INPUT_REQ (Uint16)0x0100
#define MPEG4_REC_DATA_FWD_REQ (Uint16)0x0101
#define MPEG4_REC_ERROR_STOP (Uint16)0x0102
#define MPEG4_REC_352x288 0
#define MPEG4_REC_320x240 1
#define MPEG4_REC_240x176 2
#define MPEG4_REC_176x144 3
#define MPEG4_REC_160x128 4
#define MPEG4_REC_160x120 5
typedef struct {
Uint16 VideoAddrHigh;
Uint16 VideoAddrLow;
Uint16 WorkAreaAddrHigh;
Uint16 WorkAreaAddrLow;
Uint16 RingBuffAddrHigh;
Uint16 RingBuffAddrLow;
Uint16 RingBuffSizeHigh;
Uint16 RingBuffSizeLow;
Uint16 AvgBitRateHigh;
Uint16 AvgBitRateLow;
Uint16 MaxBitRateHigh;
Uint16 MaxBitRateLow;
Uint16 ImageSize;
Uint16 FrameRate;
Uint16 SecPerGOV;
Uint16 PreFilter;
Uint16 RateControl;
Uint16 IniQvalue;
Uint16 IniIPRatio;
Uint16 ShortCycleSpeedControl;
Uint16 LongCycleSpeedControl;
Uint16 Reserved;
Uint16 AudioRingBuffAddrHigh;
Uint16 AudioRingBuffAddrLow;
Uint16 AudioRingBuffSizeHigh;
Uint16 AudioRingBuffSizeLow;
Uint16 AudioBitRate;
Uint16 AudioQuality;
Uint16 VoiceDelayTime;
Uint16 AudioFormat;
} MPEG4_REC_START_CMD;
typedef struct {
Uint16 VideoSizeHigh;
Uint16 VideoSizeLow;
Uint16 AudioSizeHigh;
Uint16 AudioSizeLow;
Uint16 FrameCountHigh;
Uint16 FrameCountLow;
} MPEG4_REC_CMD_REPLY;
typedef struct {
Uint16 Status;
Uint16 Reserved0;
Uint16 VideoSizeHigh;
Uint16 VideoSizeLow;
Uint16 AudioSizeHigh;
Uint16 AudioSizeLow;
Uint16 FrameCountHigh;
Uint16 FrameCountLow;
Uint16 FrameType;
Uint16 FwdDataType;
Uint16 TimeRes;
Uint16 TimeInc;
Uint16 ModTimeBase;
} MPEG4_REC_DSP_REQ;
typedef struct {
Uint16 VideoAddrHigh;
Uint16 VideoAddrLow;
} MPEG4_REC_DSP_REQ_REPLY;
// MJPEG encode ARM-DSP communication
#define MJPEG_REC_START (Uint16)0x0400
#define MJPEG_REC_STOP (Uint16)0x0401
#define MJPEG_REC_PAUSE (Uint16)0x0402
#define MJPEG_REC_INPUT_REQ (Uint16)0x0100
#define MJPEG_REC_DATA_FWD_REQ (Uint16)0x0101
#define MJPEG_REC_ERROR_STOP (Uint16)0x0102
#define MJPEG_REC_320x240 0
#define MJPEG_REC_640x480 1
#define MJPEG_REC_720x480 2
typedef struct {
Uint16 VideoAddrHigh;
Uint16 VideoAddrLow;
Uint16 RingBuffAddrHigh;
Uint16 RingBuffAddrLow;
Uint16 RingBuffSizeHigh;
Uint16 RingBuffSizeLow;
Uint16 ImageSize;
Uint16 ImgFormat;
Uint16 EncFormat;
Uint16 RestartMakerInterval;
Uint16 QFactor;
Uint16 FrameRate;
Uint16 Reserved;
Uint16 AudioRingBuffAddrHigh;
Uint16 AudioRingBuffAddrLow;
Uint16 AudioRingBuffSizeHigh;
Uint16 AudioRingBuffSizeLow;
Uint16 AudioBitRate;
} MJPEG_REC_START_CMD;
typedef struct {
Uint16 VideoSizeHigh;
Uint16 VideoSizeLow;
Uint16 AudioSizeHigh;
Uint16 AudioSizeLow;
Uint16 FrameCountHigh;
Uint16 FrameCountLow;
} MJPEG_REC_CMD_REPLY;
typedef struct {
Uint16 Status;
Uint16 Reserved0;
Uint16 VideoSizeHigh;
Uint16 VideoSizeLow;
Uint16 AudioSizeHigh;
Uint16 AudioSizeLow;
Uint16 FrameCountHigh;
Uint16 FrameCountLow;
Uint16 FwdDataType;
} MJPEG_REC_DSP_REQ;
typedef struct {
Uint16 VideoAddrHigh;
Uint16 VideoAddrLow;
} MJPEG_REC_DSP_REQ_REPLY;
STATUS MOVIE_REC_init() ;
void MOVIE_REC_run(MOVIE_MODE mode) ;
void MOVIE_REC_CONFIG_run(MOVIE_MODE mode) ;
void MOVIE_REC_PAUSE_run(MOVIE_MODE mode) ;
STATUS MOVIE_REC_START_run(MOVIE_MODE mode) ;
void MOVIE_REC_IN_PROGRESS_run(MOVIE_MODE mode) ;
void MOVIE_REC_STOP_run(MOVIE_MODE mode) ;
void MPEG4_REC_isr() ;
void MJPEG_REC_isr() ;
void MOVIE_REC_switchBuffer() ;
void MOVIE_REC_initPREV(MOVIE_MODE mode) ;
STATUS MOVIE_REC_initMovieCtrl(MOVIE_MODE mode) ;
void MOVIE_REC_FULLSCREEN_run(MOVIE_MODE mode);
void MJPEG_REC_CONFIG_run();
void MPEG4_REC_CONFIG_run();
void MOVIE_REC_qtffCreate(MOVIE_MODE mode);
#endif /* __MOVIE_REC_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -