Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
102
sdk/app/scale_msi/scale_msi.h
Normal file
102
sdk/app/scale_msi/scale_msi.h
Normal file
@@ -0,0 +1,102 @@
|
||||
#ifndef __SCALE_MSI_H
|
||||
#define __SCALE_MSI_H
|
||||
|
||||
#include "stream_frame.h"
|
||||
#include "basic_include.h"
|
||||
|
||||
#include "lib/multimedia/msi.h"
|
||||
|
||||
#include "osal/work.h"
|
||||
#define MAX_SCALE3_TX 3
|
||||
|
||||
|
||||
struct scale_msg_t {
|
||||
uint16_t iw,ih;
|
||||
uint16_t ow,oh;
|
||||
uint16_t x,y;
|
||||
uint8_t video_only; //多屏显示层专用,用于只显示当前层画面
|
||||
};
|
||||
|
||||
struct scale2_msg_t {
|
||||
uint16_t stype;
|
||||
uint16_t iw,ih;
|
||||
uint16_t ow,oh;
|
||||
uint16_t x,y;
|
||||
uint8_t video_only; //多屏显示层专用,用于只显示当前层画面
|
||||
uint8_t larger;
|
||||
};
|
||||
|
||||
struct scale3_msi_s
|
||||
{
|
||||
struct os_work work;
|
||||
struct scale_device *scale_dev;
|
||||
struct msi *msi;
|
||||
uint16_t iw,ih,ow,oh;
|
||||
struct framebuff *now_fb;
|
||||
uint8_t *scaler3buf; //scale的buf
|
||||
struct os_msgqueue msgq;
|
||||
uint8_t del;
|
||||
uint8_t txpool_type;
|
||||
uint8_t init_txpool_num;
|
||||
struct fbpool tx_pool0;
|
||||
struct fbpool tx_pool1;
|
||||
struct fbpool tx_pool2;
|
||||
struct fbpool tx_poolerr; //用于抛开错误长度或者fb不存在时的抛帧
|
||||
};
|
||||
|
||||
struct const_scale3_msi_s
|
||||
{
|
||||
struct msi *msi;
|
||||
struct scale_device *scale_dev;
|
||||
uint8_t *buf;
|
||||
};
|
||||
#define MAX_SCALE2_TX 4
|
||||
struct scale2_msi_s
|
||||
{
|
||||
struct os_work work;
|
||||
struct scale_device *scale_dev;
|
||||
struct msi *msi;
|
||||
uint16_t iw,ih,ow,oh;
|
||||
|
||||
uint16_t stw,sth,x,y; //step w和h,显示的video层位置
|
||||
uint16_t sx,sy; //模块scaler的图像操作启始位置,
|
||||
struct framebuff *now_fb;
|
||||
struct framebuff *now_fb_msg[MAX_SCALE2_TX]; //预分配的槽位数组,用于存放now_fb的指针(放入msgq的是槽的地址),以便循环复用
|
||||
uint8_t now_fb_msg_idx;
|
||||
uint8_t *scaler2buf; //scale的buf
|
||||
struct os_msgqueue msgq;
|
||||
uint8_t larger;
|
||||
uint8_t del;
|
||||
uint8_t seq;
|
||||
uint16_t type;
|
||||
//RBUFFER_DEF(tx_data, struct framebuff *, MAX_SCALE3_TX);
|
||||
struct fbpool tx_pool;
|
||||
int mutex_count;
|
||||
uint32_t filter_type;
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct scale1_msi_s
|
||||
{
|
||||
struct os_work work;
|
||||
struct scale_device *scale_dev;
|
||||
struct dma_device *dma1;
|
||||
uint16_t iw,ih,ow,oh;
|
||||
struct msi *msi;
|
||||
uint8_t *scaler1buf; //scale的buf
|
||||
uint8_t dma1_lock;
|
||||
};
|
||||
|
||||
typedef int32_t (*scale3_done_fn)(uint32 irq_data);
|
||||
|
||||
struct msi *scale2_msi(const char *name, uint16_t iw, uint16_t ih, uint16_t ow, uint16_t oh, uint16_t type,uint8_t larger);
|
||||
void scale2_output_size_local_change(uint8_t id,uint8_t show_only,uint16 x,uint16 y,uint16 w,uint16 h);
|
||||
void scale2_output_larger_local_change(uint8_t id, uint8_t larger);
|
||||
struct msi *scale3_msi(const char *name);
|
||||
struct msi *scale3_msi_const_buf(const char *name, uint8_t *buf,uint16_t iw, uint16_t ih, uint16_t ow, uint16_t oh);
|
||||
void scale3_output_size_local_change(uint8_t id,uint8_t show_only,uint16 x,uint16 y,uint16 w,uint16 h);
|
||||
int scale2_cfg_run(uint8_t streamfrom,uint8_t id);
|
||||
void scale2_recfg_input_size(uint16_t w,uint16_t h,uint8_t id);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user