|
@@ -61,6 +61,8 @@ enum venc_h264_bs_mode {
|
|
|
|
|
|
/*
|
|
/*
|
|
* struct venc_h264_vpu_config - Structure for h264 encoder configuration
|
|
* struct venc_h264_vpu_config - Structure for h264 encoder configuration
|
|
|
|
+ * AP-W/R : AP is writer/reader on this item
|
|
|
|
+ * VPU-W/R: VPU is write/reader on this item
|
|
* @input_fourcc: input fourcc
|
|
* @input_fourcc: input fourcc
|
|
* @bitrate: target bitrate (in bps)
|
|
* @bitrate: target bitrate (in bps)
|
|
* @pic_w: picture width. Picture size is visible stream resolution, in pixels,
|
|
* @pic_w: picture width. Picture size is visible stream resolution, in pixels,
|
|
@@ -94,13 +96,13 @@ struct venc_h264_vpu_config {
|
|
|
|
|
|
/*
|
|
/*
|
|
* struct venc_h264_vpu_buf - Structure for buffer information
|
|
* struct venc_h264_vpu_buf - Structure for buffer information
|
|
- * @align: buffer alignment (in bytes)
|
|
|
|
|
|
+ * AP-W/R : AP is writer/reader on this item
|
|
|
|
+ * VPU-W/R: VPU is write/reader on this item
|
|
* @iova: IO virtual address
|
|
* @iova: IO virtual address
|
|
* @vpua: VPU side memory addr which is used by RC_CODE
|
|
* @vpua: VPU side memory addr which is used by RC_CODE
|
|
* @size: buffer size (in bytes)
|
|
* @size: buffer size (in bytes)
|
|
*/
|
|
*/
|
|
struct venc_h264_vpu_buf {
|
|
struct venc_h264_vpu_buf {
|
|
- u32 align;
|
|
|
|
u32 iova;
|
|
u32 iova;
|
|
u32 vpua;
|
|
u32 vpua;
|
|
u32 size;
|
|
u32 size;
|
|
@@ -108,6 +110,8 @@ struct venc_h264_vpu_buf {
|
|
|
|
|
|
/*
|
|
/*
|
|
* struct venc_h264_vsi - Structure for VPU driver control and info share
|
|
* struct venc_h264_vsi - Structure for VPU driver control and info share
|
|
|
|
+ * AP-W/R : AP is writer/reader on this item
|
|
|
|
+ * VPU-W/R: VPU is write/reader on this item
|
|
* This structure is allocated in VPU side and shared to AP side.
|
|
* This structure is allocated in VPU side and shared to AP side.
|
|
* @config: h264 encoder configuration
|
|
* @config: h264 encoder configuration
|
|
* @work_bufs: working buffer information in VPU side
|
|
* @work_bufs: working buffer information in VPU side
|
|
@@ -150,12 +154,6 @@ struct venc_h264_inst {
|
|
struct mtk_vcodec_ctx *ctx;
|
|
struct mtk_vcodec_ctx *ctx;
|
|
};
|
|
};
|
|
|
|
|
|
-static inline void h264_write_reg(struct venc_h264_inst *inst, u32 addr,
|
|
|
|
- u32 val)
|
|
|
|
-{
|
|
|
|
- writel(val, inst->hw_base + addr);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static inline u32 h264_read_reg(struct venc_h264_inst *inst, u32 addr)
|
|
static inline u32 h264_read_reg(struct venc_h264_inst *inst, u32 addr)
|
|
{
|
|
{
|
|
return readl(inst->hw_base + addr);
|
|
return readl(inst->hw_base + addr);
|
|
@@ -214,6 +212,8 @@ static unsigned int h264_get_level(struct venc_h264_inst *inst,
|
|
return 40;
|
|
return 40;
|
|
case V4L2_MPEG_VIDEO_H264_LEVEL_4_1:
|
|
case V4L2_MPEG_VIDEO_H264_LEVEL_4_1:
|
|
return 41;
|
|
return 41;
|
|
|
|
+ case V4L2_MPEG_VIDEO_H264_LEVEL_4_2:
|
|
|
|
+ return 42;
|
|
default:
|
|
default:
|
|
mtk_vcodec_debug(inst, "unsupported level %d", level);
|
|
mtk_vcodec_debug(inst, "unsupported level %d", level);
|
|
return 31;
|
|
return 31;
|