Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Compile error with gcc-15 #1739

Open
heitbaum opened this issue Dec 9, 2024 · 12 comments · May be fixed by #1753
Open

[Bug] Compile error with gcc-15 #1739

heitbaum opened this issue Dec 9, 2024 · 12 comments · May be fixed by #1753
Labels
Triage: Needed (managed by bot) issue that was just created and needs someone looking at it

Comments

@heitbaum
Copy link
Contributor

heitbaum commented Dec 9, 2024

Describe the problem

test compiling LE13 with gcc has identified some code compatibility and issues.

Possible fix

No response

Steps to reproduce

Compile with gcc-15-20241124

Debug log

<<< inputstream.adaptive:target seq 381 <<<
BUILD      inputstream.adaptive (target)
    TOOLCHAIN      cmake (auto-detect)
Executing (target): cmake -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE=/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/etc/cmake-x86_64-libreelec-linux-gnu.conf -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.10-Piers
-- Found components for RapidJSON
-- RAPIDJSON_ROOT_DIR  = /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr
-- RAPIDJSON_INCLUDES  = /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include
CMake Deprecation Warning at lib/mpegts/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.


CMake Deprecation Warning at lib/webm_parser/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.


-- ADP_VERSION=22.1.10
-- Addon dependency check ...
--  - Added API usage definition: ADDON_GLOBAL_VERSION_MAIN_USED (Version: "2.0.2", Min. Version: "2.0.0")
--  - Added API usage definition: ADDON_GLOBAL_VERSION_GENERAL_USED (Version: "1.0.5", Min. Version: "1.0.4")
--  - Added API usage definition: ADDON_GLOBAL_VERSION_GUI_USED (Version: "5.15.1", Min. Version: "5.15.0")
--  - Added API usage definition: ADDON_GLOBAL_VERSION_FILESYSTEM_USED (Version: "1.1.9", Min. Version: "1.1.7")
--  - Added API usage definition: ADDON_GLOBAL_VERSION_TOOLS_USED (Version: "1.0.4", Min. Version: "1.0.0")
--  - Added API usage definition: ADDON_INSTANCE_VERSION_INPUTSTREAM_USED (Version: "3.3.0", Min. Version: "3.3.0")
--  - Added API usage definition: ADDON_INSTANCE_VERSION_VIDEOCODEC_USED (Version: "2.1.0", Min. Version: "2.1.0")
-- Configuring done (37.0s)
-- Generating done (0.1s)
-- Build files have been written to: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.10-Piers/.x86_64-libreelec-linux-gnu
Executing (target): ninja
[1/62] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.10-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.10-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.10-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.10-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.10-Piers/src/main.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/AdaptiveTree.h:12,
                 from ../src/Session.h:13,
                 from ../src/main.h:11,
                 from ../src/main.cpp:9:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3547:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3547 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentTemplate>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentTemplate]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3547:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentTemplate, const PLAYLIST::CSegmentTemplate&>'
 3547 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentTemplate>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentTemplate]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3623:7:   required from 'constexpr const bool std::is_nothrow_copy_constructible_v<PLAYLIST::CSegmentTemplate>'
 3623 |     = __is_nothrow_constructible(_Tp, __add_lval_ref_t<const _Tp>);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:31:71:   recursively required from 'constexpr std::optional<PLAYLIST::CSegmentTemplate>::optional(const std::optional<PLAYLIST::CSegmentTemplate>&)'
   31 |   std::optional<CSegmentTemplate> GetSegmentTemplate() const { return m_segmentTemplate; }
      |                                                                       ^~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:31:71:   required from here
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'

Stream manifest file(s)

No response

Additional info

Using gcc15-20241124

Operating system(s)

Linux

Operating system version(s)

LibreELEC LE13 master

InputStream Adaptive version(s)

22.1.10

Kodi version(s)

Piers - 65703fe91c077d8cc11be4ba10221b56cd38d30b

@heitbaum heitbaum added the Triage: Needed (managed by bot) issue that was just created and needs someone looking at it label Dec 9, 2024
@CastagnaIT
Copy link
Collaborator

CastagnaIT commented Dec 10, 2024

there is a release date for gcc 15 or is it still under development?
if it is in wip it seems to me premature to make changes

time ago i introduced this CI mainly for gcc 14
https://github.com/xbmc/inputstream.adaptive/blob/Piers/.github/workflows/build-ubuntu.yml
could be changed to gcc 15 if there is a stable package (with appropriate code fixes)

@heitbaum
Copy link
Contributor Author

there is a release date for gcc 15 or is it still under development? if it is in wip it seems to me premature to make changes

time ago i introduced this CI mainly for gcc 14 https://github.com/xbmc/inputstream.adaptive/blob/Piers/.github/workflows/build-ubuntu.yml could be changed to gcc 15 if there is a stable package (with appropriate code fixes)

I haven’t checked into this exact error yet. But I have been fixing the -std=c23 and bool problems that have surfaced with the use of gcc-15. I would agree not jumping in to make the changes, until we work out if this is a gcc bug, or that it is now adhering being pedantic to a xxx standard. Gcc-15 is now in Stage 3 (which is bug fixing) which is why I have started the process with the LE code base to fix as much of upstream (rather that after gcc-15 is released.)

Most of the patching and porting to gcc-15 for LE is now done, just a couple packages remaining with most of the patches submitted upstream - so that hopefully the fixed packages can be incorporated (apart from the unmaintained legacy packages that have no upstream.)

I didn’t attempt this one yet as my c++ is not that great, but happy to take a look once I complete the rest of the porting.

@CastagnaIT
Copy link
Collaborator

I remind you that kodi 22 must be built with C++ 20, not 23
https://github.com/xbmc/xbmc/blob/0f04ca7184785c0d404687349ed3eb795241d060/docs/CODE_GUIDELINES.md#2-language-standard
this also applies also to binary add-ons

@heitbaum
Copy link
Contributor Author

The error error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself seems to be discussed in length with clang versus gcc in

interestingly it does build with -std=c++17 but not with -std=c++20 using gcc-15

@heitbaum
Copy link
Contributor Author

I remind you that kodi 22 must be built with C++ 20, not 23 https://github.com/xbmc/xbmc/blob/0f04ca7184785c0d404687349ed3eb795241d060/docs/CODE_GUIDELINES.md#2-language-standard this also applies also to binary add-ons

I can confirm that it is building with c++20 for the original error.

@CastagnaIT
Copy link
Collaborator

mmh ok
I tried doing some searches but i don't understand what solution should be there
sound more like a GCC bug

maybe change /src/common/CommonSegAttribs.h
std::optional<CSegmentTemplate> GetSegmentTemplate() const { return m_segmentTemplate; }
with
const std::optional<CSegmentTemplate>& GetSegmentTemplate() const { return m_segmentTemplate; }
could be workaround?

@CastagnaIT
Copy link
Collaborator

@neo1973 perhaps you are better suited to understand this problem than me
do you have any suggestions/workaround for this problem?
do you think this needs to be reported somewhere upstream?

@neo1973
Copy link
Member

neo1973 commented Jan 6, 2025

I tend to think GCC, or rather libstdc++, is correct here. This is a minimal example of the problem:

https://godbolt.org/z/cf551EoTo

As with our code it works with GCC 14.2 but not trunk (~GCC 15). If you remove the comment from either of the static_asserts both versions don't compile. That's even the case if we add an explicit copy or move constructor to S;

If we look into the documentation of std::optional it says the type needs to be move constructible if the optional is constructed (constructor (8) via forwarding reference) or copy constructible if it's assigned ((4) via forwarding reference). Both requirements aren't met as the asserts show. Remove the converting constructor for the optional and all compilers and asserts are happy.

Interesting observation: If you add a move constructor in the Godbolt example then even GCC 14.2 isn't happy anymore. This makes it more likely that the current code is already wrong.

Here the patch that should make GCC 15 happy:

Patch
diff --git a/src/common/SegTemplate.cpp b/src/common/SegTemplate.cpp
index dea1b6ec..f7fdce1c 100644
--- a/src/common/SegTemplate.cpp
+++ b/src/common/SegTemplate.cpp
@@ -19,12 +19,6 @@ using namespace PLAYLIST;
 using namespace UTILS;
 using namespace kodi::tools;
 
-PLAYLIST::CSegmentTemplate::CSegmentTemplate(const std::optional<CSegmentTemplate>& other)
-{
-  if (other.has_value())
-    *this = *other;
-}
-
 std::string PLAYLIST::CSegmentTemplate::GetInitialization() const
 {
   if (!m_initialization.empty())
diff --git a/src/common/SegTemplate.h b/src/common/SegTemplate.h
index ae7b0192..ae86075e 100644
--- a/src/common/SegTemplate.h
+++ b/src/common/SegTemplate.h
@@ -29,7 +29,6 @@ class ATTR_DLL_LOCAL CSegmentTemplate
 {
 public:
   CSegmentTemplate() = default;
-  CSegmentTemplate(const std::optional<CSegmentTemplate>& other);
   ~CSegmentTemplate() = default;
 
   std::string GetInitialization() const;
diff --git a/src/parser/DASHTree.cpp b/src/parser/DASHTree.cpp
index 17cce2bd..4587b231 100644
--- a/src/parser/DASHTree.cpp
+++ b/src/parser/DASHTree.cpp
@@ -583,7 +583,10 @@ void adaptive::CDashTree::ParseTagAdaptationSet(pugi::xml_node nodeAdp, PLAYLIST
   xml_node nodeSegTpl = nodeAdp.child("SegmentTemplate");
   if (nodeSegTpl || period->HasSegmentTemplate())
   {
-    CSegmentTemplate segTemplate{period->GetSegmentTemplate()};
+    CSegmentTemplate segTemplate;
+    auto optSegTemplate = period->GetSegmentTemplate();
+    if (optSegTemplate)
+      segTemplate = std::move(*optSegTemplate);
 
     if (nodeSegTpl)
       ParseSegmentTemplate(nodeSegTpl, segTemplate);
@@ -824,7 +827,10 @@ void adaptive::CDashTree::ParseTagRepresentation(pugi::xml_node nodeRepr,
   xml_node nodeSegTpl = nodeRepr.child("SegmentTemplate");
   if (nodeSegTpl || adpSet->HasSegmentTemplate())
   {
-    CSegmentTemplate segTemplate{adpSet->GetSegmentTemplate()};
+    CSegmentTemplate segTemplate;
+    auto optSegTemplate = adpSet->GetSegmentTemplate();
+    if (optSegTemplate)
+      segTemplate = std::move(*optSegTemplate);
 
     if (nodeSegTpl)
       ParseSegmentTemplate(nodeSegTpl, segTemplate);

@heitbaum
Copy link
Contributor Author

heitbaum commented Jan 6, 2025

I just tested with the patch and here is the output


[14/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/main.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/AdaptiveTree.h:12,
                 from ../src/Session.h:13,
                 from ../src/main.h:11,
                 from ../src/main.cpp:9:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/main.cpp: In member function 'virtual bool CInputStreamAdaptive::GetStreamIds(std::vector<unsigned int>&)':
../src/main.cpp:81:15: warning: unused variable 'cdmId' [-Wunused-variable]
   81 |       uint8_t cdmId(static_cast<uint8_t>(stream->m_adStream.getRepresentation()->m_psshSetPos));
      |               ^~~~~

@heitbaum
Copy link
Contributor Author

heitbaum commented Jan 6, 2025

Full log

BUILD      inputstream.adaptive (target)
    TOOLCHAIN      cmake (auto-detect)
Executing (target): cmake -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE=/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/etc/cmake-x86_64-libreelec-linux-gnu.conf -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers
-- Found components for RapidJSON
-- RAPIDJSON_ROOT_DIR  = /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr
-- RAPIDJSON_INCLUDES  = /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include
CMake Deprecation Warning at lib/mpegts/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.


CMake Deprecation Warning at lib/webm_parser/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
  to tell CMake that the project requires at least <min> but has been updated
  to work with policies introduced by <max> or earlier.


-- ADP_VERSION=22.1.11
-- Addon dependency check ...
--  - Added API usage definition: ADDON_GLOBAL_VERSION_MAIN_USED (Version: "2.0.2", Min. Version: "2.0.0")
--  - Added API usage definition: ADDON_GLOBAL_VERSION_GENERAL_USED (Version: "1.0.5", Min. Version: "1.0.4")
--  - Added API usage definition: ADDON_GLOBAL_VERSION_GUI_USED (Version: "5.15.1", Min. Version: "5.15.0")
--  - Added API usage definition: ADDON_GLOBAL_VERSION_FILESYSTEM_USED (Version: "1.1.9", Min. Version: "1.1.7")
--  - Added API usage definition: ADDON_GLOBAL_VERSION_TOOLS_USED (Version: "1.0.4", Min. Version: "1.0.0")
--  - Added API usage definition: ADDON_INSTANCE_VERSION_INPUTSTREAM_USED (Version: "3.3.0", Min. Version: "3.3.0")
--  - Added API usage definition: ADDON_INSTANCE_VERSION_VIDEOCODEC_USED (Version: "2.1.0", Min. Version: "2.1.0")
-- Configuring done (7.1s)
-- Generating done (0.0s)
-- Build files have been written to: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/.x86_64-libreelec-linux-gnu
Executing (target): ninja 
[1/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/CommonSegAttribs.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/CommonSegAttribs.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/CommonSegAttribs.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/CommonSegAttribs.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/CommonSegAttribs.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/CommonSegAttribs.cpp
In file included from ../src/common/SegTemplate.h:17,
                 from ../src/common/CommonSegAttribs.h:11,
                 from ../src/common/CommonSegAttribs.cpp:9:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/codechandler/TTMLCodecHandler.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/codechandler/TTMLCodecHandler.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/codechandler/TTMLCodecHandler.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/codechandler/TTMLCodecHandler.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/codechandler/TTMLCodecHandler.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/codechandler/TTMLCodecHandler.cpp
In file included from ../src/codechandler/ttml/TTML.h:12,
                 from ../src/codechandler/TTMLCodecHandler.h:12,
                 from ../src/codechandler/TTMLCodecHandler.cpp:9:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[3/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/AdaptationSet.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/AdaptationSet.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/AdaptationSet.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/AdaptationSet.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/AdaptationSet.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/AdaptationSet.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/AdaptationSet.cpp:9:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[4/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/ChooserDefault.cpp.o

FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/ChooserDefault.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/ChooserDefault.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/ChooserDefault.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/ChooserDefault.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/ChooserDefault.cpp
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/format:50,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/bits/chrono_io.h:41,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/chrono:3378,
                 from ../src/common/ChooserDefault.h:13,
                 from ../src/common/ChooserDefault.cpp:9:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[5/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/ChooserManualOSD.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/ChooserManualOSD.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/ChooserManualOSD.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/ChooserManualOSD.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/ChooserManualOSD.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/ChooserManualOSD.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/ChooserManualOSD.cpp:11:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[6/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/ChooserTest.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/ChooserTest.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/ChooserTest.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/ChooserTest.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/ChooserTest.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/ChooserTest.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/ChooserTest.cpp:11:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[7/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/Period.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/Period.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/Period.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/Period.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/Period.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/Period.cpp
In file included from ../src/common/SegTemplate.h:17,
                 from ../src/common/CommonSegAttribs.h:11,
                 from ../src/common/Period.h:11,
                 from ../src/common/Period.cpp:9:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[8/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/ChooserAskQuality.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/ChooserAskQuality.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/ChooserAskQuality.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/ChooserAskQuality.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/ChooserAskQuality.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/ChooserAskQuality.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/ChooserAskQuality.cpp:11:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[9/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/ChooserFixedRes.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/ChooserFixedRes.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/ChooserFixedRes.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/ChooserFixedRes.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/ChooserFixedRes.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/ChooserFixedRes.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/ChooserFixedRes.cpp:11:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[10/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveUtils.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveUtils.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveUtils.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveUtils.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveUtils.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/AdaptiveUtils.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/Representation.h:11,
                 from ../src/common/AdaptiveUtils.cpp:12:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[11/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/Chooser.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/Chooser.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/Chooser.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/Chooser.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/Chooser.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/Chooser.cpp
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/format:50,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/bits/chrono_io.h:41,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/chrono:3378,
                 from ../src/common/ChooserDefault.h:13,
                 from ../src/common/Chooser.cpp:13:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[12/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveTreeFactory.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveTreeFactory.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveTreeFactory.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveTreeFactory.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveTreeFactory.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/AdaptiveTreeFactory.cpp
In file included from ../src/CompKodiProps.h:19,
                 from ../src/common/AdaptiveTreeFactory.cpp:11:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[13/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveTree.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveTree.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveTree.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveTree.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveTree.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/AdaptiveTree.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/AdaptiveTree.h:12,
                 from ../src/common/AdaptiveTree.cpp:9:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[14/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/main.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/AdaptiveTree.h:12,
                 from ../src/Session.h:13,
                 from ../src/main.h:11,
                 from ../src/main.cpp:9:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/main.cpp: In member function 'virtual bool CInputStreamAdaptive::GetStreamIds(std::vector<unsigned int>&)':
../src/main.cpp:81:15: warning: unused variable 'cdmId' [-Wunused-variable]
   81 |       uint8_t cdmId(static_cast<uint8_t>(stream->m_adStream.getRepresentation()->m_psshSetPos));
      |               ^~~~~
[15/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveStream.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveStream.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveStream.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveStream.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveStream.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/common/AdaptiveStream.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/AdaptiveTree.h:12,
                 from ../src/common/AdaptiveStream.cpp:11:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/common/AdaptiveStream.cpp:9:
../src/common/AdaptiveStream.h: In constructor 'adaptive::AdaptiveStream::AdaptiveStream(adaptive::AdaptiveTree*, PLAYLIST::CAdaptationSet*, PLAYLIST::CRepresentation*)':
../src/common/AdaptiveStream.h:286:33: warning: 'adaptive::AdaptiveStream::absolutePTSOffset_' will be initialized after [-Wreorder]
  286 |     uint64_t currentPTSOffset_, absolutePTSOffset_;
      |                                 ^~~~~~~~~~~~~~~~~~
../src/common/AdaptiveStream.h:143:56: warning:   'std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > > adaptive::AdaptiveStream::lastUpdated_' [-Wreorder]
  143 |     std::chrono::time_point<std::chrono::system_clock> lastUpdated_;
      |                                                        ^~~~~~~~~~~~
../src/common/AdaptiveStream.cpp:41:1: warning:   when initialized here [-Wreorder]
   41 | AdaptiveStream::AdaptiveStream(AdaptiveTree* tree,
      | ^~~~~~~~~~~~~~
../src/common/AdaptiveStream.cpp: In member function 'virtual bool adaptive::AdaptiveStream::parseIndexRange(PLAYLIST::CRepresentation*, const std::vector<unsigned char>&)':
../src/common/AdaptiveStream.cpp:454:19: warning: unused variable 'adpSet' [-Wunused-variable]
  454 |   CAdaptationSet* adpSet = getAdaptationSet();
      |                   ^~~~~~
[16/61] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/Session.cpp.o
FAILED: CMakeFiles/inputstream.adaptive.dir/src/Session.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_GUI_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/mpegts -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/lib/cdm -march=x86-64-v3 -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -std=c++20 -fPIC   -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -fvisibility=hidden -MD -MT CMakeFiles/inputstream.adaptive.dir/src/Session.cpp.o -MF CMakeFiles/inputstream.adaptive.dir/src/Session.cpp.o.d -o CMakeFiles/inputstream.adaptive.dir/src/Session.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/build/inputstream.adaptive-22.1.11-Piers/src/Session.cpp
In file included from ../src/common/CommonAttribs.h:17,
                 from ../src/common/AdaptationSet.h:11,
                 from ../src/common/AdaptiveTree.h:12,
                 from ../src/Session.h:13,
                 from ../src/Session.cpp:9:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits: In substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/type_traits:3556:46:   required from 'constexpr const bool std::is_constructible_v<PLAYLIST::CSegmentList, const PLAYLIST::CSegmentList&>'
 3556 |   inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:7:   required by substitution of 'template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<PLAYLIST::CSegmentList>::optional(_Up&&) [with _Up = PLAYLIST::CSegmentList]'
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/common/CommonSegAttribs.h:27:74:   required from here
   27 |   void SetSegmentList(const CSegmentList& segmentList) { m_segmentList = segmentList; }
      |                                                                          ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:874:2:   required by the constraints of 'template<class _Tp> template<class _Up>  requires !(is_same_v<std::optional<_Tp>, typename std::remove_cvref<_It2>::type>) && !(is_same_v<std::in_place_t, typename std::remove_cvref<_It2>::type>) && (is_constructible_v<_Tp, _Up>) && (__not_constructing_bool_from_optional<_Up, typename std::remove_cv< <template-parameter-1-1> >::type>) constexpr std::optional<_Tp>::optional(_Up&&)'
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/15.0.0/optional:871:14: error: satisfaction of atomic constraint 'is_constructible_v<_Tp, _Up> [with _Tp = _Tp; _Up = _Up]' depends on itself
  871 |           && is_constructible_v<_Tp, _Up>
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
FAILURE: s/build inputstream.adaptive during make_target (default)
*********** FAILED COMMAND ***********
ninja ${NINJA_OPTS} ${PKG_MAKE_OPTS_TARGET}
**************************************

@neo1973
Copy link
Member

neo1973 commented Jan 6, 2025

Ahh, I overlooked the same thing for CSegmentList. Please try with this updated patch:

Patch
diff --git a/src/common/SegTemplate.cpp b/src/common/SegTemplate.cpp
index dea1b6ec..f7fdce1c 100644
--- a/src/common/SegTemplate.cpp
+++ b/src/common/SegTemplate.cpp
@@ -19,12 +19,6 @@ using namespace PLAYLIST;
 using namespace UTILS;
 using namespace kodi::tools;
 
-PLAYLIST::CSegmentTemplate::CSegmentTemplate(const std::optional<CSegmentTemplate>& other)
-{
-  if (other.has_value())
-    *this = *other;
-}
-
 std::string PLAYLIST::CSegmentTemplate::GetInitialization() const
 {
   if (!m_initialization.empty())
diff --git a/src/common/SegTemplate.h b/src/common/SegTemplate.h
index ae7b0192..ae86075e 100644
--- a/src/common/SegTemplate.h
+++ b/src/common/SegTemplate.h
@@ -29,7 +29,6 @@ class ATTR_DLL_LOCAL CSegmentTemplate
 {
 public:
   CSegmentTemplate() = default;
-  CSegmentTemplate(const std::optional<CSegmentTemplate>& other);
   ~CSegmentTemplate() = default;
 
   std::string GetInitialization() const;
diff --git a/src/common/SegmentList.cpp b/src/common/SegmentList.cpp
index 25f11451..2d76487a 100644
--- a/src/common/SegmentList.cpp
+++ b/src/common/SegmentList.cpp
@@ -12,12 +12,6 @@
 
 using namespace PLAYLIST;
 
-PLAYLIST::CSegmentList::CSegmentList(const std::optional<CSegmentList>& other)
-{
-  if (other.has_value())
-    *this = *other;
-}
-
 void PLAYLIST::CSegmentList::SetInitRange(std::string_view range)
 {
   if (!ParseRangeRFC(range, m_initRangeBegin, m_initRangeEnd))
diff --git a/src/common/SegmentList.h b/src/common/SegmentList.h
index ebefeb27..3e96c0cd 100644
--- a/src/common/SegmentList.h
+++ b/src/common/SegmentList.h
@@ -29,7 +29,6 @@ class ATTR_DLL_LOCAL CSegmentList
 {
 public:
   CSegmentList() = default;
-  CSegmentList(const std::optional<CSegmentList>& other);
   ~CSegmentList() = default;
 
   uint64_t GetStartNumber() const { return m_startNumber; }
diff --git a/src/parser/DASHTree.cpp b/src/parser/DASHTree.cpp
index 17cce2bd..0549f2c9 100644
--- a/src/parser/DASHTree.cpp
+++ b/src/parser/DASHTree.cpp
@@ -583,7 +583,10 @@ void adaptive::CDashTree::ParseTagAdaptationSet(pugi::xml_node nodeAdp, PLAYLIST
   xml_node nodeSegTpl = nodeAdp.child("SegmentTemplate");
   if (nodeSegTpl || period->HasSegmentTemplate())
   {
-    CSegmentTemplate segTemplate{period->GetSegmentTemplate()};
+    CSegmentTemplate segTemplate;
+    auto optSegTemplate = period->GetSegmentTemplate();
+    if (optSegTemplate)
+      segTemplate = std::move(*optSegTemplate);
 
     if (nodeSegTpl)
       ParseSegmentTemplate(nodeSegTpl, segTemplate);
@@ -595,7 +598,10 @@ void adaptive::CDashTree::ParseTagAdaptationSet(pugi::xml_node nodeAdp, PLAYLIST
   xml_node nodeSeglist = nodeAdp.child("SegmentList");
   if (nodeSeglist)
   {
-    CSegmentList segList{adpSet->GetSegmentList()};
+    CSegmentList segList;
+    auto optSegList = adpSet->GetSegmentList();
+    if (optSegList)
+      segList = std::move(*optSegList);
 
     uint64_t duration;
     if (XML::QueryAttrib(nodeSeglist, "duration", duration))
@@ -824,7 +830,10 @@ void adaptive::CDashTree::ParseTagRepresentation(pugi::xml_node nodeRepr,
   xml_node nodeSegTpl = nodeRepr.child("SegmentTemplate");
   if (nodeSegTpl || adpSet->HasSegmentTemplate())
   {
-    CSegmentTemplate segTemplate{adpSet->GetSegmentTemplate()};
+    CSegmentTemplate segTemplate;
+    auto optSegTemplate = adpSet->GetSegmentTemplate();
+    if (optSegTemplate)
+      segTemplate = std::move(*optSegTemplate);
 
     if (nodeSegTpl)
       ParseSegmentTemplate(nodeSegTpl, segTemplate);
@@ -841,7 +850,10 @@ void adaptive::CDashTree::ParseTagRepresentation(pugi::xml_node nodeRepr,
   xml_node nodeSeglist = nodeRepr.child("SegmentList");
   if (nodeSeglist)
   {
-    CSegmentList segList{adpSet->GetSegmentList()};
+    CSegmentList segList;
+    auto optSegList = adpSet->GetSegmentList();
+    if (optSegList)
+      segList = std::move(*optSegList);
 
     uint64_t duration;
     if (XML::QueryAttrib(nodeSeglist, "duration", duration))

@heitbaum
Copy link
Contributor Author

heitbaum commented Jan 6, 2025

diff --git a/src/common/SegTemplate.cpp b/src/common/SegTemplate.cpp
index dea1b6ec..f7fdce1c 100644
--- a/src/common/SegTemplate.cpp
+++ b/src/common/SegTemplate.cpp
@@ -19,12 +19,6 @@ using namespace PLAYLIST;
 using namespace UTILS;
 using namespace kodi::tools;
 
-PLAYLIST::CSegmentTemplate::CSegmentTemplate(const std::optional<CSegmentTemplate>& other)
-{
-  if (other.has_value())
-    *this = *other;
-}
-
 std::string PLAYLIST::CSegmentTemplate::GetInitialization() const
 {
   if (!m_initialization.empty())
diff --git a/src/common/SegTemplate.h b/src/common/SegTemplate.h
index ae7b0192..ae86075e 100644
--- a/src/common/SegTemplate.h
+++ b/src/common/SegTemplate.h
@@ -29,7 +29,6 @@ class ATTR_DLL_LOCAL CSegmentTemplate
 {
 public:
   CSegmentTemplate() = default;
-  CSegmentTemplate(const std::optional<CSegmentTemplate>& other);
   ~CSegmentTemplate() = default;
 
   std::string GetInitialization() const;
diff --git a/src/common/SegmentList.cpp b/src/common/SegmentList.cpp
index 25f11451..2d76487a 100644
--- a/src/common/SegmentList.cpp
+++ b/src/common/SegmentList.cpp
@@ -12,12 +12,6 @@
 
 using namespace PLAYLIST;
 
-PLAYLIST::CSegmentList::CSegmentList(const std::optional<CSegmentList>& other)
-{
-  if (other.has_value())
-    *this = *other;
-}
-
 void PLAYLIST::CSegmentList::SetInitRange(std::string_view range)
 {
   if (!ParseRangeRFC(range, m_initRangeBegin, m_initRangeEnd))
diff --git a/src/common/SegmentList.h b/src/common/SegmentList.h
index ebefeb27..3e96c0cd 100644
--- a/src/common/SegmentList.h
+++ b/src/common/SegmentList.h
@@ -29,7 +29,6 @@ class ATTR_DLL_LOCAL CSegmentList
 {
 public:
   CSegmentList() = default;
-  CSegmentList(const std::optional<CSegmentList>& other);
   ~CSegmentList() = default;
 
   uint64_t GetStartNumber() const { return m_startNumber; }
diff --git a/src/parser/DASHTree.cpp b/src/parser/DASHTree.cpp
index 17cce2bd..0549f2c9 100644
--- a/src/parser/DASHTree.cpp
+++ b/src/parser/DASHTree.cpp
@@ -583,7 +583,10 @@ void adaptive::CDashTree::ParseTagAdaptationSet(pugi::xml_node nodeAdp, PLAYLIST
   xml_node nodeSegTpl = nodeAdp.child("SegmentTemplate");
   if (nodeSegTpl || period->HasSegmentTemplate())
   {
-    CSegmentTemplate segTemplate{period->GetSegmentTemplate()};
+    CSegmentTemplate segTemplate;
+    auto optSegTemplate = period->GetSegmentTemplate();
+    if (optSegTemplate)
+      segTemplate = std::move(*optSegTemplate);
 
     if (nodeSegTpl)
       ParseSegmentTemplate(nodeSegTpl, segTemplate);
@@ -595,7 +598,10 @@ void adaptive::CDashTree::ParseTagAdaptationSet(pugi::xml_node nodeAdp, PLAYLIST
   xml_node nodeSeglist = nodeAdp.child("SegmentList");
   if (nodeSeglist)
   {
-    CSegmentList segList{adpSet->GetSegmentList()};
+    CSegmentList segList;
+    auto optSegList = adpSet->GetSegmentList();
+    if (optSegList)
+      segList = std::move(*optSegList);
 
     uint64_t duration;
     if (XML::QueryAttrib(nodeSeglist, "duration", duration))
@@ -824,7 +830,10 @@ void adaptive::CDashTree::ParseTagRepresentation(pugi::xml_node nodeRepr,
   xml_node nodeSegTpl = nodeRepr.child("SegmentTemplate");
   if (nodeSegTpl || adpSet->HasSegmentTemplate())
   {
-    CSegmentTemplate segTemplate{adpSet->GetSegmentTemplate()};
+    CSegmentTemplate segTemplate;
+    auto optSegTemplate = adpSet->GetSegmentTemplate();
+    if (optSegTemplate)
+      segTemplate = std::move(*optSegTemplate);
 
     if (nodeSegTpl)
       ParseSegmentTemplate(nodeSegTpl, segTemplate);
@@ -841,7 +850,10 @@ void adaptive::CDashTree::ParseTagRepresentation(pugi::xml_node nodeRepr,
   xml_node nodeSeglist = nodeRepr.child("SegmentList");
   if (nodeSeglist)
   {
-    CSegmentList segList{adpSet->GetSegmentList()};
+    CSegmentList segList;
+    auto optSegList = adpSet->GetSegmentList();
+    if (optSegList)
+      segList = std::move(*optSegList);
 
     uint64_t duration;
     if (XML::QueryAttrib(nodeSeglist, "duration", duration))

Build completed - successfully - without error now.

log below

Executing (target): ninja 
[37/115] Building CXX object lib/webm_parser/CMakeFiles/webm_parser.dir/src/segment_parser.cc.o
In file included from ../lib/webm_parser/include/webm/callback.h:13,
                 from ../lib/webm_parser/src/parser.h:11,
                 from ../lib/webm_parser/src/element_parser.h:15,
                 from ../lib/webm_parser/src/master_parser.h:19,
                 from ../lib/webm_parser/src/segment_parser.h:13,
                 from ../lib/webm_parser/src/segment_parser.cc:8:
In member function 'constexpr webm::ContentEncryption& webm::ContentEncryption::operator=(webm::ContentEncryption&&)',
    inlined from 'void webm::MasterValueParser<T>::PreInit() [with T = webm::ContentEncryption]' at ../lib/webm_parser/src/master_value_parser.h:524:12,
    inlined from 'void webm::MasterValueParser<T>::InitAfterSeek(const webm::Ancestory&, const webm::ElementMetadata&) [with T = webm::ContentEncryption]' at ../lib/webm_parser/src/master_value_parser.h:81:12:
../lib/webm_parser/include/webm/./dom_types.h:1289:8: warning: '<anonymous>' is used uninitialized [-Wuninitialized]
 1289 | struct ContentEncryption {
      |        ^~~~~~~~~~~~~~~~~
In file included from ../lib/webm_parser/src/chapter_display_parser.h:12,
                 from ../lib/webm_parser/src/chapter_atom_parser.h:12,
                 from ../lib/webm_parser/src/edition_entry_parser.h:11,
                 from ../lib/webm_parser/src/chapters_parser.h:11,
                 from ../lib/webm_parser/src/segment_parser.cc:10:
../lib/webm_parser/src/master_value_parser.h: In member function 'void webm::MasterValueParser<T>::InitAfterSeek(const webm::Ancestory&, const webm::ElementMetadata&) [with T = webm::ContentEncryption]':
../lib/webm_parser/src/master_value_parser.h:524:12: note: '<anonymous>' declared here
  524 |     value_ = {};
      |     ~~~~~~~^~~~
In member function 'constexpr webm::ContentEncoding& webm::ContentEncoding::operator=(webm::ContentEncoding&&)',
    inlined from 'void webm::MasterValueParser<T>::PreInit() [with T = webm::ContentEncoding]' at ../lib/webm_parser/src/master_value_parser.h:524:12,
    inlined from 'void webm::MasterValueParser<T>::InitAfterSeek(const webm::Ancestory&, const webm::ElementMetadata&) [with T = webm::ContentEncoding]' at ../lib/webm_parser/src/master_value_parser.h:81:12:
../lib/webm_parser/include/webm/./dom_types.h:1332:8: warning: '<anonymous>' is used uninitialized [-Wuninitialized]
 1332 | struct ContentEncoding {
      |        ^~~~~~~~~~~~~~~
../lib/webm_parser/src/master_value_parser.h: In member function 'void webm::MasterValueParser<T>::InitAfterSeek(const webm::Ancestory&, const webm::ElementMetadata&) [with T = webm::ContentEncoding]':
../lib/webm_parser/src/master_value_parser.h:524:12: note: '<anonymous>' declared here
  524 |     value_ = {};
      |     ~~~~~~~^~~~
In member function 'constexpr webm::BlockMore& webm::BlockMore::operator=(webm::BlockMore&&)',
    inlined from 'void webm::MasterValueParser<T>::PreInit() [with T = webm::BlockMore]' at ../lib/webm_parser/src/master_value_parser.h:524:12,
    inlined from 'void webm::MasterValueParser<T>::InitAfterSeek(const webm::Ancestory&, const webm::ElementMetadata&) [with T = webm::BlockMore]' at ../lib/webm_parser/src/master_value_parser.h:81:12:
../lib/webm_parser/include/webm/./dom_types.h:66:8: warning: '<anonymous>' is used uninitialized [-Wuninitialized]
   66 | struct BlockMore {
      |        ^~~~~~~~~
../lib/webm_parser/src/master_value_parser.h: In member function 'void webm::MasterValueParser<T>::InitAfterSeek(const webm::Ancestory&, const webm::ElementMetadata&) [with T = webm::BlockMore]':
../lib/webm_parser/src/master_value_parser.h:524:12: note: '<anonymous>' declared here
  524 |     value_ = {};
      |     ~~~~~~~^~~~
In member function 'constexpr webm::ContentEncryption& webm::ContentEncryption::operator=(webm::ContentEncryption&&)',
    inlined from 'void webm::MasterValueParser<T>::PreInit() [with T = webm::ContentEncryption]' at ../lib/webm_parser/src/master_value_parser.h:524:12,
    inlined from 'webm::Status webm::MasterValueParser<T>::Init(const webm::ElementMetadata&, uint64_t) [with T = webm::ContentEncryption]' at ../lib/webm_parser/src/master_value_parser.h:69:12:
../lib/webm_parser/include/webm/./dom_types.h:1289:8: warning: '<anonymous>' is used uninitialized [-Wuninitialized]
 1289 | struct ContentEncryption {
      |        ^~~~~~~~~~~~~~~~~
../lib/webm_parser/src/master_value_parser.h: In member function 'webm::Status webm::MasterValueParser<T>::Init(const webm::ElementMetadata&, uint64_t) [with T = webm::ContentEncryption]':
../lib/webm_parser/src/master_value_parser.h:524:12: note: '<anonymous>' declared here
  524 |     value_ = {};
      |     ~~~~~~~^~~~
In member function 'constexpr webm::ContentEncoding& webm::ContentEncoding::operator=(webm::ContentEncoding&&)',
    inlined from 'void webm::MasterValueParser<T>::PreInit() [with T = webm::ContentEncoding]' at ../lib/webm_parser/src/master_value_parser.h:524:12,
    inlined from 'webm::Status webm::MasterValueParser<T>::Init(const webm::ElementMetadata&, uint64_t) [with T = webm::ContentEncoding]' at ../lib/webm_parser/src/master_value_parser.h:69:12:
../lib/webm_parser/include/webm/./dom_types.h:1332:8: warning: '<anonymous>' is used uninitialized [-Wuninitialized]
 1332 | struct ContentEncoding {
      |        ^~~~~~~~~~~~~~~
../lib/webm_parser/src/master_value_parser.h: In member function 'webm::Status webm::MasterValueParser<T>::Init(const webm::ElementMetadata&, uint64_t) [with T = webm::ContentEncoding]':
../lib/webm_parser/src/master_value_parser.h:524:12: note: '<anonymous>' declared here
  524 |     value_ = {};
      |     ~~~~~~~^~~~
In member function 'constexpr webm::BlockMore& webm::BlockMore::operator=(webm::BlockMore&&)',
    inlined from 'void webm::MasterValueParser<T>::PreInit() [with T = webm::BlockMore]' at ../lib/webm_parser/src/master_value_parser.h:524:12,
    inlined from 'webm::Status webm::MasterValueParser<T>::Init(const webm::ElementMetadata&, uint64_t) [with T = webm::BlockMore]' at ../lib/webm_parser/src/master_value_parser.h:69:12:
../lib/webm_parser/include/webm/./dom_types.h:66:8: warning: '<anonymous>' is used uninitialized [-Wuninitialized]
   66 | struct BlockMore {
      |        ^~~~~~~~~
../lib/webm_parser/src/master_value_parser.h: In member function 'webm::Status webm::MasterValueParser<T>::Init(const webm::ElementMetadata&, uint64_t) [with T = webm::BlockMore]':
../lib/webm_parser/src/master_value_parser.h:524:12: note: '<anonymous>' declared here
  524 |     value_ = {};
      |     ~~~~~~~^~~~
In member function 'constexpr webm::Video& webm::Video::operator=(webm::Video&&)',
    inlined from 'void webm::MasterValueParser<T>::PreInit() [with T = webm::Video]' at ../lib/webm_parser/src/master_value_parser.h:524:12:
../lib/webm_parser/include/webm/./dom_types.h:1122:8: warning: '<anonymous>' is used uninitialized [-Wuninitialized]
 1122 | struct Video {
      |        ^~~~~
../lib/webm_parser/src/master_value_parser.h: In member function 'void webm::MasterValueParser<T>::PreInit() [with T = webm::Video]':
../lib/webm_parser/src/master_value_parser.h:524:12: note: '<anonymous>' declared here
  524 |     value_ = {};
      |     ~~~~~~~^~~~
[42/115] Building CXX object lib/cdm/CMakeFiles/cdm_library.dir/cdm/media/cdm/cdm_adapter.cc.o
../lib/cdm/cdm/media/cdm/cdm_adapter.cc: In member function 'cdm::Status media::CdmAdapter::Decrypt(const cdm::InputBuffer_2&, cdm::DecryptedBlock*)':
../lib/cdm/cdm/media/cdm/cdm_adapter.cc:452:10: warning: 'ret' may be used uninitialized [-Wmaybe-uninitialized]
  452 |   return ret;
      |          ^~~
../lib/cdm/cdm/media/cdm/cdm_adapter.cc:439:15: note: 'ret' was declared here
  439 |   cdm::Status ret;
      |               ^~~
[43/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/codechandler/AVCCodecHandler.cpp.o
In file included from ../src/codechandler/AVCCodecHandler.cpp:9:
../src/codechandler/AVCCodecHandler.h: In constructor 'AVCCodecHandler::AVCCodecHandler(AP4_SampleDescription*)':
../src/codechandler/AVCCodecHandler.h:26:8: warning: 'AVCCodecHandler::m_needSliceInfo' will be initialized after [-Wreorder]
   26 |   bool m_needSliceInfo;
      |        ^~~~~~~~~~~~~~~
../src/codechandler/AVCCodecHandler.h:25:23: warning:   'STREAMCODEC_PROFILE AVCCodecHandler::m_codecProfile' [-Wreorder]
   25 |   STREAMCODEC_PROFILE m_codecProfile;
      |                       ^~~~~~~~~~~~~~
../src/codechandler/AVCCodecHandler.cpp:15:1: warning:   when initialized here [-Wreorder]
   15 | AVCCodecHandler::AVCCodecHandler(AP4_SampleDescription* sd)
      | ^~~~~~~~~~~~~~~
[46/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/codechandler/CodecHandler.cpp.o
In file included from ../src/codechandler/CodecHandler.h:17,
                 from ../src/codechandler/CodecHandler.cpp:9:
In member function 'void kodi::addon::InputstreamInfo::SetCodecName(const std::string&)',
    inlined from 'bool CodecHandler::UpdateInfoCodecName(kodi::addon::InputstreamInfo&, const char*)' at ../src/codechandler/CodecHandler.cpp:49:22:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:608:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  608 |     strncpy(m_cStructure->m_codecName, codecName.c_str(), INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In member function 'void kodi::addon::InputstreamInfo::SetCodecInternalName(const std::string&)',
    inlined from 'bool CodecHandler::UpdateInfoCodecName(kodi::addon::InputstreamInfo&, const char*)' at ../src/codechandler/CodecHandler.cpp:57:30:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:619:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  619 |     strncpy(m_cStructure->m_codecInternalName, codecName.c_str(),
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |             INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[66/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/common/AdaptiveStream.cpp.o
In file included from ../src/common/AdaptiveStream.cpp:9:
../src/common/AdaptiveStream.h: In constructor 'adaptive::AdaptiveStream::AdaptiveStream(adaptive::AdaptiveTree*, PLAYLIST::CAdaptationSet*, PLAYLIST::CRepresentation*)':
../src/common/AdaptiveStream.h:286:33: warning: 'adaptive::AdaptiveStream::absolutePTSOffset_' will be initialized after [-Wreorder]
  286 |     uint64_t currentPTSOffset_, absolutePTSOffset_;
      |                                 ^~~~~~~~~~~~~~~~~~
../src/common/AdaptiveStream.h:143:56: warning:   'std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > > adaptive::AdaptiveStream::lastUpdated_' [-Wreorder]
  143 |     std::chrono::time_point<std::chrono::system_clock> lastUpdated_;
      |                                                        ^~~~~~~~~~~~
../src/common/AdaptiveStream.cpp:41:1: warning:   when initialized here [-Wreorder]
   41 | AdaptiveStream::AdaptiveStream(AdaptiveTree* tree,
      | ^~~~~~~~~~~~~~
../src/common/AdaptiveStream.cpp: In member function 'virtual bool adaptive::AdaptiveStream::parseIndexRange(PLAYLIST::CRepresentation*, const std::vector<unsigned char>&)':
../src/common/AdaptiveStream.cpp:454:19: warning: unused variable 'adpSet' [-Wunused-variable]
  454 |   CAdaptationSet* adpSet = getAdaptationSet();
      |                   ^~~~~~
[69/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/main.cpp.o
../src/main.cpp: In member function 'virtual bool CInputStreamAdaptive::GetStreamIds(std::vector<unsigned int>&)':
../src/main.cpp:81:15: warning: unused variable 'cdmId' [-Wunused-variable]
   81 |       uint8_t cdmId(static_cast<uint8_t>(stream->m_adStream.getRepresentation()->m_psshSetPos));
      |               ^~~~~
../src/main.cpp:62:19: warning: variable 'iids' set but not used [-Wunused-but-set-variable]
   62 |   INPUTSTREAM_IDS iids;
      |                   ^~~~
[72/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/Session.cpp.o
In file included from ../src/samplereader/SampleReader.h:19,
                 from ../src/common/AdaptiveStream.h:13,
                 from ../src/Stream.h:12,
                 from ../src/Session.h:11,
                 from ../src/Session.cpp:9:
In member function 'void kodi::addon::InputstreamInfo::SetCodecName(const std::string&)',
    inlined from 'void SESSION::CSession::UpdateStream(SESSION::CStream&)' at ../src/Session.cpp:838:33:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:608:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  608 |     strncpy(m_cStructure->m_codecName, codecName.c_str(), INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In member function 'void kodi::addon::InputstreamInfo::SetCodecName(const std::string&)',
    inlined from 'void SESSION::CSession::UpdateStream(SESSION::CStream&)' at ../src/Session.cpp:830:33:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:608:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  608 |     strncpy(m_cStructure->m_codecName, codecName.c_str(), INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In member function 'void kodi::addon::InputstreamInfo::SetCodecName(const std::string&)',
    inlined from 'void SESSION::CSession::UpdateStream(SESSION::CStream&)' at ../src/Session.cpp:803:33:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:608:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  608 |     strncpy(m_cStructure->m_codecName, codecName.c_str(), INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In member function 'void kodi::addon::InputstreamInfo::SetCodecName(const std::string&)',
    inlined from 'void SESSION::CSession::UpdateStream(SESSION::CStream&)' at ../src/Session.cpp:776:33:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:608:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  608 |     strncpy(m_cStructure->m_codecName, codecName.c_str(), INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In member function 'void kodi::addon::InputstreamInfo::SetCodecName(const std::string&)',
    inlined from 'void SESSION::CSession::UpdateStream(SESSION::CStream&)' at ../src/Session.cpp:770:33:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:608:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  608 |     strncpy(m_cStructure->m_codecName, codecName.c_str(), INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In member function 'void kodi::addon::InputstreamInfo::SetCodecInternalName(const std::string&)',
    inlined from 'void SESSION::CSession::UpdateStream(SESSION::CStream&)' at ../src/Session.cpp:861:37:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:619:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  619 |     strncpy(m_cStructure->m_codecInternalName, codecName.c_str(),
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  620 |             INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In member function 'void kodi::addon::InputstreamInfo::SetName(const std::string&)',
    inlined from 'void SESSION::CSession::AddStream(PLAYLIST::CAdaptationSet*, PLAYLIST::CRepresentation*, bool, uint32_t, std::string_view)' at ../src/Session.cpp:634:24:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:591:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 256 equals destination size [-Wstringop-truncation]
  591 |     strncpy(m_cStructure->m_name, name.c_str(), INPUTSTREAM_MAX_STRING_NAME_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In member function 'void kodi::addon::InputstreamInfo::SetLanguage(const std::string&)',
    inlined from 'void SESSION::CSession::AddStream(PLAYLIST::CAdaptationSet*, PLAYLIST::CRepresentation*, bool, uint32_t, std::string_view)' at ../src/Session.cpp:681:28:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:708:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 64 equals destination size [-Wstringop-truncation]
  708 |     strncpy(m_cStructure->m_language, language.c_str(), INPUTSTREAM_MAX_STRING_LANGUAGE_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[79/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/decrypters/Helpers.cpp.o
../src/decrypters/Helpers.cpp: In member function 'bool DRM::PSSH::Parse(const std::vector<unsigned char>&)':
../src/decrypters/Helpers.cpp:280:18: warning: unused variable 'boxSize' [-Wunused-variable]
  280 |   const uint32_t boxSize = charParser.ReadNextUnsignedInt();
      |                  ^~~~~~~
[83/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/decrypters/widevine/WVCencSingleSampleDecrypter.cpp.o
In file included from ../src/decrypters/widevine/WVCencSingleSampleDecrypter.cpp:9:
../src/decrypters/widevine/WVCencSingleSampleDecrypter.h: In constructor 'CWVCencSingleSampleDecrypter::CWVCencSingleSampleDecrypter(IWVCdmAdapter<media::CdmAdapter>*, const std::vector<unsigned char>&, const std::vector<unsigned char>&, bool, CryptoMode)':
../src/decrypters/widevine/WVCencSingleSampleDecrypter.h:143:8: warning: 'CWVCencSingleSampleDecrypter::m_isDrained' will be initialized after [-Wreorder]
  143 |   bool m_isDrained;
      |        ^~~~~~~~~~~
../src/decrypters/widevine/WVCencSingleSampleDecrypter.h:97:24: warning:   'std::vector<unsigned char> CWVCencSingleSampleDecrypter::m_defaultKeyId' [-Wreorder]
   97 |   std::vector<uint8_t> m_defaultKeyId;
      |                        ^~~~~~~~~~~~~~
../src/decrypters/widevine/WVCencSingleSampleDecrypter.cpp:43:1: warning:   when initialized here [-Wreorder]
   43 | CWVCencSingleSampleDecrypter::CWVCencSingleSampleDecrypter(
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
[88/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/demuxers/ADTSReader.cpp.o
In file included from ../src/demuxers/ADTSReader.h:14,
                 from ../src/demuxers/ADTSReader.cpp:9:
In member function 'void kodi::addon::InputstreamInfo::SetCodecName(const std::string&)',
    inlined from 'bool ADTSReader::GetInformation(kodi::addon::InputstreamInfo&)' at ../src/demuxers/ADTSReader.cpp:393:22:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:608:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  608 |     strncpy(m_cStructure->m_codecName, codecName.c_str(), INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[90/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/demuxers/TSReader.cpp.o
../src/demuxers/TSReader.cpp:24:6: warning: 'void {anonymous}::DebugLog(int, char*)' defined but not used [-Wunused-function]
   24 | void DebugLog(int level, char* msg)
      |      ^~~~~~~~
In file included from ../src/demuxers/TSReader.h:17,
                 from ../src/demuxers/TSReader.cpp:9:
In member function 'void kodi::addon::InputstreamInfo::SetLanguage(const std::string&)',
    inlined from 'bool TSReader::GetInformation(kodi::addon::InputstreamInfo&)' at ../src/demuxers/TSReader.cpp:151:25:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:708:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 64 equals destination size [-Wstringop-truncation]
  708 |     strncpy(m_cStructure->m_language, language.c_str(), INPUTSTREAM_MAX_STRING_LANGUAGE_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In member function 'void kodi::addon::InputstreamInfo::SetCodecName(const std::string&)',
    inlined from 'bool TSReader::GetInformation(kodi::addon::InputstreamInfo&)' at ../src/demuxers/TSReader.cpp:171:24:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:608:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  608 |     strncpy(m_cStructure->m_codecName, codecName.c_str(), INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[91/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/demuxers/WebmReader.cpp.o
In file included from ../src/demuxers/WebmReader.h:17,
                 from ../src/demuxers/WebmReader.cpp:9:
In member function 'void kodi::addon::InputstreamInfo::SetCodecName(const std::string&)',
    inlined from 'bool WebmReader::GetInformation(kodi::addon::InputstreamInfo&)' at ../src/demuxers/WebmReader.cpp:139:24:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi/addon-instance/Inputstream.h:608:12: warning: 'char* strncpy(char*, const char*, size_t)' specified bound 32 equals destination size [-Wstringop-truncation]
  608 |     strncpy(m_cStructure->m_codecName, codecName.c_str(), INPUTSTREAM_MAX_STRING_CODEC_SIZE);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[92/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/samplereader/FragmentedSampleReader.cpp.o
../src/samplereader/FragmentedSampleReader.cpp: In member function 'void CFragmentedSampleReader::ParseTrafTfrf(AP4_UuidAtom*)':
../src/samplereader/FragmentedSampleReader.cpp:558:12: warning: unused variable 'flags' [-Wunused-variable]
  558 |   uint32_t flags = parser.ReadNextUnsignedInt24();
      |            ^~~~~
[105/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/parser/DASHTree.cpp.o
../src/parser/DASHTree.cpp:49:13: warning: 'std::string {anonymous}::ReplacePlaceHolders(std::string, std::string_view, uint32_t)' defined but not used [-Wunused-function]
   49 | std::string ReplacePlaceHolders(std::string str, const std::string_view id, uint32_t bandwidth)
      |             ^~~~~~~~~~~~~~~~~~~
[110/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/parser/HLSTree.cpp.o
../src/parser/HLSTree.cpp: In member function 'void adaptive::CHLSTree::FixDiscSequence(std::stringstream&, uint32_t&)':
../src/parser/HLSTree.cpp:365:18: warning: unused variable 'period' [-Wunused-variable]
  365 |       for (auto& period : m_periods)
      |                  ^~~~~~
../src/parser/HLSTree.cpp: In member function 'adaptive::CHLSTree::ParseStatus adaptive::CHLSTree::ParseChildManifest(const std::string&, std::string_view, PLAYLIST::CPeriod*, PLAYLIST::CAdaptationSet*, PLAYLIST::CRepresentation*)':
../src/parser/HLSTree.cpp:481:12: warning: unused variable 'lastSegNumber' [-Wunused-variable]
  481 |   uint64_t lastSegNumber{SEGMENT_NO_NUMBER}; // The segment number of last segment in the previous manifest
      |            ^~~~~~~~~~~~~
../src/parser/HLSTree.cpp:482:12: warning: unused variable 'lastSegStartPts' [-Wunused-variable]
  482 |   uint64_t lastSegStartPts{NO_PTS_VALUE}; // The start PTS of last segment in the previous manifest
      |            ^~~~~~~~~~~~~~~
[111/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/utils/Utils.cpp.o
../src/utils/Utils.cpp: In function 'std::vector<unsigned char> UTILS::HvccToAnnexb(const std::vector<unsigned char>&)':
../src/utils/Utils.cpp:44:13: warning: unused variable 'nalType' [-Wunused-variable]
   44 |     uint8_t nalType = (*data++ << 1);
      |             ^~~~~~~
[112/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/utils/StringUtils.cpp.o
../src/utils/StringUtils.cpp: In function 'bool UTILS::STRING::ToHexBytes(const std::string&, std::vector<unsigned char>&)':
../src/utils/StringUtils.cpp:286:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  286 |   for (int i = 0; i < str.length(); i += 2)
      |                   ~~^~~~~~~~~~~~~~
[113/115] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/utils/XMLUtils.cpp.o
../src/utils/XMLUtils.cpp: In function 'size_t UTILS::XML::CountChilds(pugi::xml_node, std::string_view)':
../src/utils/XMLUtils.cpp:102:17: warning: variable 'nodeChild' set but not used [-Wunused-but-set-variable]
  102 |   for (xml_node nodeChild : node.children(childTagName.data()))
      |                 ^~~~~~~~~
[115/115] Creating library symlink inputstream.adaptive.so.22.0 inputstream.adaptive.so

@neo1973 neo1973 linked a pull request Jan 6, 2025 that will close this issue
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Triage: Needed (managed by bot) issue that was just created and needs someone looking at it
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants