diff options
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.h | 126 |
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 | ||
| 11 | enum STREAMCODEC_PROFILE | 11 | #ifdef __cplusplus |
| 12 | extern "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 */ | ||
