summaryrefslogtreecommitdiff
authorminliang.lu <minliang.lu@amlogic.com>2020-05-18 08:49:39 (GMT)
committer Hui Zhang <hui.zhang@amlogic.com>2020-05-29 13:37:51 (GMT)
commit475e80ac80c2d703590ec82342f24d954fdcbd74 (patch)
tree247c4a94341a9a3601e9ca511c2a92460e97ef58
parent677ab50da749119274325f12855b0f3ac0cfb88b (diff)
downloadmedia_modules-475e80ac80c2d703590ec82342f24d954fdcbd74.zip
media_modules-475e80ac80c2d703590ec82342f24d954fdcbd74.tar.gz
media_modules-475e80ac80c2d703590ec82342f24d954fdcbd74.tar.bz2
vdec: use new v4lvideo path without di to support fence [2/3]
PD#SWPL-26962 Problem: New feature to support decoder output fence, the di can't be contained in the video path. Solution: Use new v4lvideo path without di to support fence. Verify: newton Change-Id: Ic38c84e5c31ff1ca4416f18bfe5453cab54a1feb Signed-off-by: minliang.lu <minliang.lu@amlogic.com>
Diffstat
-rw-r--r--drivers/frame_provider/decoder/utils/vdec.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/frame_provider/decoder/utils/vdec.c b/drivers/frame_provider/decoder/utils/vdec.c
index 345d4a2..dc89179 100644
--- a/drivers/frame_provider/decoder/utils/vdec.c
+++ b/drivers/frame_provider/decoder/utils/vdec.c
@@ -2471,6 +2471,26 @@ s32 vdec_init(struct vdec_s *vdec, int is_4k)
}
snprintf(vdec->vfm_map_id, VDEC_MAP_NAME_SIZE,
"vdec-map-%d", vdec->id);
+ } else if (p->frame_base_video_path ==
+ FRAME_BASE_PATH_V4LVIDEO) {
+#ifdef CONFIG_AMLOGIC_V4L_VIDEO3
+ r = v4lvideo_assign_map(&vdec->vf_receiver_name,
+ &vdec->vf_receiver_inst);
+#else
+ r = -1;
+#endif
+ if (r < 0) {
+ pr_err("V4lVideo frame receiver allocation failed.\n");
+ mutex_lock(&vdec_mutex);
+ inited_vcodec_num--;
+ mutex_unlock(&vdec_mutex);
+ goto error;
+ }
+ snprintf(vdec->vfm_map_chain, VDEC_MAP_NAME_SIZE,
+ "%s %s", vdec->vf_provider_name,
+ vdec->vf_receiver_name);
+ snprintf(vdec->vfm_map_id, VDEC_MAP_NAME_SIZE,
+ "vdec-map-%d", vdec->id);
}
if (vfm_map_add(vdec->vfm_map_id,