xref: /aosp_15_r20/external/v4l2_codec2/common/VideoTypes.cpp (revision 0ec5a0ec62797f775085659156625e7f1bdb369f)
1 // Copyright 2020 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 //#define LOG_NDEBUG 0
6 #define LOG_TAG "VideoTypes"
7 
8 #include <v4l2_codec2/common/VideoTypes.h>
9 
10 #include <log/log.h>
11 
12 namespace android {
13 
VideoCodecToString(VideoCodec codec)14 const char* VideoCodecToString(VideoCodec codec) {
15     switch (codec) {
16     case VideoCodec::H264:
17         return "H264";
18     case VideoCodec::VP8:
19         return "VP8";
20     case VideoCodec::VP9:
21         return "VP9";
22     case VideoCodec::HEVC:
23         return "HEVC";
24     }
25 }
26 
profileToString(C2Config::profile_t profile)27 const char* profileToString(C2Config::profile_t profile) {
28     switch (profile) {
29     case C2Config::PROFILE_UNUSED:
30         return "unused";
31     case C2Config::PROFILE_AVC_BASELINE:
32         return "h264 baseline";
33     case C2Config::PROFILE_AVC_CONSTRAINED_BASELINE:
34         return "h264 constrained baseline";
35     case C2Config::PROFILE_AVC_MAIN:
36         return "h264 main";
37     case C2Config::PROFILE_AVC_EXTENDED:
38         return "h264 extended";
39     case C2Config::PROFILE_AVC_HIGH:
40         return "h264 high";
41     case C2Config::PROFILE_AVC_HIGH_10:
42         return "h264 high 10";
43     case C2Config::PROFILE_AVC_HIGH_422:
44         return "h264 high 4:2:2";
45     case C2Config::PROFILE_AVC_HIGH_444_PREDICTIVE:
46         return "h264 high 4:4:4 predictive";
47     case C2Config::PROFILE_AVC_SCALABLE_BASELINE:
48         return "h264 scalable baseline";
49     case C2Config::PROFILE_AVC_SCALABLE_HIGH:
50         return "h264 scalable high";
51     case C2Config::PROFILE_AVC_STEREO_HIGH:
52         return "h264 stereo high";
53     case C2Config::PROFILE_AVC_MULTIVIEW_HIGH:
54         return "h264 multiview high";
55     case C2Config::PROFILE_HEVC_MAIN:
56         return "hevc main";
57     case C2Config::PROFILE_HEVC_MAIN_10:
58         return "hevc main 10";
59     case C2Config::PROFILE_HEVC_MAIN_STILL:
60         return "hevc main still-picture";
61     case C2Config::PROFILE_VP8_0:
62         return "vp8 profile0";
63     case C2Config::PROFILE_VP8_1:
64         return "vp8 profile1";
65     case C2Config::PROFILE_VP8_2:
66         return "vp8 profile2";
67     case C2Config::PROFILE_VP8_3:
68         return "vp8 profile3";
69     case C2Config::PROFILE_VP9_0:
70         return "vp9 profile0";
71     case C2Config::PROFILE_VP9_1:
72         return "vp9 profile1";
73     case C2Config::PROFILE_VP9_2:
74         return "vp9 profile2";
75     case C2Config::PROFILE_VP9_3:
76         return "vp9 profile3";
77     case C2Config::PROFILE_AV1_0:
78         return "av1 profile 0";
79     case C2Config::PROFILE_AV1_1:
80         return "av1 profile 1";
81     case C2Config::PROFILE_AV1_2:
82         return "av1 profile 2";
83     default:
84         return "unknown";
85     }
86 }
87 
HalPixelFormatToString(HalPixelFormat format)88 const char* HalPixelFormatToString(HalPixelFormat format) {
89     switch (format) {
90     case HalPixelFormat::UNKNOWN:
91         return "Unknown";
92     case HalPixelFormat::YCBCR_420_888:
93         return "YCBCR_420_888";
94     case HalPixelFormat::YV12:
95         return "YV12";
96     case HalPixelFormat::NV12:
97         return "NV12";
98     }
99 }
100 
101 }  // namespace android
102