mirror of
https://github.com/drasko/open-ameba.git
synced 2024-11-25 15:34:18 +00:00
89 lines
2.3 KiB
C
89 lines
2.3 KiB
C
#ifndef _EXCHBUF_H
|
|
#define _EXCHBUF_H
|
|
#include "cmsis_os.h"
|
|
#include "errno.h"
|
|
|
|
/*service task state*/
|
|
#define S_STOP 0x00
|
|
#define S_RUN 0x01
|
|
#define S_FROZEN 0X02
|
|
|
|
#define CMD_SET_HEIGHT 0x00
|
|
#define CMD_SET_WIDTH 0x01
|
|
#define CMD_SET_BITRATE 0x02
|
|
#define CMD_SET_FRAMERATE 0x03
|
|
#define CMD_SET_CPZRATIO 0x04
|
|
#define CMD_SET_FRAMETYPE 0x05
|
|
#define CMD_SET_SAMPLERATE 0x06
|
|
#define CMD_SET_CHANNEL 0x07
|
|
#define CMD_SET_CODEC 0x08
|
|
#define CMD_SET_STREAMNUM 0x09
|
|
#define CMD_SET_SPS 0x0a
|
|
#define CMD_SET_PPS 0x0b
|
|
#define CMD_SET_LEVEL 0x0c
|
|
#define CMD_SET_APPLY 0x1f
|
|
#define CMD_SET_STREAMMING 0x20
|
|
#define CMD_SET_INPUT_QUEUE 0x21
|
|
#define CMD_SET_OUTPUT_QUEUE 0x22
|
|
#define CMD_SET_PRIV_BUF 0x23
|
|
#define CMD_SET_TASK_ON 0x24
|
|
#define CMD_SET_TASK_FROZEN 0x25
|
|
#define CMD_SET_TASK_OFF 0x26
|
|
#define CMD_SELECT_CHANNEL 0x30
|
|
#define CMD_SET_CB_START 0x40
|
|
#define CMD_SET_CB_STOP 0x41
|
|
#define CMD_SET_CB_PAUSE 0x42
|
|
#define CMD_SET_CB_CUSTOMCMD 0x43
|
|
#define CMD_FLUSH 0x50
|
|
#define CMD_SET_FLAG 0X51
|
|
#define CMD_GET_STREAM_READY 0x52
|
|
#define CMD_GET_STREAM_STATUS 0x53
|
|
|
|
/*mp4 storage*/
|
|
#define CMD_SET_ST_PERIOD 0X60
|
|
#define CMD_SET_ST_TOTAL 0X61
|
|
#define CMD_SET_ST_TYPE 0X62
|
|
#define CMD_SET_ST_FILENAME 0x63
|
|
#define CMD_SET_ST_START 0x64
|
|
/*mp4 storage*/
|
|
#define STORAGE_ALL 0
|
|
#define STORAGE_VIDEO 1
|
|
#define STORAGE_AUDIO 2
|
|
|
|
/*exchange buffer state*/
|
|
#define STAT_INIT 0
|
|
#define STAT_USED 1
|
|
#define STAT_READY 2
|
|
#define STAT_RESERVED 3
|
|
|
|
#define TIME_SYNC_EN 0
|
|
#define TIME_SYNC_DIS 1
|
|
|
|
#define FMT_V_MJPG 0x00
|
|
#define FMT_V_H264 0x01
|
|
#define FMT_V_MP4V_ES 0x02
|
|
#define FMT_A_PCMU 0x10
|
|
#define FMT_A_PCMA 0x11
|
|
#define FMT_A_MP4A_LATM 0x12
|
|
#define FMT_AV_UNKNOWN 0xFF
|
|
|
|
#define MFT_CMD 0
|
|
#define MFT_DATA 1
|
|
typedef struct _exch_buf{
|
|
//_list node; // linking node
|
|
uint32_t type; // CMD, or DATA
|
|
uint32_t cmd; // command
|
|
uint32_t arg; // command arg
|
|
|
|
uint8_t* data; //
|
|
uint32_t index;
|
|
uint32_t len;
|
|
uint32_t timestamp; // 0: not set
|
|
uint32_t codec_fmt; // FMT_V_xx or FMT_A_xx
|
|
|
|
uint32_t state;
|
|
void* priv; // private use
|
|
}exch_buf_t;
|
|
|
|
typedef int (*mmf_cb_t)(void*);
|
|
#endif
|