summaryrefslogtreecommitdiffstats
path: root/xbmc/addons/kodi-addon-dev-kit/include/kodi/StreamCodec.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/addons/kodi-addon-dev-kit/include/kodi/StreamCodec.h')
-rw-r--r--xbmc/addons/kodi-addon-dev-kit/include/kodi/StreamCodec.h126
1 files changed, 115 insertions, 11 deletions
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/StreamCodec.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/StreamCodec.h
index 729cdc0..e030371 100644
--- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/StreamCodec.h
+++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/StreamCodec.h
@@ -8,15 +8,119 @@
8 8
9#pragma once 9#pragma once
10 10
11enum STREAMCODEC_PROFILE 11#ifdef __cplusplus
12extern "C"
12{ 13{
13 CodecProfileUnknown = 0, 14#endif /* __cplusplus */
14 CodecProfileNotNeeded, 15
15 H264CodecProfileBaseline, 16 //==============================================================================
16 H264CodecProfileMain, 17 /// @ingroup cpp_kodi_addon_videocodec_Defs_VIDEOCODEC_INITDATA
17 H264CodecProfileExtended, 18 /// @brief The standard defines several sets of capabilities, which are referred
18 H264CodecProfileHigh, 19 /// to as profiles, targeting specific classes of applications.
19 H264CodecProfileHigh10, 20 //@{
20 H264CodecProfileHigh422, 21 enum STREAMCODEC_PROFILE
21 H264CodecProfileHigh444Predictive 22 {
22}; 23 /// @brief Unknown codec profile
24 CodecProfileUnknown = 0,
25
26 /// @brief If a codec profile is not required
27 CodecProfileNotNeeded,
28
29 /// @brief **H264** Baseline Profile (BP, 66)
30 ///
31 /// Primarily for low-cost applications that require additional data loss
32 /// robustness, this profile is used in some videoconferencing and mobile
33 /// applications. This profile includes all features that are supported
34 /// in the Constrained Baseline Profile, plus three additional features
35 /// that can be used for loss robustness (or for other purposes such as
36 /// low-delay multi-point video stream compositing). The importance of
37 /// this profile has faded somewhat since the definition of the Constrained
38 /// Baseline Profile in 2009. All Constrained Baseline Profile bitstreams
39 /// are also considered to be Baseline Profile bitstreams, as these two
40 /// profiles share the same profile identifier code value.
41 H264CodecProfileBaseline,
42
43 /// @brief **H264** Main Profile (MP, 77)
44 ///
45 /// This profile is used for standard-definition digital TV broadcasts that
46 /// use the MPEG-4 format as defined in the
47 /// [DVB standard](http://www.etsi.org/deliver/etsi_ts/101100_101199/101154/01.09.01_60/ts_101154v010901p.pdf).
48 /// It is not, however, used for high-definition television broadcasts, as the
49 /// importance of this profile faded when the High Profile was developed
50 /// in 2004 for that application.
51 H264CodecProfileMain,
52
53 /// @brief **H264** Extended Profile (XP, 88)
54 ///
55 /// Intended as the streaming video profile, this profile has relatively high
56 /// compression capability and some extra tricks for robustness to data losses
57 /// and server stream switching.
58 H264CodecProfileExtended,
59
60 /// @brief **H264** High Profile (HiP, 100)
61 ///
62 /// The primary profile for broadcast and disc storage applications,
63 /// particularly for high-definition television applications (for example,
64 /// this is the profile adopted by the [Blu-ray Disc](https://en.wikipedia.org/wiki/Blu-ray_Disc)
65 /// storage format and the [DVB](https://en.wikipedia.org/wiki/Digital_Video_Broadcasting)
66 /// HDTV broadcast service).
67 H264CodecProfileHigh,
68
69 /// @brief **H264** High 10 Profile (Hi10P, 110)
70 ///
71 /// Going beyond typical mainstream consumer product capabilities, this
72 /// profile builds on top of the High Profile, adding support for up to 10
73 /// bits per sample of decoded picture precision.
74 H264CodecProfileHigh10,
75
76 /// @brief **H264** High 4:2:2 Profile (Hi422P, 122)
77 ///
78 /// Primarily targeting professional applications that use interlaced video,
79 /// this profile builds on top of the High 10 Profile, adding support for the
80 /// 4:2:2 chroma sampling format while using up to 10 bits per sample of
81 /// decoded picture precision.
82 H264CodecProfileHigh422,
83
84 /// @brief **H264** High 4:4:4 Predictive Profile (Hi444PP, 244)
85 ///
86 /// This profile builds on top of the High 4:2:2 Profile, supporting up to
87 /// 4:4:4 chroma sampling, up to 14 bits per sample, and additionally
88 /// supporting efficient lossless region coding and the coding of each
89 /// picture as three separate color planes.
90 H264CodecProfileHigh444Predictive,
91
92 /// @brief **VP9** profile 0
93 ///
94 /// There are several variants of the VP9 format (known as "coding profiles"),
95 /// which successively allow more features; profile 0 is the basic variant,
96 /// requiring the least from a hardware implementation.
97 ///
98 /// [Color depth](https://en.wikipedia.org/wiki/Color_depth): 8 bit/sample,
99 /// [chroma subsampling](https://en.wikipedia.org/wiki/Chroma_subsampling): 4:2:0
100 VP9CodecProfile0 = 20,
101
102 /// @brief **VP9** profile 1
103 ///
104 /// [Color depth](https://en.wikipedia.org/wiki/Color_depth): 8 bit,
105 /// [chroma subsampling](https://en.wikipedia.org/wiki/Chroma_subsampling): 4:2:0, 4:2:2, 4:4:4
106 VP9CodecProfile1,
107
108 /// @brief **VP9** profile 2
109 ///
110 /// [Color depth](https://en.wikipedia.org/wiki/Color_depth): 10–12 bit,
111 /// [chroma subsampling](https://en.wikipedia.org/wiki/Chroma_subsampling): 4:2:0
112 VP9CodecProfile2,
113
114 /// @brief **VP9** profile 3
115 ///
116 /// [Color depth](https://en.wikipedia.org/wiki/Color_depth): 10–12 bit,
117 /// [chroma subsampling](https://en.wikipedia.org/wiki/Chroma_subsampling): 4:2:0, 4:2:2, 4:4:4,
118 /// see [VP9 Bitstream & Decoding Process Specification](https://storage.googleapis.com/downloads.webmproject.org/docs/vp9/vp9-bitstream-specification-v0.6-20160331-draft.pdf)
119 VP9CodecProfile3,
120 };
121 //@}
122 //------------------------------------------------------------------------------
123
124#ifdef __cplusplus
125} /* extern "C" */
126#endif /* __cplusplus */