From 5f8335c1e49ce108ef3481863833c98efa00411b Mon Sep 17 00:00:00 2001 From: manuel Date: Thu, 2 Jul 2020 23:09:26 +0200 Subject: sync with upstream --- .../kodi-addon-dev-kit/include/kodi/StreamCodec.h | 126 +++++++++++++++++++-- 1 file changed, 115 insertions(+), 11 deletions(-) (limited to 'xbmc/addons/kodi-addon-dev-kit/include/kodi/StreamCodec.h') 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 @@ #pragma once -enum STREAMCODEC_PROFILE +#ifdef __cplusplus +extern "C" { - CodecProfileUnknown = 0, - CodecProfileNotNeeded, - H264CodecProfileBaseline, - H264CodecProfileMain, - H264CodecProfileExtended, - H264CodecProfileHigh, - H264CodecProfileHigh10, - H264CodecProfileHigh422, - H264CodecProfileHigh444Predictive -}; +#endif /* __cplusplus */ + + //============================================================================== + /// @ingroup cpp_kodi_addon_videocodec_Defs_VIDEOCODEC_INITDATA + /// @brief The standard defines several sets of capabilities, which are referred + /// to as profiles, targeting specific classes of applications. + //@{ + enum STREAMCODEC_PROFILE + { + /// @brief Unknown codec profile + CodecProfileUnknown = 0, + + /// @brief If a codec profile is not required + CodecProfileNotNeeded, + + /// @brief **H264** Baseline Profile (BP, 66) + /// + /// Primarily for low-cost applications that require additional data loss + /// robustness, this profile is used in some videoconferencing and mobile + /// applications. This profile includes all features that are supported + /// in the Constrained Baseline Profile, plus three additional features + /// that can be used for loss robustness (or for other purposes such as + /// low-delay multi-point video stream compositing). The importance of + /// this profile has faded somewhat since the definition of the Constrained + /// Baseline Profile in 2009. All Constrained Baseline Profile bitstreams + /// are also considered to be Baseline Profile bitstreams, as these two + /// profiles share the same profile identifier code value. + H264CodecProfileBaseline, + + /// @brief **H264** Main Profile (MP, 77) + /// + /// This profile is used for standard-definition digital TV broadcasts that + /// use the MPEG-4 format as defined in the + /// [DVB standard](http://www.etsi.org/deliver/etsi_ts/101100_101199/101154/01.09.01_60/ts_101154v010901p.pdf). + /// It is not, however, used for high-definition television broadcasts, as the + /// importance of this profile faded when the High Profile was developed + /// in 2004 for that application. + H264CodecProfileMain, + + /// @brief **H264** Extended Profile (XP, 88) + /// + /// Intended as the streaming video profile, this profile has relatively high + /// compression capability and some extra tricks for robustness to data losses + /// and server stream switching. + H264CodecProfileExtended, + + /// @brief **H264** High Profile (HiP, 100) + /// + /// The primary profile for broadcast and disc storage applications, + /// particularly for high-definition television applications (for example, + /// this is the profile adopted by the [Blu-ray Disc](https://en.wikipedia.org/wiki/Blu-ray_Disc) + /// storage format and the [DVB](https://en.wikipedia.org/wiki/Digital_Video_Broadcasting) + /// HDTV broadcast service). + H264CodecProfileHigh, + + /// @brief **H264** High 10 Profile (Hi10P, 110) + /// + /// Going beyond typical mainstream consumer product capabilities, this + /// profile builds on top of the High Profile, adding support for up to 10 + /// bits per sample of decoded picture precision. + H264CodecProfileHigh10, + + /// @brief **H264** High 4:2:2 Profile (Hi422P, 122) + /// + /// Primarily targeting professional applications that use interlaced video, + /// this profile builds on top of the High 10 Profile, adding support for the + /// 4:2:2 chroma sampling format while using up to 10 bits per sample of + /// decoded picture precision. + H264CodecProfileHigh422, + + /// @brief **H264** High 4:4:4 Predictive Profile (Hi444PP, 244) + /// + /// This profile builds on top of the High 4:2:2 Profile, supporting up to + /// 4:4:4 chroma sampling, up to 14 bits per sample, and additionally + /// supporting efficient lossless region coding and the coding of each + /// picture as three separate color planes. + H264CodecProfileHigh444Predictive, + + /// @brief **VP9** profile 0 + /// + /// There are several variants of the VP9 format (known as "coding profiles"), + /// which successively allow more features; profile 0 is the basic variant, + /// requiring the least from a hardware implementation. + /// + /// [Color depth](https://en.wikipedia.org/wiki/Color_depth): 8 bit/sample, + /// [chroma subsampling](https://en.wikipedia.org/wiki/Chroma_subsampling): 4:2:0 + VP9CodecProfile0 = 20, + + /// @brief **VP9** profile 1 + /// + /// [Color depth](https://en.wikipedia.org/wiki/Color_depth): 8 bit, + /// [chroma subsampling](https://en.wikipedia.org/wiki/Chroma_subsampling): 4:2:0, 4:2:2, 4:4:4 + VP9CodecProfile1, + + /// @brief **VP9** profile 2 + /// + /// [Color depth](https://en.wikipedia.org/wiki/Color_depth): 10–12 bit, + /// [chroma subsampling](https://en.wikipedia.org/wiki/Chroma_subsampling): 4:2:0 + VP9CodecProfile2, + + /// @brief **VP9** profile 3 + /// + /// [Color depth](https://en.wikipedia.org/wiki/Color_depth): 10–12 bit, + /// [chroma subsampling](https://en.wikipedia.org/wiki/Chroma_subsampling): 4:2:0, 4:2:2, 4:4:4, + /// see [VP9 Bitstream & Decoding Process Specification](https://storage.googleapis.com/downloads.webmproject.org/docs/vp9/vp9-bitstream-specification-v0.6-20160331-draft.pdf) + VP9CodecProfile3, + }; + //@} + //------------------------------------------------------------------------------ + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ -- cgit v1.2.3