rkmedia的API的详解

rkmedia的API的详解

函数的功能:

初始化rkmedia的系统

函数的头文件

rkmedia_api.h

函数的原型

RK_S32 RK_MPI_SYS_Init();

函数的参数

无

函数的返回值

成功返回  0

失败返回  错误码
函数的功能:

设置VI通道的属性

函数的头文件



函数的原型

RK_MPI_VI_SetChnAttr(VI_PIPE ViPipe,

VI_CHN ViChn, const VI_CHN_ATTR_S *pstChnAttr);

函数参数

VI_PIPE ViPipe,   管道   0

VI_CHN ViChn,   vi通道的编号   直接  0

const VI_CHN_ATTR_S *pstChnAttr vi通道的属性结构体

函数的返回值

成功返回  0

失败返回  错误码
typedef struct rkVI_CHN_ATTR_S {

const RK_CHAR *pcVideoNode;   摄像头的节点rkispp_scale0

RK_U32 u32Width;          视频的宽

RK_U32 u32Height;          视频的高

IMAGE_TYPE_E enPixFmt;     采集的数据的格式

RK_U32 u32BufCnt; // VI capture video buffer cnt.  

缓冲帧的大小  范围3-5

// VI capture video buffer type.

VI_CHN_BUF_TYPE enBufType;  视频数据的存储的方式

内存映射

VI_CHN_WORK_MODE enWorkMode;  工作模式  

正常工作模式

} VI_CHN_ATTR_S;

视频的类型的共用体

typedef enum rk_IMAGE_TYPE_E {

IMAGE_TYPE_UNKNOW = 0,

IMAGE_TYPE_GRAY8,

IMAGE_TYPE_GRAY16,

IMAGE_TYPE_YUV420P,       

IMAGE_TYPE_NV12,

IMAGE_TYPE_NV21,

IMAGE_TYPE_YV12,

IMAGE_TYPE_FBC2,

IMAGE_TYPE_FBC0,

IMAGE_TYPE_YUV422P,

IMAGE_TYPE_NV16,

IMAGE_TYPE_NV61,

IMAGE_TYPE_YV16,

IMAGE_TYPE_YUYV422,

IMAGE_TYPE_UYVY422,

IMAGE_TYPE_RGB332,

IMAGE_TYPE_RGB565,

IMAGE_TYPE_BGR565,

IMAGE_TYPE_RGB888,

IMAGE_TYPE_BGR888,

IMAGE_TYPE_ARGB8888,

IMAGE_TYPE_ABGR8888,

IMAGE_TYPE_JPEG,

IMAGE_TYPE_BUTT

} IMAGE_TYPE_E;

函数的功能:

使能VI通道

函数的头文件

rkmedia_api.h

函数的原型

RK_S32 RK_MPI_VI_EnableChn(VI_PIPE ViPipe, VI_CHN ViChn);

函数参数

VI_PIPE ViPipe,     管道编号    0

VI_CHN ViChn   通道的编号  0

函数的返回值

成功返回  0

失败返回  错误码

函数的功能:

创建编码通道

函数的头文件

rkmedia_api.h

函数的原型

RK_S32 RK_MPI_VENC_CreateChn(VENC_CHN VeChn, VENC_CHN_ATTR_S *stVencChnAttr);

函数参数

VENC_CHN VeChn,          编码通道

VENC_CHN_ATTR_S *stVencChnAttr    编码通道的属性结构体

函数的返回值

成功返回  0

失败返回  错误码
编码属性结构体

typedef struct rkVENC_CHN_ATTR_S {

VENC_ATTR_S stVencAttr; // 编码器的属性结构体

VENC_RC_ATTR_S stRcAttr; //码率的控制属性

VENC_GOP_ATTR_S stGopAttr; // gop属性

} VENC_CHN_ATTR_S;

编码器的属性结构体

typedef struct rkVENC_ATTR_S {

CODEC_TYPE_E enType;    //编码的协议的类型

RK_CODEC_TYPE_H264,

IMAGE_TYPE_E imageType; //输入的图像的类型   要跟VI通道保持一致

IMAGE_TYPE_NV12

RK_U32 u32VirWidth; //        虚拟的宽

RK_U32 u32VirHeight;      虚拟的高

RK_U32 u32Profile;          编码的等级    77

RK_BOOL bByFrame;  保留参数

RK_U32 u32PicWidth; 真实的宽

RK_U32 u32PicHeight; 真实的高

VENC_ROTATION_E enRotation; 旋转的角度

union {

VENC_ATTR_H264_S stAttrH264e; // attributes of H264e

VENC_ATTR_H265_S stAttrH265e; // attributes of H265e

VENC_ATTR_MJPEG_S stAttrMjpege; // attributes of Mjpeg

VENC_ATTR_JPEG_S stAttrJpege; // attributes of jpeg

};

} VENC_ATTR_S;
码率控制器的属性结构体

typedef struct rkVENC_RC_ATTR_S {

/* RW; the type of rc*/

VENC_RC_MODE_E enRcMode;  模式

VENC_RC_MODE_H264CBR  

union {

VENC_H264_CBR_S stH264Cbr;



typedef struct rkVENC_H264_CBR_S {

RK_U32 u32Gop;    30

RK_U32 u32SrcFrameRateNum; 30

RK_U32 u32SrcFrameRateDen;  1

RK_FR32 fr32DstFrameRateNum;  30

RK_FR32 fr32DstFrameRateDen;  1

RK_U32 u32BitRate; 分辨率

} VENC_H264_CBR_S;

VENC_H264_VBR_S stH264Vbr;

VENC_H264_AVBR_S stH264Avbr;

VENC_MJPEG_CBR_S stMjpegCbr;

VENC_MJPEG_VBR_S stMjpegVbr;

VENC_H265_CBR_S stH265Cbr;

VENC_H265_VBR_S stH265Vbr;

VENC_H265_AVBR_S stH265Avbr;

};

} VENC_RC_ATTR_S;

函数的功能:

注册编码通道的回调函数

函数的头文件

rkmedia_api.h

函数的原型

RK_S32 RK_MPI_SYS_RegisterOutCb(const MPP_CHN_S *pstChn, OutCbFunc cb);

函数参数

const MPP_CHN_S *pstChn,    通道的描述结构体

OutCbFunc cb                回调函数  函数指针

typedef void (*OutCbFunc)(MEDIA_BUFFER mb);

函数的返回值

成功返回  0

失败返回  非零
通道描述结构体

typedef struct rkMPP_CHN_S {

MOD_ID_E enModId;    模块号  RK_ID_VENC

RK_S32 s32DevId;       设备号  0

RK_S32 s32ChnId;           通道号   0

} MPP_CHN_S;
函数的功能:

绑定vi和venc通道

函数的头文件

rkmedia_api.h

函数的原型

RK_S32 RK_MPI_SYS_Bind(const MPP_CHN_S *pstSrcChn,const MPP_CHN_S *pstDestChn);

函数参数

const MPP_CHN_S *pstSrcChn,   源通道    vi通道

const MPP_CHN_S *pstDestChn  目标通道 venc通道

函数的返回值

成功返回   0

失败返回  错误码

 函数的功能:

解除vi通道和venc通道的绑定

函数的头文件

rkmedia_api.h

函数的原型

RK_MPI_SYS_UnBind(const MPP_CHN_S *pstSrcChn,const MPP_CHN_S *pstDestChn);

函数参数

const MPP_CHN_S *pstSrcChn,      源通道

const MPP_CHN_S *pstDestChn     目标通道

函数的返回值

成功返回  0

失败返回   错误码
函数的功能

销毁编码通道

函数的头文件

rkmedia_api.h

函数的原型

RK_S32 RK_MPI_VENC_DestroyChn(VENC_CHN VeChn);

函数的参数

VENC_CHN VeChn  :通道的编号   0

函数的返回值

成功返回  0

失败返回  错误码
函数的功能

失能vi通道

函数的头文件

rkmedia_api.h

函数的原型

RK_S32 RK_MPI_VI_DisableChn(VI_PIPE ViPipe, VI_CHN ViChn);

函数的参数

VI_PIPE ViPipe,    管道

VI_CHN ViChn    通道

函数的返回值

成功返回   0

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值