diff options
author | peak3d <pfau@peak3d.de> | 2018-09-30 17:53:09 +0200 |
---|---|---|
committer | peak3d <pfau@peak3d.de> | 2018-09-30 17:53:09 +0200 |
commit | 36a5bddf3af4fdad28e267bc09b66687af9cb536 (patch) | |
tree | 8f637ec3e29042a147e8656c3b975ca51ff673aa | |
parent | 58fb6ae0d054d823e59e31be8555837e5655b1d8 (diff) |
Add fourcc, colorspace and colorrange to inputstream API
4 files changed, 39 insertions, 3 deletions
diff --git a/xbmc/addons/binary-addons/AddonInstanceHandler.h b/xbmc/addons/binary-addons/AddonInstanceHandler.h index 6d66a1373a..d9d80152ed 100644 --- a/xbmc/addons/binary-addons/AddonInstanceHandler.h +++ b/xbmc/addons/binary-addons/AddonInstanceHandler.h @@ -36,8 +36,8 @@ namespace ADDON ADDON_STATUS CreateInstance(KODI_HANDLE instance); void DestroyInstance(); - const AddonDllPtr& Addon() { return m_addon; } - BinaryAddonBasePtr GetAddonBase() { return m_addonBase; }; + const AddonDllPtr& Addon() const { return m_addon; } + BinaryAddonBasePtr GetAddonBase() const { return m_addonBase; }; private: ADDON_TYPE m_type; diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Inputstream.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Inputstream.h index 23a91e7947..252edbf74e 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Inputstream.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Inputstream.h @@ -120,6 +120,31 @@ extern "C" { FLAG_HEARING_IMPAIRED = 0x0080, FLAG_VISUAL_IMPAIRED = 0x0100 }; + + enum INPUTSTREAM_COLORSPACE + { + COLORSPACE_UNKNOWN, + COLORSPACE_BT709, + COLORSPACE_BT470M, + COLORSPACE_BT470BG, + COLORSPACE_SMPTE170M, + COLORSPACE_SMPTE240M, + COLORSPACE_FILM, + COLORSPACE_BT2020, + COLORSPACE_SMPTE428, + COLORSPACE_SMPTEST428_1, + COLORSPACE_SMPTE431, + COLORSPACE_SMPTE432, + COLORSPACE_JEDEC_P22 + }; + + enum INPUTSTREAM_COLORRANGE + { + COLORRANGE_UNKNOWN, + COLORRANGE_LIMITED, + COLORRANGE_FULLRANGE + }; + uint32_t m_flags; char m_name[256]; /*!< @brief (optinal) name of the stream, \0 for default handling */ @@ -139,6 +164,7 @@ extern "C" { unsigned int m_Width; /*!< @brief width of the stream reported by the demuxer */ float m_Aspect; /*!< @brief display aspect of stream */ + unsigned int m_Channels; /*!< @brief (required) amount of channels */ unsigned int m_SampleRate; /*!< @brief (required) sample rate */ unsigned int m_BitRate; /*!< @brief (required) bit rate */ @@ -146,6 +172,11 @@ extern "C" { unsigned int m_BlockAlign; CRYPTO_INFO m_cryptoInfo; + + // new in API version 2.0.8 + unsigned int m_codecFourCC; /*!< @brief Codec If available, the fourcc code codec */ + INPUTSTREAM_COLORSPACE m_colorSpace; /*!< @brief definition of colorspace */ + INPUTSTREAM_COLORRANGE m_colorRange; /*!< @brief color range if available */ }; struct INPUTSTREAM_TIMES diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h index 3b57b18312..0b9dcbe4a5 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h @@ -87,7 +87,7 @@ #define ADDON_INSTANCE_VERSION_IMAGEDECODER_XML_ID "kodi.binary.instance.imagedecoder" #define ADDON_INSTANCE_VERSION_IMAGEDECODER_DEPENDS "addon-instance/ImageDecoder.h" -#define ADDON_INSTANCE_VERSION_INPUTSTREAM "2.0.7" +#define ADDON_INSTANCE_VERSION_INPUTSTREAM "2.0.8" #define ADDON_INSTANCE_VERSION_INPUTSTREAM_MIN "2.0.7" #define ADDON_INSTANCE_VERSION_INPUTSTREAM_XML_ID "kodi.binary.instance.inputstream" #define ADDON_INSTANCE_VERSION_INPUTSTREAM_DEPENDS "addon-instance/Inputstream.h" diff --git a/xbmc/cores/VideoPlayer/DVDInputStreams/InputStreamAddon.cpp b/xbmc/cores/VideoPlayer/DVDInputStreams/InputStreamAddon.cpp index 9594954d89..14a8ae8f8f 100644 --- a/xbmc/cores/VideoPlayer/DVDInputStreams/InputStreamAddon.cpp +++ b/xbmc/cores/VideoPlayer/DVDInputStreams/InputStreamAddon.cpp @@ -373,6 +373,11 @@ CDemuxStream* CInputStreamAddon::GetStream(int streamId) const demuxStream->flags = static_cast<StreamFlags>(stream.m_flags); demuxStream->language = stream.m_language; + if (GetAddonBase()->Version() >= AddonVersion("2.0.8")) + { + demuxStream->codec_fourcc = stream.m_codecFourCC; + } + if (stream.m_ExtraData && stream.m_ExtraSize) { demuxStream->ExtraData = new uint8_t[stream.m_ExtraSize]; |