Commit 06fa5f75 authored by Yunfei Dong's avatar Yunfei Dong Committed by Mauro Carvalho Chehab

media: mtk-vcodec: vdec: support stateless H.264 decoding

Add support for H.264 decoding using the stateless API, as supported by
MT8183. This support takes advantage of the V4L2 H.264 reference list
builders.

[acourbot: refactor, cleanup and split]
[tzungbi: fix missing kerneldoc issue]
[hverkuil: fix trivial kerneldoc typo]
Signed-off-by: default avatarYunfei Dong <yunfei.dong@mediatek.com>
Co-developed-by: default avatarAlexandre Courbot <acourbot@chromium.org>
Signed-off-by: default avatarAlexandre Courbot <acourbot@chromium.org>
Signed-off-by: default avatarTzung-Bi Shih <tzungbi@google.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 8cdc3794
...@@ -314,6 +314,7 @@ config VIDEO_MEDIATEK_VCODEC ...@@ -314,6 +314,7 @@ config VIDEO_MEDIATEK_VCODEC
select V4L2_MEM2MEM_DEV select V4L2_MEM2MEM_DEV
select VIDEO_MEDIATEK_VCODEC_VPU if VIDEO_MEDIATEK_VPU select VIDEO_MEDIATEK_VCODEC_VPU if VIDEO_MEDIATEK_VPU
select VIDEO_MEDIATEK_VCODEC_SCP if MTK_SCP select VIDEO_MEDIATEK_VCODEC_SCP if MTK_SCP
select V4L2_H264
help help
Mediatek video codec driver provides HW capability to Mediatek video codec driver provides HW capability to
encode and decode in a range of video formats on MT8173 encode and decode in a range of video formats on MT8173
......
...@@ -7,6 +7,7 @@ obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-dec.o \ ...@@ -7,6 +7,7 @@ obj-$(CONFIG_VIDEO_MEDIATEK_VCODEC) += mtk-vcodec-dec.o \
mtk-vcodec-dec-y := vdec/vdec_h264_if.o \ mtk-vcodec-dec-y := vdec/vdec_h264_if.o \
vdec/vdec_vp8_if.o \ vdec/vdec_vp8_if.o \
vdec/vdec_vp9_if.o \ vdec/vdec_vp9_if.o \
vdec/vdec_h264_req_if.o \
mtk_vcodec_dec_drv.o \ mtk_vcodec_dec_drv.o \
vdec_drv_if.o \ vdec_drv_if.o \
vdec_vpu_if.o \ vdec_vpu_if.o \
......
This diff is collapsed.
...@@ -19,6 +19,9 @@ int vdec_if_init(struct mtk_vcodec_ctx *ctx, unsigned int fourcc) ...@@ -19,6 +19,9 @@ int vdec_if_init(struct mtk_vcodec_ctx *ctx, unsigned int fourcc)
int ret = 0; int ret = 0;
switch (fourcc) { switch (fourcc) {
case V4L2_PIX_FMT_H264_SLICE:
ctx->dec_if = &vdec_h264_slice_if;
break;
case V4L2_PIX_FMT_H264: case V4L2_PIX_FMT_H264:
ctx->dec_if = &vdec_h264_if; ctx->dec_if = &vdec_h264_if;
break; break;
......
...@@ -55,6 +55,7 @@ struct vdec_fb_node { ...@@ -55,6 +55,7 @@ struct vdec_fb_node {
}; };
extern const struct vdec_common_if vdec_h264_if; extern const struct vdec_common_if vdec_h264_if;
extern const struct vdec_common_if vdec_h264_slice_if;
extern const struct vdec_common_if vdec_vp8_if; extern const struct vdec_common_if vdec_vp8_if;
extern const struct vdec_common_if vdec_vp9_if; extern const struct vdec_common_if vdec_vp9_if;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment