1From ca4b14601d434ffa709664593e67987c8ac39c3c Mon Sep 17 00:00:00 2001
2From: Jeffy Chen <jeffy.chen@rock-chips.com>
3Date: Fri, 9 Sep 2022 16:06:58 +0800
4Subject: [PATCH 15/18] media: Support HEVC in V4L2 VDA
5
6Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
7---
8 media/gpu/v4l2/v4l2_device.cc                   | 9 +++++++++
9 media/gpu/v4l2/v4l2_video_decode_accelerator.cc | 2 +-
10 2 files changed, 10 insertions(+), 1 deletion(-)
11
12diff --git a/media/gpu/v4l2/v4l2_device.cc b/media/gpu/v4l2/v4l2_device.cc
13index 090863ce6..fc719957d 100644
14--- a/media/gpu/v4l2/v4l2_device.cc
15+++ b/media/gpu/v4l2/v4l2_device.cc
16@@ -1578,6 +1578,8 @@ uint32_t V4L2Device::VideoCodecProfileToV4L2PixFmt(VideoCodecProfile profile,
17
18   if (profile >= H264PROFILE_MIN && profile <= H264PROFILE_MAX) {
19     return V4L2_PIX_FMT_H264;
20+  } else if (profile >= HEVCPROFILE_MIN && profile <= HEVCPROFILE_MAX) {
21+    return V4L2_PIX_FMT_HEVC;
22   } else if (profile >= VP8PROFILE_MIN && profile <= VP8PROFILE_MAX) {
23     return V4L2_PIX_FMT_VP8;
24   } else if (profile >= VP9PROFILE_MIN && profile <= VP9PROFILE_MAX) {
25@@ -1797,6 +1799,13 @@ std::vector<VideoCodecProfile> V4L2Device::V4L2PixFmtToVideoCodecProfiles(
26           H264PROFILE_HIGH,
27       };
28       break;
29+    case V4L2_PIX_FMT_HEVC:
30+      profiles = {
31+          HEVCPROFILE_MAIN,
32+          HEVCPROFILE_MAIN10,
33+          HEVCPROFILE_MAIN_STILL_PICTURE,
34+      };
35+      break;
36     case V4L2_PIX_FMT_VP8:
37       profiles = {VP8PROFILE_ANY};
38       break;
39diff --git a/media/gpu/v4l2/v4l2_video_decode_accelerator.cc b/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
40index a71e272e8..539908bf4 100644
41--- a/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
42+++ b/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
43@@ -86,7 +86,7 @@ bool IsVp9KSVCStream(uint32_t input_format_fourcc,
44
45 // static
46 const uint32_t V4L2VideoDecodeAccelerator::supported_input_fourccs_[] = {
47-    V4L2_PIX_FMT_H264, V4L2_PIX_FMT_VP8, V4L2_PIX_FMT_VP9,
48+    V4L2_PIX_FMT_H264, V4L2_PIX_FMT_HEVC, V4L2_PIX_FMT_VP8, V4L2_PIX_FMT_VP9,
49 };
50
51 // static
52--
532.20.1
54
55