summaryrefslogtreecommitdiffstats
path: root/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2021-03-04 23:36:40 +0100
committermanuel <manuel@mausz.at>2021-03-04 23:36:40 +0100
commit3cb8aa05f8cee9e860cf83531682ff0ed4af6a4f (patch)
tree921f4829b32126f80f9113c124f2e14c0ebce8d9 /xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream
parentbe933ef2241d79558f91796cc5b3a161f72ebf9c (diff)
downloadkodi-pvr-build-3cb8aa05f8cee9e860cf83531682ff0ed4af6a4f.tar.gz
kodi-pvr-build-3cb8aa05f8cee9e860cf83531682ff0ed4af6a4f.tar.bz2
kodi-pvr-build-3cb8aa05f8cee9e860cf83531682ff0ed4af6a4f.zip
sync with upstreamMatrix
Diffstat (limited to 'xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream')
-rw-r--r--xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/CMakeLists.txt8
-rw-r--r--xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/DemuxPacket.h12
-rw-r--r--xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamCodec.h11
-rw-r--r--xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamConstants.h11
-rw-r--r--xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamCrypto.h99
-rw-r--r--xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/TimingConstants.h59
6 files changed, 200 insertions, 0 deletions
diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/CMakeLists.txt b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/CMakeLists.txt
new file mode 100644
index 0000000..a551b4b
--- /dev/null
+++ b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/CMakeLists.txt
@@ -0,0 +1,8 @@
1set(HEADERS DemuxPacket.h
2 StreamCodec.h
3 StreamConstants.h
4 TimingConstants.h)
5
6if(NOT ENABLE_STATIC_LIBS)
7 core_add_library(addons_kodi-dev-kit_include_kodi_addon-instance_inputstream)
8endif()
diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/DemuxPacket.h b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/DemuxPacket.h
new file mode 100644
index 0000000..f965b9f
--- /dev/null
+++ b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/DemuxPacket.h
@@ -0,0 +1,12 @@
1/*
2 * Copyright (C) 2005-2020 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
8
9#pragma once
10
11#include "TimingConstants.h"
12#include "../../c-api/addon-instance/inputstream/demux_packet.h"
diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamCodec.h b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamCodec.h
new file mode 100644
index 0000000..e80e2ca
--- /dev/null
+++ b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamCodec.h
@@ -0,0 +1,11 @@
1/*
2 * Copyright (C) 2005-2020 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
8
9#pragma once
10
11#include "../../c-api/addon-instance/inputstream/stream_codec.h"
diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamConstants.h b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamConstants.h
new file mode 100644
index 0000000..200631b
--- /dev/null
+++ b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamConstants.h
@@ -0,0 +1,11 @@
1/*
2 * Copyright (C) 2005-2020 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
8
9#pragma once
10
11#include "../../c-api/addon-instance/inputstream/stream_constants.h"
diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamCrypto.h b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamCrypto.h
new file mode 100644
index 0000000..8a85121
--- /dev/null
+++ b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/StreamCrypto.h
@@ -0,0 +1,99 @@
1/*
2 * Copyright (C) 2005-2020 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
8
9#pragma once
10
11#include "../../c-api/addon-instance/inputstream/stream_crypto.h"
12#include "../../AddonBase.h"
13
14#ifdef __cplusplus
15
16namespace kodi
17{
18namespace addon
19{
20
21class CInstanceInputStream;
22class InputstreamInfo;
23class VideoCodecInitdata;
24
25//==============================================================================
26/// @defgroup cpp_kodi_addon_inputstream_Defs_StreamEncryption_StreamCryptoSession class StreamCryptoSession
27/// @ingroup cpp_kodi_addon_inputstream_Defs_StreamEncryption
28/// @brief **Data to manage stream cryptography**\n
29/// This class structure manages any encryption values required in order to have
30/// them available in their stream processing.
31///
32/// Used on inputstream by @ref kodi::addon::InputstreamInfo::SetCryptoSession /
33/// @ref kodi::addon::InputstreamInfo::GetCryptoSession and are given to the
34/// used video codec to decrypt related data.
35///
36/// ----------------------------------------------------------------------------
37///
38/// @copydetails cpp_kodi_addon_inputstream_Defs_Info_StreamCryptoSession_Help
39///
40///@{
41class ATTRIBUTE_HIDDEN StreamCryptoSession
42 : public CStructHdl<StreamCryptoSession, STREAM_CRYPTO_SESSION>
43{
44 /*! \cond PRIVATE */
45 friend class CInstanceInputStream;
46 friend class InputstreamInfo;
47 friend class VideoCodecInitdata;
48 /*! \endcond */
49
50public:
51 /*! \cond PRIVATE */
52 StreamCryptoSession() { memset(m_cStructure, 0, sizeof(STREAM_CRYPTO_SESSION)); }
53 StreamCryptoSession(const StreamCryptoSession& session) : CStructHdl(session) {}
54 /*! \endcond */
55
56 /// @defgroup cpp_kodi_addon_inputstream_Defs_Info_StreamCryptoSession_Help Value Help
57 /// @ingroup cpp_kodi_addon_inputstream_Defs_Info_StreamCryptoSession
58 ///
59 /// <b>The following table contains values that can be set with @ref cpp_kodi_addon_inputstream_Defs_Info_StreamCryptoSession :</b>
60 /// | Name | Type | Set call | Get call
61 /// |------|------|----------|----------
62 /// | **Keysystem for encrypted media** | @ref STREAM_CRYPTO_KEY_SYSTEM | @ref StreamCryptoSession::SetKeySystem "SetKeySystem" | @ref StreamCryptoSession::GetKeySystem "GetKeySystem"
63 /// | **Flags for special conditions** | `uint8_t` | @ref StreamCryptoSession::SetFlags "SetFlags" | @ref StreamCryptoSession::GetFlags "GetFlags"
64 /// | **Crypto session key id** | `std::string` | @ref StreamCryptoSession::SetSessionId "SetSessionId" | @ref StreamCryptoSession::GetSessionId "GetSessionId"
65
66 /// @brief To set keysystem for encrypted media, @ref STREAM_CRYPTO_KEY_SYSTEM_NONE for
67 /// unencrypted media.
68 ///
69 /// See @ref STREAM_CRYPTO_KEY_SYSTEM for available options.
70 void SetKeySystem(STREAM_CRYPTO_KEY_SYSTEM keySystem) { m_cStructure->keySystem = keySystem; }
71
72 /// @brief Get keysystem for encrypted media.
73 STREAM_CRYPTO_KEY_SYSTEM GetKeySystem() const { return m_cStructure->keySystem; }
74
75 /// @brief Set bit flags to use special conditions, see @ref STREAM_CRYPTO_FLAGS
76 /// for available flags.
77 void SetFlags(uint8_t flags) { m_cStructure->flags = flags; }
78
79 /// @brief Get flags for special conditions.
80 uint8_t GetFlags() const { return m_cStructure->flags; }
81
82 /// @brief To set the crypto session key identifier.
83 void SetSessionId(const std::string& sessionId)
84 {
85 strncpy(m_cStructure->sessionId, sessionId.c_str(), sizeof(m_cStructure->sessionId) - 1);
86 }
87
88 /// @brief To get the crypto session key identifier.
89 std::string GetSessionId() const { return m_cStructure->sessionId; }
90
91private:
92 StreamCryptoSession(const STREAM_CRYPTO_SESSION* session) : CStructHdl(session) {}
93 StreamCryptoSession(STREAM_CRYPTO_SESSION* session) : CStructHdl(session) {}
94};
95
96} /* namespace addon */
97} /* namespace kodi */
98
99#endif /* __cplusplus */
diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/TimingConstants.h b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/TimingConstants.h
new file mode 100644
index 0000000..22f8952
--- /dev/null
+++ b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream/TimingConstants.h
@@ -0,0 +1,59 @@
1/*
2 * Copyright (C) 2005-2020 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
8
9#pragma once
10
11#include "../../c-api/addon-instance/inputstream/timing_constants.h"
12
13#ifdef __cplusplus
14
15// Unset the on timing_constants.h given defines
16#undef STREAM_TIME_TO_MSEC
17#undef STREAM_SEC_TO_TIME
18#undef STREAM_MSEC_TO_TIME
19
20/// @ingroup cpp_kodi_addon_inputstream_Defs_TimingConstants
21/// @brief Converts a stream time to milliseconds as an integer value.
22///
23/// @param[in] x Stream time
24/// @return Milliseconds
25///
26/// @note Within "C" code this is used as `#define`.
27///
28constexpr int STREAM_TIME_TO_MSEC(double x)
29{
30 return static_cast<int>(x * 1000 / STREAM_TIME_BASE);
31}
32
33/// @ingroup cpp_kodi_addon_inputstream_Defs_TimingConstants
34/// @brief Converts a time in seconds to the used stream time format.
35///
36/// @param[in] x Seconds
37/// @return Stream time
38///
39/// @note Within "C" code this is used as `#define`.
40///
41constexpr double STREAM_SEC_TO_TIME(double x)
42{
43 return x * STREAM_TIME_BASE;
44}
45
46/// @ingroup cpp_kodi_addon_inputstream_Defs_TimingConstants
47/// @brief Converts a time in milliseconds to the used stream time format.
48///
49/// @param[in] x Milliseconds
50/// @return Stream time
51///
52/// @note Within "C" code this is used as `#define`.
53///
54constexpr double STREAM_MSEC_TO_TIME(double x)
55{
56 return x * STREAM_TIME_BASE / 1000;
57}
58
59#endif /* __cplusplus */