VP9 support for GXM appears to have been missed from the original
codec submission [0] but it works well, so let's add support.
[0] https://github.com/torvalds/linux/commit/00c43088aa680989407b6afbda295f67b3f123f1
Signed-off-by: Christian Hewitt <[email protected]>
---
Tested with LibreELEC 11 nightly 'AMLGX' dev images for Khadas VIM2
and WeTek Core2 GXM devices which can be found here [1]. The images
combine Linux 5.16.y [2] with Kodi v20 [3] and FFmpeg 4.4 [4] which
notably includes many V4L2 refinements for stability and usability.
[1] https://test.libreelec.tv/
[2] https://github.com/chewitt/linux/commits/amlogic-5.16.y
[3] https://github.com/xbmc/xbmc/
[4] https://github.com/jc-kynesim/rpi-ffmpeg/commits/dev/4.4/rpi_import_1
drivers/staging/media/meson/vdec/vdec_platform.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/staging/media/meson/vdec/vdec_platform.c b/drivers/staging/media/meson/vdec/vdec_platform.c
index eabbebab2da2..88c9d72e1c83 100644
--- a/drivers/staging/media/meson/vdec/vdec_platform.c
+++ b/drivers/staging/media/meson/vdec/vdec_platform.c
@@ -103,6 +103,18 @@ static const struct amvdec_format vdec_formats_gxl[] = {
static const struct amvdec_format vdec_formats_gxm[] = {
{
+ .pixfmt = V4L2_PIX_FMT_VP9,
+ .min_buffers = 16,
+ .max_buffers = 24,
+ .max_width = 3840,
+ .max_height = 2160,
+ .vdec_ops = &vdec_hevc_ops,
+ .codec_ops = &codec_vp9_ops,
+ .firmware_path = "meson/vdec/gxl_vp9.bin",
+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
+ .flags = V4L2_FMT_FLAG_COMPRESSED |
+ V4L2_FMT_FLAG_DYN_RESOLUTION,
+ }, {
.pixfmt = V4L2_PIX_FMT_H264,
.min_buffers = 2,
.max_buffers = 24,
--
2.17.1
On 09/02/2022 16:31, Christian Hewitt wrote:
> VP9 support for GXM appears to have been missed from the original
> codec submission [0] but it works well, so let's add support.
>
> [0] https://github.com/torvalds/linux/commit/00c43088aa680989407b6afbda295f67b3f123f1
>
> Signed-off-by: Christian Hewitt <[email protected]>
> ---
> Tested with LibreELEC 11 nightly 'AMLGX' dev images for Khadas VIM2
> and WeTek Core2 GXM devices which can be found here [1]. The images
> combine Linux 5.16.y [2] with Kodi v20 [3] and FFmpeg 4.4 [4] which
> notably includes many V4L2 refinements for stability and usability.
>
> [1] https://test.libreelec.tv/
> [2] https://github.com/chewitt/linux/commits/amlogic-5.16.y
> [3] https://github.com/xbmc/xbmc/
> [4] https://github.com/jc-kynesim/rpi-ffmpeg/commits/dev/4.4/rpi_import_1
>
> drivers/staging/media/meson/vdec/vdec_platform.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/staging/media/meson/vdec/vdec_platform.c b/drivers/staging/media/meson/vdec/vdec_platform.c
> index eabbebab2da2..88c9d72e1c83 100644
> --- a/drivers/staging/media/meson/vdec/vdec_platform.c
> +++ b/drivers/staging/media/meson/vdec/vdec_platform.c
> @@ -103,6 +103,18 @@ static const struct amvdec_format vdec_formats_gxl[] = {
>
> static const struct amvdec_format vdec_formats_gxm[] = {
> {
> + .pixfmt = V4L2_PIX_FMT_VP9,
> + .min_buffers = 16,
> + .max_buffers = 24,
> + .max_width = 3840,
> + .max_height = 2160,
> + .vdec_ops = &vdec_hevc_ops,
> + .codec_ops = &codec_vp9_ops,
> + .firmware_path = "meson/vdec/gxl_vp9.bin",
> + .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
> + .flags = V4L2_FMT_FLAG_COMPRESSED |
> + V4L2_FMT_FLAG_DYN_RESOLUTION,
> + }, {
> .pixfmt = V4L2_PIX_FMT_H264,
> .min_buffers = 2,
> .max_buffers = 24,
Acked-by: Neil Armstrong <[email protected]>