mirror of
https://github.com/sengeiou/realtek_ameba_mp_sdk.git
synced 2026-07-12 06:25:41 +00:00
ameba micropython sdk first commit
This commit is contained in:
commit
8508ee6139
5619 changed files with 1874619 additions and 0 deletions
35
sdk/component/common/media/mmfv2/memory_encoder.h
Normal file
35
sdk/component/common/media/mmfv2/memory_encoder.h
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#ifndef ENCODER_MEMORY_H
|
||||
#define ENCODER_MEMORY_H
|
||||
|
||||
#include "osdep_service.h"
|
||||
#include <stdint.h>
|
||||
|
||||
struct encoder_buffer{
|
||||
_mutex memory_lock;
|
||||
|
||||
uint8_t* pool;
|
||||
uint8_t* pool_table; // index table
|
||||
int32_t max_pool_blk; //
|
||||
|
||||
int32_t blk_size; // one block size
|
||||
int32_t mem_size; // total pool size
|
||||
|
||||
int32_t pool_blk_idx;
|
||||
int32_t tail_blk_idx; // tail empty block start index, it will set when pool_blk_idx reset to 0, clear to -1, when pool_blk_idx != 0 in realloc function
|
||||
int32_t rest_pool_blk;
|
||||
|
||||
int32_t blk_serial;
|
||||
|
||||
int32_t min_rest_blk;
|
||||
};
|
||||
|
||||
|
||||
void *memory_init(int size,int block_size);
|
||||
void memory_deinit(void *ctx);
|
||||
//u8* _memory_realloc(struct encoder_buffer *eb,uint8_t *addr,uint32_t size);
|
||||
u8* memory_realloc(void *ctx,uint8_t *addr,uint32_t size);
|
||||
void memory_free(void *ctx,uint8_t *addr);
|
||||
void* memory_alloc(void *ctx,uint32_t size);
|
||||
void dump_info(void *ctx);
|
||||
|
||||
#endif
|
||||
12
sdk/component/common/media/mmfv2/mmf2.h
Normal file
12
sdk/component/common/media/mmfv2/mmf2.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef MMF2_H
|
||||
#define MMF2_H
|
||||
|
||||
#include "mmf2_link.h"
|
||||
#include "mmf2_module.h"
|
||||
|
||||
#include "mmf2_siso.h"
|
||||
#include "mmf2_miso.h"
|
||||
#include "mmf2_mimo.h"
|
||||
#include "mmf2_simo.h"
|
||||
|
||||
#endif
|
||||
112
sdk/component/common/media/mmfv2/mmf2_dbg.h
Normal file
112
sdk/component/common/media/mmfv2/mmf2_dbg.h
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
#ifndef __MMF_DBG_H_
|
||||
#define __MMF_DBG_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// Define debug group
|
||||
#define _MMF_DBG_RTSP_ 0x00000001
|
||||
#define _MMF_DBG_RTP_ 0x00000002
|
||||
#define _MMF_DBG_ISP_ 0x00000004
|
||||
#define _MMF_DBG_ENCODER_ 0x00000008
|
||||
|
||||
extern uint32_t ConfigDebugMmfErr;
|
||||
extern uint32_t ConfigDebugMmfWarn;
|
||||
extern uint32_t ConfigDebugMmfInfo;
|
||||
|
||||
#define DBG_MMF_ERR_MSG_ON(x) (ConfigDebugMmfErr |= (x))
|
||||
#define DBG_MMF_WARN_MSG_ON(x) (ConfigDebugMmfWarn |= (x))
|
||||
#define DBG_MMF_INFO_MSG_ON(x) (ConfigDebugMmfInfo |= (x))
|
||||
|
||||
#define DBG_MMF_ERR_MSG_OFF(x) (ConfigDebugMmfErr &= ~(x))
|
||||
#define DBG_MMF_WARN_MSG_OFF(x) (ConfigDebugMmfWarn &= ~(x))
|
||||
#define DBG_MMF_INFO_MSG_OFF(x) (ConfigDebugMmfInfo &= ~(x))
|
||||
|
||||
|
||||
#define RTSP_ERR_PREFIX "[RTSP Err]"
|
||||
#define RTSP_WARN_PREFIX "[RTSP Wrn]"
|
||||
#define RTSP_INFO_PREFIX "[RTSP Inf]"
|
||||
|
||||
#define RTP_ERR_PREFIX "[RTP Err]"
|
||||
#define RTP_WARN_PREFIX "[RTP Wrn]"
|
||||
#define RTP_INFO_PREFIX "[RTP Inf]"
|
||||
|
||||
#define ISP_ERR_PREFIX "[ISP Err]"
|
||||
#define ISP_WARN_PREFIX "[ISP Wrn]"
|
||||
#define ISP_INFO_PREFIX "[ISP Inf]"
|
||||
|
||||
#define ENCODER_ERR_PREFIX "[Enc Err]"
|
||||
#define ENCODER_WARN_PREFIX "[Enc Wrn]"
|
||||
#define ENCODER_INFO_PREFIX "[Enc Inf]"
|
||||
|
||||
|
||||
#define MMF_PRINTK printf
|
||||
|
||||
#define RTSP_DBG_ERROR(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfErr&_MMF_DBG_RTSP_) \
|
||||
MMF_PRINTK("\n\r" RTSP_ERR_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
#define RTP_DBG_ERROR(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfErr&_MMF_DBG_RTP_) \
|
||||
MMF_PRINTK("\n\r" RTP_ERR_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
#ifdef ISP_DBG_ERROR
|
||||
#undef ISP_DBG_ERROR
|
||||
#define ISP_DBG_ERROR(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfErr&_MMF_DBG_ISP_) \
|
||||
MMF_PRINTK("\n\r" ISP_ERR_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
#endif
|
||||
#define ENCODER_DBG_ERROR(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfErr&_MMF_DBG_ENCODER_) \
|
||||
MMF_PRINTK("\n\r" ENCODER_ERR_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
|
||||
// DBG_WARNING
|
||||
#define RTSP_DBG_WARNING(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfWarn&_MMF_DBG_RTSP_) \
|
||||
MMF_PRINTK("\n\r" RTSP_WARN_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
#define RTP_DBG_WARNING(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfWarn&_MMF_DBG_RTP_) \
|
||||
MMF_PRINTK("\n\r" RTP_WARN_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
#define ISP_DBG_WARNING(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfWarn&_MMF_DBG_ISP_) \
|
||||
MMF_PRINTK("\n\r" ISP_WARN_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
#define ENCODER_DBG_WARNING(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfWarn&_MMF_DBG_ENCODER_) \
|
||||
MMF_PRINTK("\n\r" ENCODER_WARN_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
|
||||
// DBG_INFO
|
||||
#define RTSP_DBG_INFO(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfInfo&_MMF_DBG_RTSP_) \
|
||||
MMF_PRINTK("\n\r" RTSP_INFO_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
#define RTP_DBG_INFO(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfInfo&_MMF_DBG_RTP_) \
|
||||
MMF_PRINTK("\n\r" RTP_INFO_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
#define ISP_DBG_INFO(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfInfo&_MMF_DBG_ISP_) \
|
||||
MMF_PRINTK("\n\r" ISP_INFO_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
#define ENCODER_DBG_INFO(...) \
|
||||
do { \
|
||||
if (ConfigDebugMmfInfo&_MMF_DBG_ENCODER_) \
|
||||
MMF_PRINTK("\n\r" ENCODER_INFO_PREFIX __VA_ARGS__); \
|
||||
}while(0)
|
||||
#endif
|
||||
|
||||
48
sdk/component/common/media/mmfv2/mmf2_link.h
Normal file
48
sdk/component/common/media/mmfv2/mmf2_link.h
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#ifndef MMF2_INTERCONNECT_H
|
||||
#define MMF2_INTERCONNECT_H
|
||||
|
||||
// MMIC : media moudle inter connection
|
||||
//-----------------------------------------------------------------------------
|
||||
// Inter connection module command
|
||||
#define MMIC_CMD_ADD_INPUT 0x00
|
||||
#define MMIC_CMD_ADD_INPUT0 0x00
|
||||
#define MMIC_CMD_ADD_INPUT1 0x01
|
||||
#define MMIC_CMD_ADD_INPUT2 0x02
|
||||
#define MMIC_CMD_ADD_INPUT3 0x03
|
||||
|
||||
#define MMIC_CMD_ADD_OUTPUT 0x10
|
||||
#define MMIC_CMD_ADD_OUTPUT0 0x10
|
||||
#define MMIC_CMD_ADD_OUTPUT1 0x11
|
||||
#define MMIC_CMD_ADD_OUTPUT2 0x12
|
||||
#define MMIC_CMD_ADD_OUTPUT3 0x13
|
||||
|
||||
#define MMIC_CMD_SET_STACKSIZE 0x20
|
||||
#define MMIC_CMD_SET_TASKPRIORITY 0x21
|
||||
|
||||
#define MMIC_STAT_EXIT 0x00
|
||||
#define MMIC_STAT_RUN 0x01
|
||||
#define MMIC_STAT_PAUSE 0x02
|
||||
#define MMIC_STAT_SET_EXIT 0x10
|
||||
#define MMIC_STAT_SET_PAUSE 0x20
|
||||
#define MMIC_STAT_SET_RUN 0x40
|
||||
|
||||
//
|
||||
#define MM_OUTPUT_MASK 0xf0
|
||||
#define MM_OUTPUT 0x10
|
||||
#define MM_OUTPUT0 0x10
|
||||
#define MM_OUTPUT1 0x20
|
||||
#define MM_OUTPUT2 0x40
|
||||
#define MM_OUTPUT3 0x80
|
||||
#define MM_INPUT_MASK 0x0f
|
||||
#define MM_INPUT 0x01
|
||||
#define MM_INPUT0 0x01
|
||||
#define MM_INPUT1 0x02
|
||||
#define MM_INPUT2 0x04
|
||||
#define MM_INPUT3 0x08
|
||||
|
||||
#define MMIC_DEP_INPUT0 MM_INPUT0
|
||||
#define MMIC_DEP_INPUT1 MM_INPUT1
|
||||
#define MMIC_DEP_INPUT2 MM_INPUT2
|
||||
#define MMIC_DEP_INPUT3 MM_INPUT3
|
||||
|
||||
#endif
|
||||
61
sdk/component/common/media/mmfv2/mmf2_mimo.h
Normal file
61
sdk/component/common/media/mmfv2/mmf2_mimo.h
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
#ifndef MMF2_MIMO_H
|
||||
#define MMF2_MIMO_H
|
||||
#include <stdint.h>
|
||||
#include <FreeRTOS.h>
|
||||
#include <task.h>
|
||||
#include "mmf2_module.h"
|
||||
|
||||
#include "dlist.h"
|
||||
|
||||
typedef struct mm_mimo_item_s
|
||||
{
|
||||
// list node
|
||||
struct list_head node;
|
||||
|
||||
// data
|
||||
uint32_t data;
|
||||
|
||||
// ref count
|
||||
uint32_t ref_cnt;
|
||||
|
||||
// log
|
||||
uint32_t use_log;
|
||||
}mm_mimo_item_t;
|
||||
|
||||
typedef struct mm_mimo_queue_s{
|
||||
// list entry
|
||||
struct list_head head;
|
||||
|
||||
// protection
|
||||
SemaphoreHandle_t lock;
|
||||
}mm_mimo_queue_t;
|
||||
|
||||
typedef struct mm_mimo_s{
|
||||
int input_cnt;
|
||||
|
||||
// depend on intput count
|
||||
mm_context_t *input[4];
|
||||
mm_mimo_queue_t queue[4];
|
||||
|
||||
int output_cnt;
|
||||
|
||||
// depend on output count
|
||||
uint32_t pause_mask[4];
|
||||
mm_context_t *output[4]; // output module context
|
||||
uint32_t output_dep[4]; // output depend on which input, bit mask
|
||||
uint32_t input_mask[4]; // convert from output_dep, input referenced by which output, bit mask
|
||||
uint32_t status[4];
|
||||
uint32_t stack_size;
|
||||
uint32_t task_priority;
|
||||
xTaskHandle task[4];
|
||||
}mm_mimo_t;
|
||||
|
||||
extern int mimo_start(mm_mimo_t* mimo);
|
||||
extern void mimo_stop(mm_mimo_t* mimo);
|
||||
extern void mimo_pause(mm_mimo_t* mimo, uint32_t pause_mask);
|
||||
extern void mimo_resume(mm_mimo_t* mimo);
|
||||
extern void mimo_ctrl(mm_mimo_t* mimo, uint32_t cmd, uint32_t arg1, uint32_t arg2);
|
||||
extern mm_mimo_t* mimo_create(void);
|
||||
extern mm_mimo_t* mimo_delete(mm_mimo_t* mimo);
|
||||
|
||||
#endif
|
||||
29
sdk/component/common/media/mmfv2/mmf2_miso.h
Normal file
29
sdk/component/common/media/mmfv2/mmf2_miso.h
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#ifndef MMF2_MISO_H
|
||||
#define MMF2_MISO_H
|
||||
#include <stdint.h>
|
||||
#include <FreeRTOS.h>
|
||||
#include <task.h>
|
||||
#include "mmf2_module.h"
|
||||
|
||||
typedef struct mm_miso_s{
|
||||
int input_cnt;
|
||||
mm_context_t *input[4]; // max 4 input
|
||||
|
||||
mm_context_t *output;
|
||||
|
||||
uint32_t pause_mask;
|
||||
uint32_t status;
|
||||
uint32_t stack_size;
|
||||
uint32_t task_priority;
|
||||
xTaskHandle task;
|
||||
}mm_miso_t;
|
||||
|
||||
extern int miso_start(mm_miso_t* miso);
|
||||
extern void miso_stop(mm_miso_t* miso);
|
||||
extern void miso_pause(mm_miso_t* miso, uint32_t pause_mask);
|
||||
extern void miso_resume(mm_miso_t* miso);
|
||||
extern void miso_ctrl(mm_miso_t* miso, uint32_t cmd, uint32_t arg1, uint32_t arg2);
|
||||
extern mm_miso_t* miso_create(void);
|
||||
extern mm_miso_t* miso_delete(mm_miso_t* miso);
|
||||
|
||||
#endif
|
||||
124
sdk/component/common/media/mmfv2/mmf2_module.h
Normal file
124
sdk/component/common/media/mmfv2/mmf2_module.h
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
#ifndef MMF2_MODULE_H
|
||||
#define MMF2_MODULE_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <FreeRTOS.h>
|
||||
#include <semphr.h>
|
||||
|
||||
#include <diag.h>
|
||||
#if defined(CONFIG_PLATFORM_8721D)
|
||||
#ifndef rt_printf
|
||||
#define rt_printf printf
|
||||
#endif
|
||||
#define mm_printf rt_printf
|
||||
#else
|
||||
#define mm_printf(...) do{ __disable_irq(); rt_printf(__VA_ARGS__); __enable_irq();}while(0)
|
||||
#endif
|
||||
|
||||
// MM : media module
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#define MM_TYPE_NONE 0x00 // not create output queue if output type is none
|
||||
|
||||
#define MM_MASK_SRC 0x10
|
||||
#define MM_TYPE_VSRC 0x10 // ISP or file
|
||||
#define MM_TYPE_ASRC 0x11 // I2S or file or RTP
|
||||
|
||||
#define MM_MASK_DSP 0x20
|
||||
#define MM_TYPE_VDSP 0x20 // H264 ENC or JPEG ENC
|
||||
#define MM_TYPE_ADSP 0x21 // AAC ENC or AAC DEC
|
||||
|
||||
#define MM_MASK_SINK 0x40
|
||||
#define MM_TYPE_VSINK 0x41 // RTSP or file
|
||||
#define MM_TYPE_ASINK 0x42 // RTSP or I2S or file
|
||||
#define MM_TYPE_AVSINK 0x43 // RTSP or file
|
||||
|
||||
|
||||
#define MM_CMD_INIT_QUEUE_ITEMS 0x00 // init static queue item
|
||||
#define MM_CMD_SET_QUEUE_LEN 0x01 // set one queue's length
|
||||
#define MM_CMD_SET_QUEUE_NUM 0x02 // set number of queue (multiple queue)
|
||||
#define MM_CMD_SELECT_QUEUE 0x03 // select queue from queue0 ~ queue3
|
||||
#define MM_CMD_CLEAR_QUEUE_ITEMS 0x04 // clear queue item
|
||||
|
||||
|
||||
#define MM_CMD_MODULE_BASE 0x80
|
||||
#define MM_MODULE_CMD(x) (MM_CMD_MODULE_BASE+(x))
|
||||
|
||||
#define MM_STAT_INIT 0x00
|
||||
#define MM_STAT_READY 0x01
|
||||
#define MM_STAT_ERROR 0x10
|
||||
#define MM_STAT_ERR_MALLOC 0x11
|
||||
#define MM_STAT_ERR_QUEUE 0x12
|
||||
#define MM_STAT_ERR_NEWITEM 0x13
|
||||
|
||||
/* common error code for MMF */
|
||||
#define EAGAIN 11
|
||||
#define EFAULT 14
|
||||
#define EINVAL 22
|
||||
#define ENOSR 63
|
||||
|
||||
typedef struct mm_module_s{
|
||||
void* (*create)(void*);
|
||||
void* (*destroy)(void*);
|
||||
int (*control)(void*, int, int);
|
||||
int (*handle)(void*, void*, void*); // void* ctx, void* input, void *output , return ( <0 error code, >0 success with output length , =0 success)
|
||||
|
||||
void* (*new_item)(void*); // malloc
|
||||
void* (*del_item)(void*, void*); // free
|
||||
void* (*rsz_item)(void*, void*, int); // resize (only shrink)
|
||||
|
||||
uint32_t output_type;
|
||||
uint32_t module_type;
|
||||
char* name;
|
||||
}mm_module_t;
|
||||
|
||||
typedef struct mm_conveyor_s{
|
||||
xQueueHandle output_ready;
|
||||
xQueueHandle output_recycle;
|
||||
int32_t item_num;
|
||||
}mm_conveyor_t;
|
||||
|
||||
typedef struct mm_contex_s{
|
||||
union{
|
||||
struct{
|
||||
xQueueHandle output_ready;
|
||||
xQueueHandle output_recycle;
|
||||
int32_t item_num;
|
||||
};
|
||||
mm_conveyor_t port[4];
|
||||
};
|
||||
|
||||
mm_module_t* module;
|
||||
|
||||
// private data structure for created instance
|
||||
void* priv;
|
||||
|
||||
// module state
|
||||
uint32_t state;
|
||||
int32_t queue_num; // number of queue
|
||||
int32_t curr_queue;
|
||||
}mm_context_t;
|
||||
|
||||
#define MMQI_FLAG_STATIC 0x00
|
||||
#define MMQI_FLAG_DYNAMIC 0x01
|
||||
#define MMQI_FLAG_READY 0x10
|
||||
#define MMQI_FLAG_USED 0x20
|
||||
|
||||
typedef struct mm_queue_item_s{
|
||||
uint32_t flag;
|
||||
uint32_t data_addr; // store data address
|
||||
|
||||
uint32_t timestamp;
|
||||
uint32_t hw_timestamp;
|
||||
uint32_t type;
|
||||
uint32_t size;
|
||||
uint32_t index; // for RTSP
|
||||
uint32_t in_idx; // input index
|
||||
}mm_queue_item_t;
|
||||
|
||||
|
||||
extern void mm_module_ctrl(mm_context_t *ctx, int cmd, int arg);
|
||||
extern mm_context_t* mm_module_open(mm_module_t *mm );
|
||||
extern mm_context_t* mm_module_close(mm_context_t *ctx);
|
||||
|
||||
#endif
|
||||
61
sdk/component/common/media/mmfv2/mmf2_simo.h
Normal file
61
sdk/component/common/media/mmfv2/mmf2_simo.h
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
#ifndef MMF2_SIMO_H
|
||||
#define MMF2_SIMO_H
|
||||
#include <stdint.h>
|
||||
#include <FreeRTOS.h>
|
||||
#include <task.h>
|
||||
#include <semphr.h>
|
||||
#include "dlist.h"
|
||||
#include "mmf2_module.h"
|
||||
|
||||
|
||||
typedef struct mm_simo_item_s
|
||||
{
|
||||
// list node
|
||||
struct list_head node;
|
||||
|
||||
// data
|
||||
uint32_t data;
|
||||
|
||||
// ref count
|
||||
uint32_t ref_cnt;
|
||||
|
||||
// log
|
||||
uint32_t use_log;
|
||||
}mm_simo_item_t;
|
||||
|
||||
typedef struct mm_simo_queue_s{
|
||||
// list entry
|
||||
struct list_head head;
|
||||
|
||||
// item counter
|
||||
int count;
|
||||
|
||||
// protection
|
||||
SemaphoreHandle_t lock;
|
||||
}mm_simo_queue_t;
|
||||
|
||||
typedef struct mm_simo_s{
|
||||
mm_context_t *input;
|
||||
|
||||
int output_cnt;
|
||||
mm_context_t *output[4];
|
||||
|
||||
// internal queue to handle reference count and usage log
|
||||
mm_simo_queue_t queue;
|
||||
|
||||
uint32_t pause_mask;
|
||||
uint32_t status[4];
|
||||
uint32_t stack_size;
|
||||
uint32_t task_priority;
|
||||
xTaskHandle task[4];
|
||||
}mm_simo_t;
|
||||
|
||||
extern int simo_start(mm_simo_t* simo);
|
||||
extern void simo_stop(mm_simo_t* simo);
|
||||
extern void simo_pause(mm_simo_t* simo, uint32_t pause_mask);
|
||||
extern void simo_resume(mm_simo_t* simo);
|
||||
extern void simo_ctrl(mm_simo_t* simo, uint32_t cmd, uint32_t arg1, uint32_t arg2);
|
||||
extern mm_simo_t* simo_create(void);
|
||||
extern mm_simo_t* simo_delete(mm_simo_t* simo);
|
||||
|
||||
#endif
|
||||
30
sdk/component/common/media/mmfv2/mmf2_siso.h
Normal file
30
sdk/component/common/media/mmfv2/mmf2_siso.h
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
#ifndef MMF2_SISO_H
|
||||
#define MMF2_SISO_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <FreeRTOS.h>
|
||||
#include <task.h>
|
||||
#include "mmf2_module.h"
|
||||
|
||||
|
||||
typedef struct mm_siso_s{
|
||||
mm_context_t *input;
|
||||
mm_context_t *output;
|
||||
int input_port_idx; // default is 0, can be set to 1 or 2 or 3 if source module support 2 or more output queue
|
||||
|
||||
uint32_t status;
|
||||
|
||||
uint32_t stack_size;
|
||||
uint32_t task_priority;
|
||||
xTaskHandle task;
|
||||
}mm_siso_t;
|
||||
|
||||
extern int siso_start(mm_siso_t* siso);
|
||||
extern void siso_stop(mm_siso_t* siso);
|
||||
extern void siso_pause(mm_siso_t* siso);
|
||||
extern void siso_resume(mm_siso_t* siso);
|
||||
extern void siso_ctrl(mm_siso_t* siso, uint32_t cmd, uint32_t arg1, uint32_t arg2);
|
||||
extern mm_siso_t* siso_create(void);
|
||||
extern mm_siso_t* siso_delete(mm_siso_t* siso);
|
||||
|
||||
#endif
|
||||
50
sdk/component/common/media/mmfv2/module_aac.h
Normal file
50
sdk/component/common/media/mmfv2/module_aac.h
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#ifndef _MODULE_AAC_H
|
||||
#define _MODULE_AAC_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "mmf2_module.h"
|
||||
|
||||
#include "faac.h"
|
||||
|
||||
#define CMD_AAC_SET_PARAMS MM_MODULE_CMD(0x00) // set parameter
|
||||
#define CMD_AAC_GET_PARAMS MM_MODULE_CMD(0x01) // get parameter
|
||||
#define CMD_AAC_SAMPLERATE MM_MODULE_CMD(0x02)
|
||||
#define CMD_AAC_CHANNEL MM_MODULE_CMD(0x03)
|
||||
#define CMD_AAC_BITLENGTH MM_MODULE_CMD(0x04)
|
||||
#define CMD_AAC_MEMORY_SIZE MM_MODULE_CMD(0x07)
|
||||
#define CMD_AAC_BLOCK_SIZE MM_MODULE_CMD(0x08)
|
||||
#define CMD_AAC_MAX_FRAME_SIZE MM_MODULE_CMD(0x09)
|
||||
#define CMD_AAC_INIT_MEM_POOL MM_MODULE_CMD(0x0a)
|
||||
|
||||
#define CMD_AAC_APPLY MM_MODULE_CMD(0x20) // for hardware module
|
||||
|
||||
typedef struct aac_param_s{
|
||||
uint32_t sample_rate; // 8000
|
||||
uint32_t channel; // 1
|
||||
uint32_t bit_length; // 16
|
||||
uint32_t mpeg_version; // 16
|
||||
|
||||
uint32_t mem_total_size;
|
||||
uint32_t mem_block_size;
|
||||
uint32_t mem_frame_size;
|
||||
|
||||
int samples_input;
|
||||
int max_bytes_output;
|
||||
//...
|
||||
}aac_params_t;
|
||||
|
||||
typedef struct aac_ctx_s{
|
||||
void* parent;
|
||||
|
||||
faacEncHandle faac_enc;
|
||||
|
||||
void* mem_pool;
|
||||
aac_params_t params;
|
||||
|
||||
uint8_t *cache;
|
||||
uint32_t cache_idx;
|
||||
}aac_ctx_t;
|
||||
|
||||
extern mm_module_t aac_module;
|
||||
|
||||
#endif
|
||||
46
sdk/component/common/media/mmfv2/module_aad.h
Normal file
46
sdk/component/common/media/mmfv2/module_aad.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#ifndef _MODULE_AAD_H
|
||||
#define _MODULE_AAD_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "aacdec.h"
|
||||
|
||||
#define CMD_AAD_SET_PARAMS MM_MODULE_CMD(0x00) // set parameter
|
||||
#define CMD_AAD_GET_PARAMS MM_MODULE_CMD(0x01) // get parameter
|
||||
#define CMD_AAD_SAMPLERATE MM_MODULE_CMD(0x02)
|
||||
#define CMD_AAD_CHANNEL MM_MODULE_CMD(0x03)
|
||||
#define CMD_AAD_STREAM_TYPE MM_MODULE_CMD(0x04)
|
||||
|
||||
|
||||
#define CMD_AAD_APPLY MM_MODULE_CMD(0x20) // for hardware module
|
||||
|
||||
#define TYPE_ADTS 0
|
||||
#define TYPE_RTP_RAW 1
|
||||
#define TYPE_TS 2
|
||||
|
||||
typedef struct aad_param_s{
|
||||
uint32_t type;
|
||||
uint32_t sample_rate; // 8000
|
||||
uint32_t channel; // 1
|
||||
}aad_params_t;
|
||||
|
||||
typedef void (*aad_parser_t)(void*, void*, int);
|
||||
|
||||
typedef struct aad_ctx_s{
|
||||
void* parent;
|
||||
|
||||
HAACDecoder aad;
|
||||
|
||||
aad_params_t params;
|
||||
|
||||
uint16_t data_cache_len;
|
||||
uint16_t data_cache_size;
|
||||
uint8_t *data_cache;
|
||||
uint8_t *decode_buf;
|
||||
|
||||
aad_parser_t parser;
|
||||
}aad_ctx_t;
|
||||
|
||||
extern mm_module_t aad_module;
|
||||
|
||||
#endif
|
||||
64
sdk/component/common/media/mmfv2/module_array.h
Normal file
64
sdk/component/common/media/mmfv2/module_array.h
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
#ifndef _MODULE_ARRAY_H
|
||||
#define _MODULE_ARRAY_H
|
||||
|
||||
#include <FreeRTOS.h>
|
||||
#include <Freertos_service.h>
|
||||
#include <task.h>
|
||||
#include <stdint.h>
|
||||
#include "timer_api.h"
|
||||
|
||||
#define DEFAULT_G711_LEN 160
|
||||
#define DEFAULT_AAC_LEN 2048
|
||||
|
||||
#define ARRAY_MODE_ONCE 0
|
||||
#define ARRAY_MODE_LOOP 1
|
||||
|
||||
#define CMD_ARRAY_SET_PARAMS MM_MODULE_CMD(0x00) // set parameter
|
||||
#define CMD_ARRAY_GET_PARAMS MM_MODULE_CMD(0x01) // get parameter
|
||||
#define CMD_ARRAY_SET_ARRAY MM_MODULE_CMD(0x02)
|
||||
#define CMD_ARRAY_SET_MODE MM_MODULE_CMD(0x03)
|
||||
#define CMD_ARRAY_GET_STATE MM_MODULE_CMD(0x04)
|
||||
#define CMD_ARRAY_STREAMING MM_MODULE_CMD(0x05)
|
||||
|
||||
|
||||
#define CMD_ARRAY_APPLY MM_MODULE_CMD(0x20) // for hardware module
|
||||
|
||||
typedef struct array_param_s{
|
||||
uint32_t type;
|
||||
uint32_t codec_id;
|
||||
uint8_t mode;
|
||||
union{
|
||||
struct array_video_param_s{
|
||||
uint32_t fps;
|
||||
uint8_t h264_nal_size;
|
||||
}v;
|
||||
struct array_audio_param_s{
|
||||
uint32_t channel;
|
||||
uint32_t samplerate;
|
||||
uint32_t sample_bit_length;
|
||||
uint32_t frame_size;
|
||||
}a;
|
||||
}u;
|
||||
}array_params_t;
|
||||
|
||||
typedef struct array_s{
|
||||
uint32_t data_addr;
|
||||
uint32_t data_len;
|
||||
uint32_t data_offset;
|
||||
}array_t;
|
||||
|
||||
typedef struct array_ctx_s{
|
||||
void* parent;
|
||||
TaskHandle_t task;
|
||||
_sema up_sema;
|
||||
gtimer_t frame_timer;
|
||||
uint32_t frame_timer_period; // us
|
||||
|
||||
array_params_t params;
|
||||
array_t array;
|
||||
// flag
|
||||
int stop;
|
||||
}array_ctx_t;
|
||||
|
||||
extern mm_module_t array_module;
|
||||
#endif
|
||||
66
sdk/component/common/media/mmfv2/module_audio.h
Normal file
66
sdk/component/common/media/mmfv2/module_audio.h
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
#ifndef _MODULE_AUDIO_H
|
||||
#define _MODULE_AUDIO_H
|
||||
|
||||
#include "mmf2_module.h"
|
||||
#if defined(CONFIG_PLATFORM_8721D) //amebad
|
||||
#include "ameba_soc.h"
|
||||
#include "rl6548.h"
|
||||
#else //amebapro use audio api
|
||||
#include "audio_api.h"
|
||||
#endif
|
||||
#define ENABLE_SPEEX_AEC 1
|
||||
|
||||
#define CMD_AUDIO_SET_PARAMS MM_MODULE_CMD(0x00) // set parameter
|
||||
#define CMD_AUDIO_GET_PARAMS MM_MODULE_CMD(0x01) // get parameter
|
||||
#define CMD_AUDIO_SET_SAMPLERATE MM_MODULE_CMD(0x02)
|
||||
#define CMD_AUDIO_SET_WORDLENGTH MM_MODULE_CMD(0x03)
|
||||
#define CMD_AUDIO_SET_MICGAIN MM_MODULE_CMD(0x04)
|
||||
#define CMD_AUDIO_SET_AES MM_MODULE_CMD(0x05)
|
||||
|
||||
#define CMD_AUDIO_APPLY MM_MODULE_CMD(0x20) // for hardware module
|
||||
|
||||
|
||||
#if defined(CONFIG_PLATFORM_8721D) //amebad
|
||||
typedef struct {
|
||||
GDMA_InitTypeDef SpTxGdmaInitStruct; //Pointer to GDMA_InitTypeDef
|
||||
GDMA_InitTypeDef SpRxGdmaInitStruct; //Pointer to GDMA_InitTypeDef
|
||||
}SP_GDMA_STRUCT, *pSP_GDMA_STRUCT;
|
||||
|
||||
typedef struct audio_param_s{
|
||||
uint32_t sample_rate;
|
||||
uint32_t word_length;
|
||||
uint32_t mono_stereo;
|
||||
uint32_t direction;
|
||||
uint32_t enable_aec; // 0
|
||||
uint32_t mix_mode; // 0
|
||||
}audio_params_t;
|
||||
#else //amebapro
|
||||
typedef struct audio_param_s{
|
||||
audio_sr sample_rate; // ASR_8KHZ
|
||||
audio_wl word_length; // WL_16BIT
|
||||
audio_mic_gain mic_gain; // MIC_40DB
|
||||
|
||||
int channel; // 1
|
||||
int enable_aec; // 0
|
||||
int mix_mode; // 0
|
||||
//...
|
||||
}audio_params_t;
|
||||
#endif
|
||||
|
||||
typedef struct audio_ctx_s{
|
||||
void* parent;
|
||||
#if !defined(CONFIG_PLATFORM_8721D) //amebapro
|
||||
audio_t* audio;
|
||||
#endif
|
||||
audio_params_t params;
|
||||
|
||||
uint32_t sample_rate;
|
||||
uint8_t word_length; // Byte
|
||||
// for AEC
|
||||
TaskHandle_t aec_rx_task;
|
||||
xSemaphoreHandle aec_rx_done_sema;
|
||||
}audio_ctx_t;
|
||||
|
||||
|
||||
extern mm_module_t audio_module;
|
||||
#endif
|
||||
32
sdk/component/common/media/mmfv2/module_g711.h
Normal file
32
sdk/component/common/media/mmfv2/module_g711.h
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#ifndef _MODULE_G711_H
|
||||
#define _MODULE_G711_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define CMD_G711_SET_PARAMS MM_MODULE_CMD(0x00) // set parameter
|
||||
#define CMD_G711_GET_PARAMS MM_MODULE_CMD(0x01) // get parameter
|
||||
#define CMD_G711_CODECID MM_MODULE_CMD(0x02)
|
||||
#define CMD_G711_LENGTH MM_MODULE_CMD(0x03)
|
||||
#define CMD_G711_CODECMODE MM_MODULE_CMD(0x04)
|
||||
|
||||
|
||||
#define CMD_G711_APPLY MM_MODULE_CMD(0x20) // for hardware module
|
||||
|
||||
#define G711_ENCODE 0
|
||||
#define G711_DECODE 1
|
||||
|
||||
typedef struct g711_param_s{
|
||||
uint32_t codec_id; // AV_CODEC_ID_PCMA or AV_CODEC_ID_PCMU
|
||||
uint32_t buf_len; // output buffer length
|
||||
uint32_t mode; // decode or encode
|
||||
}g711_params_t;
|
||||
|
||||
typedef struct g711_ctx_s{
|
||||
void* parent;
|
||||
|
||||
g711_params_t params;
|
||||
}g711_ctx_t;
|
||||
|
||||
extern mm_module_t g711_module;
|
||||
|
||||
#endif
|
||||
76
sdk/component/common/media/mmfv2/module_h264.h
Normal file
76
sdk/component/common/media/mmfv2/module_h264.h
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
#ifndef _MODULE_H264_H
|
||||
#define _MODULE_H264_H
|
||||
|
||||
#include "h264_encoder.h"
|
||||
#include "mmf2_module.h"
|
||||
|
||||
#define CMD_H264_SET_PARAMS MM_MODULE_CMD(0x00)
|
||||
#define CMD_H264_GET_PARAMS MM_MODULE_CMD(0x01)
|
||||
#define CMD_H264_SET_HEIGHT MM_MODULE_CMD(0x02)
|
||||
#define CMD_H264_SET_WIDTH MM_MODULE_CMD(0x03)
|
||||
#define CMD_H264_BITRATE MM_MODULE_CMD(0x04)
|
||||
#define CMD_H264_FPS MM_MODULE_CMD(0x05)
|
||||
#define CMD_H264_GOP MM_MODULE_CMD(0x06)
|
||||
#define CMD_H264_MEMORY_SIZE MM_MODULE_CMD(0x07)
|
||||
#define CMD_H264_BLOCK_SIZE MM_MODULE_CMD(0x08)
|
||||
#define CMD_H264_MAX_FRAME_SIZE MM_MODULE_CMD(0x09)
|
||||
#define CMD_H264_RCMODE MM_MODULE_CMD(0x0a)
|
||||
#define CMD_H264_SET_RCPARAM MM_MODULE_CMD(0x0b)
|
||||
#define CMD_H264_GET_RCPARAM MM_MODULE_CMD(0x0c)
|
||||
#define CMD_H264_INIT_MEM_POOL MM_MODULE_CMD(0x0d)
|
||||
#define CMD_H264_FORCE_IFRAME MM_MODULE_CMD(0x0e)
|
||||
#define CMD_H264_SET_RCADVPARAM MM_MODULE_CMD(0x10)
|
||||
#define CMD_H264_GET_RCADVPARAM MM_MODULE_CMD(0x11)
|
||||
|
||||
#define CMD_SNAPSHOT_ENCODE_CB MM_MODULE_CMD(0x30)
|
||||
|
||||
#define CMD_H264_APPLY MM_MODULE_CMD(0x20)
|
||||
#define CMD_H264_UPDATE MM_MODULE_CMD(0x21)
|
||||
#define CMD_H264_PAUSE MM_MODULE_CMD(0x22)
|
||||
|
||||
typedef struct h264_ctx_s{
|
||||
void* parent;
|
||||
|
||||
struct h264_context* h264_cont;
|
||||
|
||||
void* mem_pool;
|
||||
}h264_ctx_t;
|
||||
|
||||
typedef struct h264_params_s{
|
||||
uint32_t width;
|
||||
uint32_t height;
|
||||
uint32_t bps;
|
||||
uint32_t fps;
|
||||
uint32_t gop;
|
||||
uint32_t rc_mode;
|
||||
uint32_t vbr_mode; // mode 0: fixed min/max QP (try to keep quality), mode 1: flexible min/max QP (try to fit requried bitrate)
|
||||
uint32_t mem_total_size;
|
||||
uint32_t mem_block_size;
|
||||
uint32_t mem_frame_size;
|
||||
}h264_params_t;
|
||||
|
||||
typedef struct h264_rc_parm_s
|
||||
{
|
||||
unsigned int rcMode;
|
||||
unsigned int iQp; // for fixed QP
|
||||
unsigned int pQp; // for fixed QP
|
||||
unsigned int minQp; // for CBR/VBR
|
||||
unsigned int minIQp; // for CBR/VBR
|
||||
unsigned int maxQp; // for CBR/VBR
|
||||
}h264_rc_parm_t;
|
||||
|
||||
typedef struct h264_rc_adv_parm_s
|
||||
{
|
||||
unsigned int rc_adv_enable;
|
||||
unsigned int maxBps; // for VBR
|
||||
unsigned int minBps; // for VBR
|
||||
|
||||
int intraQpDelta;
|
||||
int mbQpAdjustment;
|
||||
unsigned int mbQpAutoBoost;
|
||||
}h264_rc_adv_parm_t;
|
||||
|
||||
extern mm_module_t h264_module;
|
||||
|
||||
|
||||
#endif
|
||||
32
sdk/component/common/media/mmfv2/module_httpfs.h
Normal file
32
sdk/component/common/media/mmfv2/module_httpfs.h
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#ifndef _MODULE_HTTPFS_H
|
||||
#define _MODULE_HTTPFS_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <osdep_service.h>
|
||||
#include "fatfs_sdcard_api.h"
|
||||
|
||||
#define CMD_HTTPFS_SET_PARAMS MM_MODULE_CMD(0x00) // set parameter
|
||||
#define CMD_HTTPFS_GET_PARAMS MM_MODULE_CMD(0x01) // get parameter
|
||||
#define CMD_HTTPFS_APPLY MM_MODULE_CMD(0x20) // for hardware module
|
||||
#define CMD_HTTPFS_STREAM_STOP MM_MODULE_CMD(0x23) // stop stream
|
||||
#define CMD_HTTPFS_SET_RESPONSE_CB MM_MODULE_CMD(0x14)
|
||||
|
||||
typedef struct httpfs_param_s{
|
||||
char fileext[4];
|
||||
char filedir[32];
|
||||
char request_string[128];
|
||||
uint32_t fatfs_buf_size;
|
||||
}httpfs_params_t;
|
||||
|
||||
typedef struct httpfs_ctx_s{
|
||||
void* parent;
|
||||
TaskHandle_t task;
|
||||
_sema up_sema;
|
||||
|
||||
httpfs_params_t params;
|
||||
fatfs_sd_params_t fatfs_params;
|
||||
int (*cb_response)(void);
|
||||
}httpfs_ctx_t;
|
||||
|
||||
extern mm_module_t httpfs_module;
|
||||
#endif
|
||||
46
sdk/component/common/media/mmfv2/module_i2s.h
Normal file
46
sdk/component/common/media/mmfv2/module_i2s.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#ifndef _MODULE_I2S_H
|
||||
#define _MODULE_I2S_H
|
||||
|
||||
#include "mmf2_module.h"
|
||||
#include "audio_api.h"
|
||||
#include "i2s_api.h"
|
||||
|
||||
#define ENABLE_SPEEX_AEC 1
|
||||
|
||||
#define CMD_I2S_SET_PARAMS MM_MODULE_CMD(0x00) // set parameter
|
||||
#define CMD_I2S_GET_PARAMS MM_MODULE_CMD(0x01) // get parameter
|
||||
#define CMD_I2S_SET_SAMPLERATE MM_MODULE_CMD(0x02)
|
||||
#define CMD_I2S_SET_WORDLENGTH MM_MODULE_CMD(0x03)
|
||||
#define CMD_I2S_SET_MICGAIN MM_MODULE_CMD(0x04)
|
||||
#define CMD_I2S_SET_AES MM_MODULE_CMD(0x05)
|
||||
#define CMD_I2S_APPLY MM_MODULE_CMD(0x20) // for hardware module
|
||||
|
||||
typedef struct i2s_param_s{
|
||||
uint32_t sample_rate; // SR_32KHZ
|
||||
uint32_t out_sample_rate; // SR_8KHZ
|
||||
uint32_t word_length; // WL_24b
|
||||
uint32_t out_word_length; // WL_16b
|
||||
audio_mic_gain mic_gain; // MIC_40DB
|
||||
int channel; // 1
|
||||
int out_channel;
|
||||
int enable_aec; // 0
|
||||
int mix_mode; // 0
|
||||
//...
|
||||
}i2s_params_t;
|
||||
|
||||
typedef struct i2s_ctx_s{
|
||||
void* parent;
|
||||
i2s_t* i2s_obj;
|
||||
i2s_params_t params;
|
||||
uint32_t sample_rate;
|
||||
uint8_t word_length; // Byte
|
||||
int sr_shrink;
|
||||
int wl_shrink;
|
||||
int ch_shrink;
|
||||
// for AEC
|
||||
TaskHandle_t aec_rx_task;
|
||||
xSemaphoreHandle aec_rx_done_sema;
|
||||
}i2s_ctx_t;
|
||||
|
||||
extern mm_module_t i2s_module;
|
||||
#endif
|
||||
71
sdk/component/common/media/mmfv2/module_isp.h
Normal file
71
sdk/component/common/media/mmfv2/module_isp.h
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
#ifndef _MODULE_ISP_H
|
||||
#define _MODULE_ISP_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <osdep_service.h>
|
||||
#include "mmf2_module.h"
|
||||
|
||||
#include "isp_api.h"
|
||||
#include "sensor.h"
|
||||
|
||||
#define CMD_ISP_SET_PARAMS MM_MODULE_CMD(0x00) // set parameter
|
||||
#define CMD_ISP_GET_PARAMS MM_MODULE_CMD(0x01) // get parameter
|
||||
#define CMD_ISP_STREAMID MM_MODULE_CMD(0x02)
|
||||
#define CMD_ISP_HW_SLOT MM_MODULE_CMD(0x03)
|
||||
#define CMD_ISP_SW_SLOT MM_MODULE_CMD(0x04)
|
||||
#define CMD_ISP_FPS MM_MODULE_CMD(0x05)
|
||||
#define CMD_ISP_HEIGHT MM_MODULE_CMD(0x06)
|
||||
#define CMD_ISP_WIDTH MM_MODULE_CMD(0x07)
|
||||
#define CMD_ISP_FORMAT MM_MODULE_CMD(0x08)
|
||||
#define CMD_ISP_DUMP_STATE MM_MODULE_CMD(0x09)
|
||||
#define CMD_ISP_SET_SELF_BUF MM_MODULE_CMD(0x0A)
|
||||
#define CMD_ISP_SET_BOOT_MODE MM_MODULE_CMD(0x0B)
|
||||
|
||||
#define CMD_ISP_APPLY MM_MODULE_CMD(0x20) // apply setting
|
||||
#define CMD_ISP_UPDATE MM_MODULE_CMD(0x21) // update new setting
|
||||
#define CMD_ISP_STREAM_START MM_MODULE_CMD(0x22) // start stream
|
||||
#define CMD_ISP_STREAM_STOP MM_MODULE_CMD(0x23) // stop stream
|
||||
|
||||
|
||||
typedef struct isp_state_s{
|
||||
uint32_t timer_1;
|
||||
uint32_t timer_2;
|
||||
uint32_t drop_frame;
|
||||
uint32_t isp_frame;
|
||||
uint32_t drop_frame_total;
|
||||
uint32_t isp_frame_total;
|
||||
}isp_state_t;
|
||||
|
||||
#define MAX_ISP_SELF_BUFF 4
|
||||
|
||||
typedef struct isp_param_s{
|
||||
uint32_t width;
|
||||
uint32_t height;
|
||||
uint32_t fps;
|
||||
uint32_t slot_num;
|
||||
uint32_t buff_num;
|
||||
uint32_t stream_id;
|
||||
uint32_t format;
|
||||
uint32_t self_buf_count;//Use self buffer
|
||||
uint32_t self_buf_addr[MAX_ISP_SELF_BUFF];
|
||||
uint32_t boot_mode;
|
||||
uint32_t bayer_type;
|
||||
//...
|
||||
}isp_params_t;
|
||||
|
||||
typedef struct isp_ctx_s{
|
||||
void* parent;
|
||||
|
||||
isp_stream_t* stream;
|
||||
|
||||
isp_params_t params;
|
||||
isp_state_t state;
|
||||
|
||||
mm_queue_item_t* hw_slot_item[4];
|
||||
|
||||
uint32_t buf_width, buf_height;
|
||||
}isp_ctx_t;
|
||||
|
||||
extern mm_module_t isp_module;
|
||||
|
||||
#endif
|
||||
47
sdk/component/common/media/mmfv2/module_jpeg.h
Normal file
47
sdk/component/common/media/mmfv2/module_jpeg.h
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#ifndef _MODULE_JPEG_H
|
||||
#define _MODULE_JPEG_H
|
||||
|
||||
#include "jpeg_encoder.h"
|
||||
#include "mmf2_module.h"
|
||||
|
||||
#define CMD_JPEG_SET_PARAMS MM_MODULE_CMD(0x00)
|
||||
#define CMD_JPEG_GET_PARAMS MM_MODULE_CMD(0x01)
|
||||
#define CMD_JPEG_SET_HEIGHT MM_MODULE_CMD(0x02)
|
||||
#define CMD_JPEG_SET_WIDTH MM_MODULE_CMD(0x03)
|
||||
#define CMD_JPEG_LEVEL MM_MODULE_CMD(0x04)
|
||||
#define CMD_JPEG_FPS MM_MODULE_CMD(0x05)
|
||||
#define CMD_JPEG_HEADER_TYPE MM_MODULE_CMD(0x06)
|
||||
#define CMD_JPEG_MEMORY_SIZE MM_MODULE_CMD(0x07)
|
||||
#define CMD_JPEG_BLOCK_SIZE MM_MODULE_CMD(0x08)
|
||||
#define CMD_JPEG_MAX_FRAME_SIZE MM_MODULE_CMD(0x09)
|
||||
#define CMD_JPEG_INIT_MEM_POOL MM_MODULE_CMD(0x0a)
|
||||
#define CMD_JPEG_GET_ENCODER MM_MODULE_CMD(0x0b)
|
||||
|
||||
#define CMD_SNAPSHOT_CB MM_MODULE_CMD(0x10)
|
||||
#define CMD_JPEG_CHANGE_PARM_CB MM_MODULE_CMD(0x11)
|
||||
#define CMD_JPEG_UPDATE MM_MODULE_CMD(0x12)
|
||||
|
||||
#define CMD_JPEG_APPLY MM_MODULE_CMD(0x20)
|
||||
|
||||
typedef struct jpeg_ctx_s{
|
||||
void* parent;
|
||||
|
||||
struct jpeg_context* jpeg_cont;
|
||||
|
||||
void* mem_pool;
|
||||
}jpeg_ctx_t;
|
||||
|
||||
typedef struct jpeg_params_s{
|
||||
uint32_t width;
|
||||
uint32_t height;
|
||||
uint32_t level;
|
||||
uint32_t fps;
|
||||
uint32_t mem_total_size;
|
||||
uint32_t mem_block_size;
|
||||
uint32_t mem_frame_size;
|
||||
}jpeg_params_t;
|
||||
|
||||
extern mm_module_t jpeg_module;
|
||||
|
||||
|
||||
#endif //_MODULE_JPEG_H
|
||||
61
sdk/component/common/media/mmfv2/module_mp4.h
Normal file
61
sdk/component/common/media/mmfv2/module_mp4.h
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
#ifndef _MODULE_MP4_H
|
||||
#define _MODULE_MP4_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "mmf2_module.h"
|
||||
|
||||
#include "fatfs_sdcard_api.h"
|
||||
#include "mp4_muxer.h"
|
||||
|
||||
#define CMD_MP4_SET_PARAMS MM_MODULE_CMD(0x00)
|
||||
#define CMD_MP4_GET_PARAMS MM_MODULE_CMD(0x01)
|
||||
#define CMD_MP4_SET_HEIGHT MM_MODULE_CMD(0x02)
|
||||
#define CMD_MP4_SET_WIDTH MM_MODULE_CMD(0x03)
|
||||
#define CMD_MP4_SET_FPS MM_MODULE_CMD(0x04)
|
||||
#define CMD_MP4_SET_GOP MM_MODULE_CMD(0x05)
|
||||
#define CMD_MP4_SET_SAMPLERATE MM_MODULE_CMD(0x06)
|
||||
#define CMD_MP4_SET_CHANNEL MM_MODULE_CMD(0x07)
|
||||
#define CMD_MP4_SET_RECORD_LENGTH MM_MODULE_CMD(0x08)
|
||||
#define CMD_MP4_GET_RECORD_LENGTH MM_MODULE_CMD(0x09)
|
||||
#define CMD_MP4_SET_RECORD_TYPE MM_MODULE_CMD(0x0a)
|
||||
#define CMD_MP4_GET_RECORD_TYPE MM_MODULE_CMD(0x0b)
|
||||
#define CMD_MP4_SET_RECORD_FILE_NAME MM_MODULE_CMD(0x0c)
|
||||
#define CMD_MP4_GET_RECORD_FILE_NAME MM_MODULE_CMD(0x0d)
|
||||
#define CMD_MP4_SET_FATFS_BUF_SIZE MM_MODULE_CMD(0x0e)
|
||||
#define CMD_MP4_GET_FATFS_PARAMS MM_MODULE_CMD(0x0f)
|
||||
#define CMD_MP4_START MM_MODULE_CMD(0x10)
|
||||
#define CMD_MP4_STOP MM_MODULE_CMD(0x11)
|
||||
#define CMD_MP4_GET_STATUS MM_MODULE_CMD(0x12)
|
||||
#define CMD_MP4_RESET_FILE_INDEX MM_MODULE_CMD(0x13)
|
||||
#define CMD_MP4_SET_STOP_CB MM_MODULE_CMD(0x14) //Every record loop will enter the callback
|
||||
#define CMD_MP4_SET_END_CB MM_MODULE_CMD(0x15) //Only final loop will ebter the callback
|
||||
#define CMD_MP4_LOOP_MODE MM_MODULE_CMD(0x16)
|
||||
|
||||
typedef struct mp4_param_s{
|
||||
uint32_t width;
|
||||
uint32_t height;
|
||||
uint32_t fps;
|
||||
uint32_t gop;
|
||||
|
||||
uint32_t sample_rate;
|
||||
uint32_t channel;
|
||||
|
||||
uint32_t record_length;
|
||||
uint32_t record_type;
|
||||
uint32_t record_file_num;
|
||||
char record_file_name[32];
|
||||
uint32_t fatfs_buf_size;
|
||||
}mp4_params_t;
|
||||
|
||||
typedef struct mp4_ctx_s{
|
||||
void* parent;
|
||||
|
||||
pmp4_context mp4_muxer;
|
||||
|
||||
mp4_params_t params;
|
||||
fatfs_sd_params_t fatfs_params;
|
||||
}mp4_ctx_t;
|
||||
|
||||
extern mm_module_t mp4_module;
|
||||
|
||||
#endif
|
||||
49
sdk/component/common/media/mmfv2/module_rtp.h
Normal file
49
sdk/component/common/media/mmfv2/module_rtp.h
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
#ifndef _MODULE_RTP_H
|
||||
#define _MODULE_RTP_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "rtsp/rtp_api.h"
|
||||
|
||||
#define AUDIO_BUF_SIZE (1500) //160 BYTE DATA + 12 BYTE RTP HEADER
|
||||
#define DEFAULT_RTP_PORT 16384
|
||||
|
||||
#define MAX_SELECT_SOCKET 8
|
||||
|
||||
|
||||
#define CMD_RTP_SET_PARAMS MM_MODULE_CMD(0x00) // set parameter
|
||||
#define CMD_RTP_GET_PARAMS MM_MODULE_CMD(0x01) // get parameter
|
||||
#define CMD_RTP_STREAMING MM_MODULE_CMD(0x02)
|
||||
|
||||
#define CMD_RTP_APPLY MM_MODULE_CMD(0x20) // for hardware module
|
||||
|
||||
//static long listen_time_s = 0;
|
||||
//static long listen_time_us = 20000; //20ms
|
||||
#define LISTEN_TIME_S 0
|
||||
#define LISTEN_TIME_US 500
|
||||
|
||||
typedef struct rtp_param_s{
|
||||
uint32_t valid_pt; // set 0xFFFFFFFF ==> allow RTP_PT_PCMU/RTP_PT_PCMA/RTP_PT_DYN_BASE (type is an unsigned 8 bit value)
|
||||
uint32_t port;
|
||||
uint32_t frame_size;
|
||||
uint32_t cache_depth;
|
||||
}rtp_params_t;
|
||||
|
||||
typedef struct rtp_ctx_s{
|
||||
void* parent;
|
||||
struct connect_context connect_ctx;
|
||||
TaskHandle_t task;
|
||||
_sema up_sema;
|
||||
|
||||
rtp_params_t params;
|
||||
// flag
|
||||
int rtp_shutdown;
|
||||
int socket_closed;
|
||||
|
||||
// cache handler
|
||||
xQueueHandle cache_ready;
|
||||
xQueueHandle cache_recycle;
|
||||
TaskHandle_t cache_handler;
|
||||
}rtp_ctx_t;
|
||||
|
||||
extern mm_module_t rtp_module;
|
||||
#endif
|
||||
77
sdk/component/common/media/mmfv2/module_rtsp2.h
Normal file
77
sdk/component/common/media/mmfv2/module_rtsp2.h
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
#ifndef _MODULE_RTSP2_H
|
||||
#define _MODULE_RTSP2_H
|
||||
|
||||
#include "rtsp/rtsp_api.h"
|
||||
#include "mmf2_module.h"
|
||||
|
||||
#define TIME_SYNC_UNDEF 0
|
||||
#define TIME_SYNC_EN 1
|
||||
#define TIME_SYNC_DIS 2
|
||||
|
||||
|
||||
#define RTSP2_NON_BLOCK_TYPE 0
|
||||
#define RTSP2_BLOCK_TYPE 1
|
||||
|
||||
#define STREAM_FLOW_ID_BASE 0
|
||||
|
||||
#define CMD_RTSP2_SET_PARAMS MM_MODULE_CMD(0x00)
|
||||
#define CMD_RTSP2_GET_PARAMS MM_MODULE_CMD(0x01)
|
||||
#define CMD_RTSP2_SET_STREAMMING MM_MODULE_CMD(0x02)
|
||||
#define CMD_RTSP2_SELECT_STREAM MM_MODULE_CMD(0x03)
|
||||
#define CMD_RTSP2_SET_FRAMERATE MM_MODULE_CMD(0x04)
|
||||
#define CMD_RTSP2_SET_BITRATE MM_MODULE_CMD(0x05)
|
||||
#define CMD_RTSP2_SET_SAMPLERATE MM_MODULE_CMD(0x06)
|
||||
#define CMD_RTSP2_SET_CHANNEL MM_MODULE_CMD(0x07)
|
||||
#define CMD_RTSP2_SET_SPS MM_MODULE_CMD(0x08)
|
||||
#define CMD_RTSP2_SET_PPS MM_MODULE_CMD(0x09)
|
||||
#define CMD_RTSP2_SET_LEVEL MM_MODULE_CMD(0x0a)
|
||||
#define CMD_RTSP2_SET_CODEC MM_MODULE_CMD(0x0b)
|
||||
#define CMD_RTSP2_SET_FLAG MM_MODULE_CMD(0x0c)
|
||||
#define CMD_RTSP2_SET_APPLY MM_MODULE_CMD(0x0d)
|
||||
#define CMD_RTSP2_USE_RTP_TICK_INC MM_MODULE_CMD(0x0e)
|
||||
#define CMD_RTSP2_SET_PORT MM_MODULE_CMD(0x0f)
|
||||
|
||||
|
||||
#define CMD_RTSP2_SET_START_CB MM_MODULE_CMD(0x10)
|
||||
#define CMD_RTSP2_SET_STOP_CB MM_MODULE_CMD(0x11)
|
||||
#define CMD_RTSP2_SET_PAUSE_CB MM_MODULE_CMD(0x12)
|
||||
#define CMD_RTSP2_SET_CUSTOM_CB MM_MODULE_CMD(0x13)
|
||||
|
||||
#define CMD_RTSP2_SET_DROP_TIME MM_MODULE_CMD(0x14)
|
||||
#define CMD_RTSP2_SET_BLOCK_TYPE MM_MODULE_CMD(0x15)
|
||||
#define CMD_RTSP2_SET_SYNC_MODE MM_MODULE_CMD(0x16)
|
||||
|
||||
typedef struct rtsp2_params_s{
|
||||
uint32_t type;
|
||||
union{
|
||||
struct rtsp_video_param_s{
|
||||
uint32_t codec_id;
|
||||
uint32_t fps;
|
||||
uint32_t bps;
|
||||
uint32_t ts_flag;
|
||||
char* sps;
|
||||
char* pps;
|
||||
char* lv;
|
||||
}v;
|
||||
struct rtsp_audio_param_s{
|
||||
uint32_t codec_id;
|
||||
uint32_t channel;
|
||||
uint32_t samplerate;
|
||||
}a;
|
||||
}u;
|
||||
}rtsp2_params_t;
|
||||
|
||||
typedef struct rtsp2_ctx_s{
|
||||
void* parent;
|
||||
|
||||
struct rtsp_context *rtsp;
|
||||
|
||||
rtsp2_params_t params[2];
|
||||
uint32_t block_type;
|
||||
}rtsp2_ctx_t;
|
||||
|
||||
|
||||
|
||||
extern mm_module_t rtsp2_module;
|
||||
|
||||
#endif
|
||||
68
sdk/component/common/media/mmfv2/module_ua2.h
Normal file
68
sdk/component/common/media/mmfv2/module_ua2.h
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
#ifndef _MODULE_UA2_H
|
||||
#define _MODULE_UA2_H
|
||||
|
||||
|
||||
#include "sip/re/inc/re.h"
|
||||
#include "sip/re/inc/baresip.h"
|
||||
#include "sip/ua_api.h"
|
||||
#include "mmf2_module.h"
|
||||
|
||||
#define TIME_SYNC_UNDEF 0
|
||||
#define TIME_SYNC_EN 1
|
||||
#define TIME_SYNC_DIS 2
|
||||
|
||||
#define STREAM_FLOW_ID_BASE 0
|
||||
|
||||
#define CMD_UA2_SET_PARAMS MM_MODULE_CMD(0x00)
|
||||
#define CMD_UA2_GET_PARAMS MM_MODULE_CMD(0x01)
|
||||
#define CMD_UA2_SET_STREAMMING MM_MODULE_CMD(0x02)
|
||||
#define CMD_UA2_SELECT_STREAM MM_MODULE_CMD(0x03)
|
||||
#define CMD_UA2_SET_FRAMERATE MM_MODULE_CMD(0x04)
|
||||
#define CMD_UA2_SET_BITRATE MM_MODULE_CMD(0x05)
|
||||
#define CMD_UA2_SET_SAMPLERATE MM_MODULE_CMD(0x06)
|
||||
#define CMD_UA2_SET_CHANNEL MM_MODULE_CMD(0x07)
|
||||
#define CMD_UA2_SET_SPS MM_MODULE_CMD(0x08)
|
||||
#define CMD_UA2_SET_PPS MM_MODULE_CMD(0x09)
|
||||
#define CMD_UA2_SET_LEVEL MM_MODULE_CMD(0x0a)
|
||||
#define CMD_UA2_SET_CODEC MM_MODULE_CMD(0x0b)
|
||||
#define CMD_UA2_SET_FLAG MM_MODULE_CMD(0x0c)
|
||||
#define CMD_UA2_SET_APPLY MM_MODULE_CMD(0x0d)
|
||||
#define CMD_UA2_USE_RTP_TICK_INC MM_MODULE_CMD(0x0e)
|
||||
|
||||
#define CMD_UA2_SET_REGISTER MM_MODULE_CMD(0x0f)
|
||||
#define CMD_UA2_SET_FROM_URI MM_MODULE_CMD(0x10)
|
||||
#define CMD_UA2_SET_TO_URI MM_MODULE_CMD(0x11)
|
||||
|
||||
typedef struct ua2_params_s{
|
||||
uint32_t type;
|
||||
union{
|
||||
struct ua_video_param_s{
|
||||
uint32_t codec_id;
|
||||
uint32_t fps;
|
||||
uint32_t bps;
|
||||
uint32_t ts_flag;
|
||||
char* sps;
|
||||
char* pps;
|
||||
char* lv;
|
||||
}v;
|
||||
struct ua_audio_param_s{
|
||||
uint32_t codec_id;
|
||||
uint32_t channel;
|
||||
uint32_t samplerate;
|
||||
}a;
|
||||
}u;
|
||||
}ua2_params_t;
|
||||
|
||||
typedef struct ua2_ctx_s{
|
||||
void* parent;
|
||||
|
||||
struct ua_context *ua;
|
||||
|
||||
ua2_params_t params[2];
|
||||
}ua2_ctx_t;
|
||||
|
||||
|
||||
|
||||
extern mm_module_t ua2_module;
|
||||
|
||||
#endif
|
||||
34
sdk/component/common/media/mmfv2/module_uvcd.h
Normal file
34
sdk/component/common/media/mmfv2/module_uvcd.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
#ifndef _MODULE_USBD_H
|
||||
#define _MODULE_USBD_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <osdep_service.h>
|
||||
#include "mmf2_module.h"
|
||||
|
||||
#define FORMAT_TYPE_YUY2 0
|
||||
#define FORMAT_TYPE_NV12 1
|
||||
#define FORMAT_TYPE_MJPEG 2
|
||||
#define FORMAT_TYPE_H264 3
|
||||
#define FORMAT_TYPE_BAYER 4
|
||||
|
||||
#define BAYER_TYPE_BEFORE_BLC 1
|
||||
#define BAYER_TYPE_AFTER_BLC 2
|
||||
#define BAYER_TYPE_AFTER_LSC 3
|
||||
#define BAYER_TYPE_AFTER_DNO 4
|
||||
|
||||
struct uvc_format{
|
||||
int width;
|
||||
int height;
|
||||
int format;
|
||||
int fps;
|
||||
int state;
|
||||
int isp_format;//1:YUV420 2:YUV422 3:Bayer
|
||||
int ldc;//0:Disable 1:Enable
|
||||
int bayer_type;
|
||||
_sema uvcd_change_sema;
|
||||
};
|
||||
|
||||
|
||||
extern mm_module_t uvcd_module;
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue