On Mon, Oct 14, 2024 at 3:33 PM Yunfei Dong <yunfei.dong@xxxxxxxxxxxx> wrote: > > Hardware can parse the slice synatx to get nal information in > scp, needn't to parse it in kernel again. Does this apply to all existing shipped SCP firmware? If not, please put this behind a vdec firmware flag. ChenYu > Signed-off-by: Yunfei Dong <yunfei.dong@xxxxxxxxxxxx> > --- > .../vcodec/decoder/vdec/vdec_h264_req_multi_if.c | 13 ++----------- > 1 file changed, 2 insertions(+), 11 deletions(-) > > diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c > index d3f8d62238c0..76b96924a2a7 100644 > --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c > +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c > @@ -634,11 +634,10 @@ static int vdec_h264_slice_lat_decode(void *h_vdec, struct mtk_vcodec_mem *bs, > struct vdec_h264_slice_inst *inst = h_vdec; > struct vdec_vpu_inst *vpu = &inst->vpu; > struct mtk_video_dec_buf *src_buf_info; > - int nal_start_idx, err, timeout = 0; > + int err, timeout = 0; > unsigned int data[2]; > struct vdec_lat_buf *lat_buf; > struct vdec_h264_slice_share_info *share_info; > - unsigned char *buf; > > if (vdec_msg_queue_init(&inst->ctx->msg_queue, inst->ctx, > vdec_h264_slice_core_decode, > @@ -662,14 +661,6 @@ static int vdec_h264_slice_lat_decode(void *h_vdec, struct mtk_vcodec_mem *bs, > share_info = lat_buf->private_data; > src_buf_info = container_of(bs, struct mtk_video_dec_buf, bs_buffer); > > - buf = (unsigned char *)bs->va; > - nal_start_idx = mtk_vdec_h264_find_start_code(buf, bs->size); > - if (nal_start_idx < 0) { > - err = -EINVAL; > - goto err_free_fb_out; > - } > - > - inst->vsi->dec.nal_info = buf[nal_start_idx]; > lat_buf->vb2_v4l2_src = &src_buf_info->m2m_buf.vb; > v4l2_m2m_buf_copy_metadata(&src_buf_info->m2m_buf.vb, &lat_buf->ts_info, true); > > @@ -677,7 +668,7 @@ static int vdec_h264_slice_lat_decode(void *h_vdec, struct mtk_vcodec_mem *bs, > if (err) > goto err_free_fb_out; > > - vdec_h264_insert_startcode(inst->ctx->dev, buf, &bs->size, > + vdec_h264_insert_startcode(inst->ctx->dev, bs->va, &bs->size, > &share_info->h264_slice_params.pps); > > *res_chg = inst->resolution_changed; > -- > 2.46.0 > >