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

inputstream.adaptive: add bento4 dependancy #5975

Merged
merged 2 commits into from Dec 24, 2021
Merged

Conversation

heitbaum
Copy link
Contributor

@heitbaum heitbaum commented Dec 12, 2021

  • inputstream.adaptive: add bento4 dependancy
  • bento4: initial package

Potential improvements:

  • The unpack of inputstream.adaptive happens first (due to the dependancy on bento4 in in TARGET)- but a DEPEND-ancy check should be put in place to ensure the unpack inputstream.adaptive occurs first in the bento4/package.mk file - making the patches available to bento4.
  • Also, bento4 probably should be 2 packages (one with the Kodi patches) that depends to the “standard one”??

Thoughts anyone?

@heitbaum
Copy link
Contributor Author

heitbaum commented Dec 12, 2021

Given xbmc/inputstream.adaptive@70625e7 - bento4 is now not included in the inputstream.adaptive Source bundle. The compile of bento4 1.6.0-639 with the cmake install patch builds and installs fine. But it DOES NOT WORK WITH inputstream.adaptive due to the depend patches. Suggestions on this cross-dependancy? Do we unpack inputstream.adaptive and then post patch bento4?

@SupervisedThinking thanks for picking this up.

@heitbaum
Copy link
Contributor Author

heitbaum commented Dec 12, 2021

�[1;33mBUILD�[0m      inputstream.adaptive �[1;37m(target)�[0m
    �[1;35mTOOLCHAIN�[0m      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-11.0-devel/toolchain/etc/cmake-x86_64-libreelec-linux-gnu.conf -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=MinSizeRel /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus
-- ADP_VERSION=20.0.3
-- Addon dependency check ...
--  - Added API usage definition: ADDON_GLOBAL_VERSION_MAIN_USED (Version: "1.3.0", Min. Version: "1.2.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_FILESYSTEM_USED (Version: "1.1.6", Min. Version: "1.1.0")
--  - 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.0.2", Min. Version: "3.0.1")
--  - Added API usage definition: ADDON_INSTANCE_VERSION_VIDEOCODEC_USED (Version: "2.0.2", Min. Version: "2.0.1")
-- Configuring done
-- Generating done
-- Build files have been written to: /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/.x86_64-libreelec-linux-gnu
Executing (target): ninja 
[1/8] Linking CXX static library lib/webm_parser/libwebm_parser.a
[2/8] Building CXX object wvdecrypter/CMakeFiles/ssd_wv.dir/cdm/base/native_library_posix.cc.o
[3/8] Building CXX object wvdecrypter/CMakeFiles/ssd_wv.dir/cdm/media/cdm/cdm_adapter.cc.o
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/cdm/media/cdm/cdm_adapter.cc: In member function 'cdm::Status media::CdmAdapter::Decrypt(const cdm::InputBuffer_2&, cdm::DecryptedBlock*)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/cdm/media/cdm/cdm_adapter.cc:404:10: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
  404 |   return ret;
      |          ^~~
[4/8] Building CXX object wvdecrypter/CMakeFiles/ssd_wv.dir/wvdecrypter.cpp.o
FAILED: wvdecrypter/CMakeFiles/ssd_wv.dir/wvdecrypter.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DBUILD_KODI_ADDON -DUNICODE -DWIDEVINECDMFILENAME=\"libwidevinecdm.so\" -D_UNICODE -D__STDC_FORMAT_MACROS -Dssd_wv_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/lib/webm_parser/include -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/cdm -march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -DDUMMYOPT -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 -std=c++14 -MD -MT wvdecrypter/CMakeFiles/ssd_wv.dir/wvdecrypter.cpp.o -MF wvdecrypter/CMakeFiles/ssd_wv.dir/wvdecrypter.cpp.o.d -o wvdecrypter/CMakeFiles/ssd_wv.dir/wvdecrypter.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/wvdecrypter.cpp
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/wvdecrypter.cpp:176:23: error: 'virtual const char* WV_CencSingleSampleDecrypter::GetSessionId()' marked 'override', but does not override
  176 |   virtual const char *GetSessionId() override;
      |                       ^~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/wvdecrypter.cpp:193:22: error: 'virtual AP4_Result WV_CencSingleSampleDecrypter::SetFragmentInfo(AP4_UI32, const AP4_UI08*, AP4_UI08, AP4_DataBuffer&, AP4_UI32)' marked 'override', but does not override
  193 |   virtual AP4_Result SetFragmentInfo(AP4_UI32 pool_id, const AP4_UI08 *key, const AP4_UI08 nal_length_size,
      |                      ^~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/wvdecrypter.cpp:195:20: error: 'virtual AP4_UI32 WV_CencSingleSampleDecrypter::AddPool()' marked 'override', but does not override
  195 |   virtual AP4_UI32 AddPool() override;
      |                    ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/wvdecrypter.cpp:196:16: error: 'virtual void WV_CencSingleSampleDecrypter::RemovePool(AP4_UI32)' marked 'override', but does not override
  196 |   virtual void RemovePool(AP4_UI32 poolid) override;
      |                ^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/wvdecrypter.cpp:199:22: error: 'virtual AP4_Result WV_CencSingleSampleDecrypter::DecryptSampleData(AP4_UI32, AP4_DataBuffer&, AP4_DataBuffer&, const AP4_UI08*, unsigned int, const AP4_UI16*, const AP4_UI32*)' marked 'override', but does not override
  199 |   virtual AP4_Result DecryptSampleData(AP4_UI32 pool_id,
      |                      ^~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/wvdecrypter.cpp: In constructor 'WV_CencSingleSampleDecrypter::WV_CencSingleSampleDecrypter(WV_DRM&, AP4_DataBuffer&, const uint8_t*, bool)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/wvdecrypter/wvdecrypter.cpp:422:3: error: 'SetParentIsOwner' was not declared in this scope
  422 |   SetParentIsOwner(false);
      |   ^~~~~~~~~~~~~~~~
[5/8] 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-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ -DADDON_GLOBAL_VERSION_FILESYSTEM_USED -DADDON_GLOBAL_VERSION_GENERAL_USED -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_GLOBAL_VERSION_TOOLS_USED -DADDON_INSTANCE_VERSION_INPUTSTREAM_USED -DADDON_INSTANCE_VERSION_VIDEOCODEC_USED -DBUILD_KODI_ADDON -DUNICODE -D_UNICODE -D__STDC_FORMAT_MACROS -Dinputstream_adaptive_EXPORTS -I/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/lib/webm_parser/include -march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -DDUMMYOPT -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 -std=c++14 -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-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:25,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/AdaptiveTree.h:468:32: warning: conversion from 'long unsigned int' to 'uint32_t' {aka 'unsigned int'} changes value from '18446744073709551615' to '4294967295' [-Woverflow]
  468 |   uint32_t initial_sequence_ = ~0UL;
      |                                ^~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/AdaptiveTree.h: In constructor 'adaptive::AdaptiveTree::Representation::Representation()':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/AdaptiveTree.h:215:14: warning: 'adaptive::AdaptiveTree::Representation::ptsOffset_' will be initialized after [-Wreorder]
  215 |     uint64_t ptsOffset_;
      |              ^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/AdaptiveTree.h:213:14: warning:   'uint64_t adaptive::AdaptiveTree::Representation::nextPts_' [-Wreorder]
  213 |     uint64_t nextPts_;
      |              ^~~~~~~~
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:25,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/AdaptiveTree.h:156:5: warning:   when initialized here [-Wreorder]
  156 |     Representation() :bandwidth_(0), samplingRate_(0), width_(0), height_(0), fpsRate_(0), fpsScale_(1), aspect_(0.0f),
      |     ^~~~~~~~~~~~~~
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:25,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/AdaptiveTree.h: In constructor 'adaptive::AdaptiveTree::AdaptationSet::AdaptationSet()':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/AdaptiveTree.h:308:21: warning: 'adaptive::AdaptiveTree::AdaptationSet::min_rep_' will be initialized after [-Wreorder]
  308 |     Representation* min_rep_;
      |                     ^~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/AdaptiveTree.h:296:18: warning:   'unsigned int adaptive::AdaptiveTree::AdaptationSet::startNumber_' [-Wreorder]
  296 |     unsigned int startNumber_;
      |                  ^~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/AdaptiveTree.h:289:5: warning:   when initialized here [-Wreorder]
  289 |     AdaptationSet() :type_(NOTYPE), timescale_(0), duration_(0), startPTS_(0), best_rep_(0), min_rep_(0), startNumber_(1), impaired_(false), original_(false), default_(false), forced_(false) { language_ = "unk"; };
      |     ^~~~~~~~~~~~~
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:27,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/RepresentationChooser.h: At global scope:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/RepresentationChooser.h:5:8: warning: 'DefaultRepresentationChooser' declared with greater visibility than the type of its field 'DefaultRepresentationChooser::best_rep_' [-Wattributes]
    5 | struct DefaultRepresentationChooser : adaptive::AdaptiveTree::RepresentationChooser
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/RepresentationChooser.h:5:8: warning: 'DefaultRepresentationChooser' declared with greater visibility than the type of its field 'DefaultRepresentationChooser::min_rep_' [-Wattributes]
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/common/RepresentationChooser.h:5:8: warning: 'DefaultRepresentationChooser' declared with greater visibility than its base 'adaptive::AdaptiveTree::RepresentationChooser' [-Wattributes]
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'virtual bool KodiAdaptiveStream::parseIndexRange(adaptive::AdaptiveTree::Representation*, const string&)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:415:82: error: 'virtual AP4_MemoryByteStream::~AP4_MemoryByteStream()' is protected within this context
  415 |   AP4_MemoryByteStream byteStream((const AP4_Byte*)(buffer.data()), buffer.size());
      |                                                                                  ^
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4FileByteStream.h:33,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:234,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4ByteStream.h:199:13: note: declared protected here
  199 |     virtual ~AP4_MemoryByteStream();
      |             ^
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'virtual bool CodecHandler::GetInformation(kodi::addon::InputstreamInfo&)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:568:19: error: 'class AP4_UnknownUuidAtom' has no member named 'GetData'
  568 |             nxfr->GetData().GetDataSize() == 10)
      |                   ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:570:36: error: 'class AP4_UnknownUuidAtom' has no member named 'GetData'
  570 |           AP4_UI16 fpsRate = nxfr->GetData().GetData()[7] | nxfr->GetData().GetData()[6] << 8;
      |                                    ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:570:67: error: 'class AP4_UnknownUuidAtom' has no member named 'GetData'
  570 |           AP4_UI16 fpsRate = nxfr->GetData().GetData()[7] | nxfr->GetData().GetData()[6] << 8;
      |                                                                   ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:571:37: error: 'class AP4_UnknownUuidAtom' has no member named 'GetData'
  571 |           AP4_UI16 fpsScale = nxfr->GetData().GetData()[9] | nxfr->GetData().GetData()[8] << 8;
      |                                     ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:571:68: error: 'class AP4_UnknownUuidAtom' has no member named 'GetData'
  571 |           AP4_UI16 fpsScale = nxfr->GetData().GetData()[9] | nxfr->GetData().GetData()[8] << 8;
      |                                                                    ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'virtual void AVCCodecHandler::UpdatePPSId(const AP4_DataBuffer&)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:750:29: error: 'ReadGolomb' is not a member of 'AP4_AvcFrameParser'
  750 |         AP4_AvcFrameParser::ReadGolomb(bits); // first_mb_in_slice
      |                             ^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:751:29: error: 'ReadGolomb' is not a member of 'AP4_AvcFrameParser'
  751 |         AP4_AvcFrameParser::ReadGolomb(bits); // slice_type
      |                             ^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:752:41: error: 'ReadGolomb' is not a member of 'AP4_AvcFrameParser'
  752 |         pictureId = AP4_AvcFrameParser::ReadGolomb(bits); //picture_set_id
      |                                         ^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'virtual bool AVCCodecHandler::GetInformation(kodi::addon::InputstreamInfo&)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:791:37: error: void value not ignored as it ought to be
  791 |               bool ret = sps.GetInfo(width, height);
      |                          ~~~~~~~~~~~^~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:792:25: error: 'struct AP4_AvcSequenceParameterSet' has no member named 'GetVUIInfo'; did you mean 'GetInfo'?
  792 |               ret = sps.GetVUIInfo(fps_ticks, fps_scale, aspect) || ret;
      |                         ^~~~~~~~~~
      |                         GetInfo
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In constructor 'VP9CodecHandler::VP9CodecHandler(AP4_SampleDescription*)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:927:34: error: 'class AP4_VpccAtom' has no member named 'GetData'
  927 |         extra_data.SetData(vpcc->GetData().GetData(), vpcc->GetData().GetDataSize());
      |                                  ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:927:61: error: 'class AP4_VpccAtom' has no member named 'GetData'
  927 |         extra_data.SetData(vpcc->GetData().GetData(), vpcc->GetData().GetDataSize());
      |                                                             ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: At global scope:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1379:14: error: 'AP4_Result FragmentedSampleReader::ProcessMoof(AP4_ContainerAtom*, AP4_Position, AP4_Position, AP4_UI64)' marked 'override', but does not override
 1379 |   AP4_Result ProcessMoof(AP4_ContainerAtom* moof,
      |              ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In constructor 'FragmentedSampleReader::FragmentedSampleReader(AP4_ByteStream*, AP4_Movie*, AP4_Track*, AP4_UI32, AP4_CencSingleSampleDecrypter*, const SSD::SSD_DECRYPTER::SSD_CAPS&)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1153:43: error: 'class AP4_CencSingleSampleDecrypter' has no member named 'AddPool'
 1153 |       m_poolId = m_singleSampleDecryptor->AddPool();
      |                                           ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In destructor 'virtual FragmentedSampleReader::~FragmentedSampleReader()':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1174:32: error: 'class AP4_CencSingleSampleDecrypter' has no member named 'RemovePool'
 1174 |       m_singleSampleDecryptor->RemovePool(m_poolId);
      |                                ^~~~~~~~~~
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:230,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'virtual AP4_Result FragmentedSampleReader::ReadSample()':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1228:98: error: no matching function for call to 'AP4_CencSampleDecrypter::DecryptSampleData(AP4_UI32&, AP4_DataBuffer&, AP4_DataBuffer&, NULL)'
 1228 |                 result = m_decrypter->DecryptSampleData(m_poolId, m_encrypted, m_sampleData, NULL)))
      |                                                                                                  ^
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4Piff.h:43,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:304,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4CommonEncryption.h:769:24: note: candidate: 'virtual AP4_Result AP4_CencSampleDecrypter::DecryptSampleData(AP4_DataBuffer&, AP4_DataBuffer&, const AP4_UI08*)'
  769 |     virtual AP4_Result DecryptSampleData(AP4_DataBuffer& data_in,
      |                        ^~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4CommonEncryption.h:769:24: note:   candidate expects 3 arguments, 4 provided
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1246:68: error: no matching function for call to 'AP4_CencSingleSampleDecrypter::DecryptSampleData(AP4_UI32&, AP4_DataBuffer&, AP4_DataBuffer&, std::nullptr_t, int, std::nullptr_t, std::nullptr_t)'
 1246 |                                                    nullptr, nullptr);
      |                                                                    ^
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4Piff.h:43,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:304,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4CommonEncryption.h:696:24: note: candidate: 'virtual AP4_Result AP4_CencSingleSampleDecrypter::DecryptSampleData(AP4_DataBuffer&, AP4_DataBuffer&, const AP4_UI08*, unsigned int, const AP4_UI16*, const AP4_UI32*)'
  696 |     virtual AP4_Result DecryptSampleData(AP4_DataBuffer& data_in,
      |                        ^~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4CommonEncryption.h:696:24: note:   candidate expects 6 arguments, 7 provided
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'virtual void FragmentedSampleReader::Reset(bool)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1264:23: error: 'Reset' is not a member of 'AP4_LinearReader'
 1264 |     AP4_LinearReader::Reset();
      |                       ^~~~~
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:230,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'virtual bool FragmentedSampleReader::TimeSeek(uint64_t, bool)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1339:23: error: 'SeekSample' was not declared in this scope; did you mean 'ReadSample'?
 1339 |     if (AP4_SUCCEEDED(SeekSample(m_track->GetId(), seekPos, sampleIndex, preceeding)))
      |                       ^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'AP4_Result FragmentedSampleReader::ProcessMoof(AP4_ContainerAtom*, AP4_Position, AP4_Position, AP4_UI64)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1387:85: error: no matching function for call to 'FragmentedSampleReader::ProcessMoof(AP4_ContainerAtom*&, AP4_Position&, AP4_Position&, AP4_UI64&)'
 1387 |                            moof, moof_offset, mdat_payload_offset, mdat_payload_size))))
      |                                                                                     ^
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:300,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4LinearReader.h:160:24: note: candidate: 'virtual AP4_Result AP4_LinearReader::ProcessMoof(AP4_ContainerAtom*, AP4_Position, AP4_Position)'
  160 |     virtual AP4_Result ProcessMoof(AP4_ContainerAtom* moof,
      |                        ^~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4LinearReader.h:160:24: note:   candidate expects 3 arguments, 4 provided
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1404:87: error: 'class AP4_UnknownUuidAtom' has no member named 'GetData'
 1404 |           const AP4_DataBuffer& buf(AP4_DYNAMIC_CAST(AP4_UnknownUuidAtom, uuid_atom)->GetData());
      |                                                                                       ^~~~~~~
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:230,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1428:27: error: 'GetSample' was not declared in this scope; did you mean 'ReadSample'?
 1428 |         if (AP4_SUCCEEDED(GetSample(m_track->GetId(), sample, 0)))
      |                           ^~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1460:96: error: no matching function for call to 'AP4_CencSampleDecrypter::Create(AP4_CencSampleInfoTable*&, AP4_UI32&, int, int, int, bool&, AP4_CencSingleSampleDecrypter*&, AP4_CencSampleDecrypter*&)'
 1460 |                                                            m_singleSampleDecryptor, m_decrypter)))
      |                                                                                                ^
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4Piff.h:43,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:304,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4CommonEncryption.h:732:23: note: candidate: 'static AP4_Result AP4_CencSampleDecrypter::Create(AP4_ProtectedSampleDescription*, AP4_ContainerAtom*, AP4_ByteStream&, AP4_Position, const AP4_UI08*, AP4_Size, AP4_BlockCipherFactory*, AP4_SaioAtom*&, AP4_SaizAtom*&, AP4_CencSampleEncryption*&, AP4_CencSampleDecrypter*&)'
  732 |     static AP4_Result Create(AP4_ProtectedSampleDescription* sample_description,
      |                       ^~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4CommonEncryption.h:732:23: note:   candidate expects 11 arguments, 8 provided
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4CommonEncryption.h:744:23: note: candidate: 'static AP4_Result AP4_CencSampleDecrypter::Create(AP4_ProtectedSampleDescription*, AP4_ContainerAtom*, AP4_ByteStream&, AP4_Position, const AP4_UI08*, AP4_Size, AP4_BlockCipherFactory*, AP4_CencSampleDecrypter*&)'
  744 |     static AP4_Result Create(AP4_ProtectedSampleDescription* sample_description,
      |                       ^~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4CommonEncryption.h:744:62: note:   no known conversion for argument 1 from 'AP4_CencSampleInfoTable*' to 'AP4_ProtectedSampleDescription*'
  744 |     static AP4_Result Create(AP4_ProtectedSampleDescription* sample_description,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4CommonEncryption.h:753:23: note: candidate: 'static AP4_Result AP4_CencSampleDecrypter::Create(AP4_CencSampleInfoTable*, AP4_UI32, const AP4_UI08*, AP4_Size, AP4_BlockCipherFactory*, bool, AP4_CencSampleDecrypter*&)'
  753 |     static AP4_Result Create(AP4_CencSampleInfoTable*  sample_info_table,
      |                       ^~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4CommonEncryption.h:753:23: note:   candidate expects 7 arguments, 8 provided
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1466:32: error: 'class AP4_CencSingleSampleDecrypter' has no member named 'SetFragmentInfo'
 1466 |       m_singleSampleDecryptor->SetFragmentInfo(m_poolId, m_defaultKey,
      |                                ^~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'void FragmentedSampleReader::UpdateSampleDescription()':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1508:12: error: 'AP4_SAMPLE_FORMAT_WVTT' was not declared in this scope; did you mean 'AP4_SAMPLE_FORMAT_VP9'?
 1508 |       case AP4_SAMPLE_FORMAT_WVTT:
      |            ^~~~~~~~~~~~~~~~~~~~~~
      |            AP4_SAMPLE_FORMAT_VP9
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In constructor 'TSSampleReader::TSSampleReader(AP4_ByteStream*, INPUTSTREAM_TYPE, AP4_UI32, uint32_t)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1818:19: warning: 'TSSampleReader::m_stream' will be initialized after [-Wreorder]
 1818 |   AP4_DASHStream* m_stream;
      |                   ^~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1809:12: warning:   'uint32_t TSSampleReader::m_typeMask' [-Wreorder]
 1809 |   uint32_t m_typeMask; //Bit representation of INPUTSTREAM_TYPES
      |            ^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:1700:3: warning:   when initialized here [-Wreorder]
 1700 |   TSSampleReader(AP4_ByteStream* input,
      |   ^~~~~~~~~~~~~~
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h: In constructor 'Session::Session(MANIFEST_TYPE, const string&, const string&, const string&, const string&, const string&, const string&, const std::map<std::basic_string<char>, std::basic_string<char> >&, const std::map<std::basic_string<char>, std::basic_string<char> >&, const string&, const string&, bool, bool, const string&)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:242:8: warning: 'Session::force_secure_decoder_' will be initialized after [-Wreorder]
  242 |   bool force_secure_decoder_;
      |        ^~~~~~~~~~~~~~~~~~~~~

/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:211:15: warning:   'std::string Session::drmPreInitData_' [-Wreorder]
  211 |   std::string drmPreInitData_;
      |               ^~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:2031:1: warning:   when initialized here [-Wreorder]
 2031 | Session::Session(MANIFEST_TYPE manifestType,
      | ^~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'bool Session::PreInitializeDRM(std::string&, std::string&)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:2367:57: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type '__gnu_cxx::__alloc_traits<std::allocator<Session::CDMSESSION>, Session::CDMSESSION>::value_type' {aka 'struct Session::CDMSESSION'}; use assignment or value-initialization instead [-Wclass-memaccess]
 2367 |     memset(&cdm_sessions_.front(), 0, sizeof(CDMSESSION));
      |                                                         ^
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:219:10: note: '__gnu_cxx::__alloc_traits<std::allocator<Session::CDMSESSION>, Session::CDMSESSION>::value_type' {aka 'struct Session::CDMSESSION'} declared here
  219 |   struct CDMSESSION
      |          ^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:2418:68: error: 'class AP4_CencSingleSampleDecrypter' has no member named 'GetSessionId'
 2418 |       session.cdm_session_str_ = session.single_sample_decryptor_->GetSessionId();
      |                                                                    ^~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'bool Session::InitializeDRM()':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:2437:55: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type '__gnu_cxx::__alloc_traits<std::allocator<Session::CDMSESSION>, Session::CDMSESSION>::value_type' {aka 'struct Session::CDMSESSION'}; use assignment or value-initialization instead [-Wclass-memaccess]
 2437 |   memset(&cdm_sessions_.front(), 0, sizeof(CDMSESSION));
      |                                                       ^
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:219:10: note: '__gnu_cxx::__alloc_traits<std::allocator<Session::CDMSESSION>, Session::CDMSESSION>::value_type' {aka 'struct Session::CDMSESSION'} declared here
  219 |   struct CDMSESSION
      |          ^~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:2512:50: error: 'class AP4_Movie' has no member named 'GetPsshAtoms'
 2512 |           AP4_Array<AP4_PsshAtom>& pssh = movie->GetPsshAtoms();
      |                                                  ^~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:2663:72: error: 'class AP4_CencSingleSampleDecrypter' has no member named 'GetSessionId'
 2663 |           session.cdm_session_str_ = session.single_sample_decryptor_->GetSessionId();
      |                                                                        ^~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'bool Session::InitializePeriod()':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:2744:14: warning: unused variable 'copySize' [-Wunused-variable]
 2744 |       size_t copySize = adp->name_.size() > 255 ? 255 : adp->name_.size();
      |              ^~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'AP4_Movie* Session::PrepareStream(Session::STREAM*, bool&)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:2927:81: error: 'virtual AP4_MemoryByteStream::~AP4_MemoryByteStream()' is protected within this context
 2927 |       AP4_MemoryByteStream ms((const uint8_t*)extradata.data(), extradata.size());
      |                                                                                 ^
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4FileByteStream.h:33,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:234,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4ByteStream.h:199:13: note: declared protected here
  199 |     virtual ~AP4_MemoryByteStream();
      |             ^
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:2936:81: error: 'virtual AP4_MemoryByteStream::~AP4_MemoryByteStream()' is protected within this context
 2936 |       AP4_MemoryByteStream ms((const uint8_t*)extradata.data(), extradata.size());
      |                                                                                 ^
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4FileByteStream.h:33,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:234,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4ByteStream.h:199:13: note: declared protected here
  199 |     virtual ~AP4_MemoryByteStream();
      |             ^
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:2965:12: error: 'class AP4_Movie' has no member named 'SetMoovAtom'; did you mean 'GetMoovAtom'?
 2965 |     movie->SetMoovAtom(moov);
      |            ^~~~~~~~~~~
      |            GetMoovAtom
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'virtual bool CInputStreamAdaptive::GetStreamIds(std::vector<unsigned int>&)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:3601:15: warning: unused variable 'cdmId' [-Wunused-variable]
 3601 |       uint8_t cdmId(
      |               ^~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In member function 'virtual bool CInputStreamAdaptive::OpenStream(int)':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:3820:85: error: no matching function for call to 'AP4_File::AP4_File(AP4_ByteStream&, AP4_DefaultAtomFactory&, bool, AP4_Movie*&)'
 3820 |         new AP4_File(*stream->input_, AP4_DefaultAtomFactory::Instance_, true, movie);
      |                                                                                     ^

In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4.h:237,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.h:30,
                 from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:19:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4File.h:113:5: note: candidate: 'AP4_File::AP4_File(AP4_ByteStream&, bool)'
  113 |     AP4_File(AP4_ByteStream& stream, bool moov_only = false);
      |     ^~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4File.h:113:5: note:   candidate expects 2 arguments, 4 provided
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4File.h:102:5: note: candidate: 'AP4_File::AP4_File(AP4_ByteStream&, AP4_AtomFactory&, bool)'
  102 |     AP4_File(AP4_ByteStream&  stream,
      |     ^~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4File.h:102:5: note:   candidate expects 3 arguments, 4 provided
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4File.h:92:5: note: candidate: 'AP4_File::AP4_File(AP4_Movie*)'
   92 |     AP4_File(AP4_Movie* movie = NULL);
      |     ^~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/bento4/Ap4File.h:92:5: note:   candidate expects 1 argument, 4 provided
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp: In destructor 'virtual CMyAddon::~CMyAddon()':
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-11.0-devel/build/inputstream.adaptive-20.0.3-Nexus/src/main.cpp:4177:3: warning: deleting object of polymorphic class type 'KodiHost' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor]
 4177 |   delete kodihost;
      |   ^~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
�[1;31mFAILURE: s/build inputstream.adaptive during make_target (default)�[0m
*********** FAILED COMMAND ***********
ninja ${NINJA_OPTS} ${PKG_MAKE_OPTS_TARGET}
**************************************

@heitbaum
Copy link
Contributor Author

heitbaum commented Dec 12, 2021

Adding the below allows bento4 to use the inputstream.adaptive supplied patches - but now a recursive DEPEND-ancy

diff --git a/packages/multimedia/bento4/package.mk b/packages/multimedia/bento4/package.mk
index afd600c775..eb26cba077 100644
--- a/packages/multimedia/bento4/package.mk
+++ b/packages/multimedia/bento4/package.mk
@@ -9,3 +9,5 @@ PKG_SITE="https://www.bento4.com"
 PKG_URL="https://github.com/axiomatic-systems/Bento4/archive/refs/tags/v${PKG_VERSION}.tar.gz"
 PKG_DEPENDS_TARGET="toolchain"
 PKG_LONGDESC="C++ class library and tools designed to read and write ISO-MP4 files"
+
+PKG_PATCH_DIRS="$(get_build_dir inputstream.adaptive)/depends/common/bento4"

The patches do apply cleanly but build of bento4 fails.

Executing (target): ninja 
[137/187] Building CXX object CMakeFiles/mp42avc.dir/Source/C++/Apps/Mp42Avc/Mp42Avc.cpp.o
FAILED: CMakeFiles/mp42avc.dir/Source/C++/Apps/Mp42Avc/Mp42Avc.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++  -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Codecs -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Crypto -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/MetaData -march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -Wall -Wno-class-memaccess -DDUMMYOPT -MD -MT CMakeFiles/mp42avc.dir/Source/C++/Apps/Mp42Avc/Mp42Avc.cpp.o -MF CMakeFiles/mp42avc.dir/Source/C++/Apps/Mp42Avc/Mp42Avc.cpp.o.d -o CMakeFiles/mp42avc.dir/Source/C++/Apps/Mp42Avc/Mp42Avc.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Avc/Mp42Avc.cpp
In file included from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4.h:230,
                 from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Avc/Mp42Avc.cpp:35:
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Avc/Mp42Avc.cpp: In function 'void DecryptAndWriteSamples(AP4_Track*, AP4_SampleDescription*, AP4_Byte*, AP4_ByteStream*)':
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Avc/Mp42Avc.cpp:231:83: error: no matching function for call to 'AP4_SampleDecrypter::DecryptSampleData(AP4_DataBuffer&, AP4_DataBuffer&)'
  231 |         if (AP4_FAILED(decrypter->DecryptSampleData(encrypted_data, decrypted_data))) {
      |                                                                                   ^
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4Results.h:67:30: note: in definition of macro 'AP4_FAILED'
   67 | #define AP4_FAILED(result) ((result) != AP4_SUCCESS)
      |                              ^~~~~~
In file included from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4OmaDcf.h:41,
                 from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4.h:285,
                 from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Avc/Mp42Avc.cpp:35:
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4Protection.h:396:24: note: candidate: 'virtual AP4_Result AP4_SampleDecrypter::DecryptSampleData(AP4_UI32, AP4_DataBuffer&, AP4_DataBuffer&, const AP4_UI08*)'
  396 |     virtual AP4_Result DecryptSampleData(AP4_UI32 poolid,
      |                        ^~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4Protection.h:396:24: note:   candidate expects 4 arguments, 2 provided
[140/187] Building CXX object CMakeFiles/mp42aac.dir/Source/C++/Apps/Mp42Aac/Mp42Aac.cpp.o
FAILED: CMakeFiles/mp42aac.dir/Source/C++/Apps/Mp42Aac/Mp42Aac.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++  -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Codecs -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Crypto -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/MetaData -march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -Wall -Wno-class-memaccess -DDUMMYOPT -MD -MT CMakeFiles/mp42aac.dir/Source/C++/Apps/Mp42Aac/Mp42Aac.cpp.o -MF CMakeFiles/mp42aac.dir/Source/C++/Apps/Mp42Aac/Mp42Aac.cpp.o.d -o CMakeFiles/mp42aac.dir/Source/C++/Apps/Mp42Aac/Mp42Aac.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Aac/Mp42Aac.cpp
In file included from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4.h:230,
                 from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Aac/Mp42Aac.cpp:35:
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Aac/Mp42Aac.cpp: In function 'void DecryptAndWriteSamples(AP4_Track*, AP4_SampleDescription*, AP4_Byte*, AP4_ByteStream*)':
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Aac/Mp42Aac.cpp:162:83: error: no matching function for call to 'AP4_SampleDecrypter::DecryptSampleData(AP4_DataBuffer&, AP4_DataBuffer&)'
  162 |         if (AP4_FAILED(decrypter->DecryptSampleData(encrypted_data, decrypted_data))) {
      |                                                                                   ^
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4Results.h:67:30: note: in definition of macro 'AP4_FAILED'
   67 | #define AP4_FAILED(result) ((result) != AP4_SUCCESS)
      |                              ^~~~~~
In file included from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4OmaDcf.h:41,
                 from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4.h:285,
                 from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Aac/Mp42Aac.cpp:35:
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4Protection.h:396:24: note: candidate: 'virtual AP4_Result AP4_SampleDecrypter::DecryptSampleData(AP4_UI32, AP4_DataBuffer&, AP4_DataBuffer&, const AP4_UI08*)'
  396 |     virtual AP4_Result DecryptSampleData(AP4_UI32 poolid,
      |                        ^~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4Protection.h:396:24: note:   candidate expects 4 arguments, 2 provided
[142/187] Building CXX object CMakeFiles/mp42hevc.dir/Source/C++/Apps/Mp42Hevc/Mp42Hevc.cpp.o
FAILED: CMakeFiles/mp42hevc.dir/Source/C++/Apps/Mp42Hevc/Mp42Hevc.cpp.o 
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++  -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Codecs -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Crypto -I/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/MetaData -march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -Wall -pipe  -O2 -fomit-frame-pointer -DNDEBUG -Wall -Wno-class-memaccess -DDUMMYOPT -MD -MT CMakeFiles/mp42hevc.dir/Source/C++/Apps/Mp42Hevc/Mp42Hevc.cpp.o -MF CMakeFiles/mp42hevc.dir/Source/C++/Apps/Mp42Hevc/Mp42Hevc.cpp.o.d -o CMakeFiles/mp42hevc.dir/Source/C++/Apps/Mp42Hevc/Mp42Hevc.cpp.o -c /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Hevc/Mp42Hevc.cpp
In file included from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4.h:230,
                 from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Hevc/Mp42Hevc.cpp:35:
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Hevc/Mp42Hevc.cpp: In function 'void DecryptAndWriteSamples(AP4_Track*, AP4_SampleDescription*, AP4_Byte*, AP4_ByteStream*)':
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Hevc/Mp42Hevc.cpp:298:83: error: no matching function for call to 'AP4_SampleDecrypter::DecryptSampleData(AP4_DataBuffer&, AP4_DataBuffer&)'
  298 |         if (AP4_FAILED(decrypter->DecryptSampleData(encrypted_data, decrypted_data))) {
      |                                                                                   ^
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4Results.h:67:30: note: in definition of macro 'AP4_FAILED'
   67 | #define AP4_FAILED(result) ((result) != AP4_SUCCESS)
      |                              ^~~~~~
In file included from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4OmaDcf.h:41,
                 from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4.h:285,
                 from /var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Apps/Mp42Hevc/Mp42Hevc.cpp:35:
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4Protection.h:396:24: note: candidate: 'virtual AP4_Result AP4_SampleDecrypter::DecryptSampleData(AP4_UI32, AP4_DataBuffer&, AP4_DataBuffer&, const AP4_UI08*)'
  396 |     virtual AP4_Result DecryptSampleData(AP4_UI32 poolid,
      |                        ^~~~~~~~~~~~~~~~~
/var/media/DATA/home-rudi/LibreELEC.master/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/Source/C++/Core/Ap4Protection.h:396:24: note:   candidate expects 4 arguments, 2 provided
[144/187] Building CXX object CMakeFiles/ap4.dir/Source/C++/Crypto/Ap4AesBlockCipher.cpp.o
ninja: build stopped: subcommand failed.
FAILURE: scripts/build bento4 during make_target (default)

@heitbaum
Copy link
Contributor Author

@SupervisedThinking - this now builds successfully with bento4 as a dependancy. The -DBUILD_APPS=OFF Is mandatory, as the apps do not build with the Kodi patches.

** Ideally bento4 should make sure that the inputstream.adaptive Is unpacked first, otherwise there is a case where the patches for bento4 will not apply and then inputstream.adaptive will fail to build.

@chewitt
Copy link
Member

chewitt commented Dec 12, 2021

** Ideally bento4 should make sure that the inputstream.adaptive Is unpacked first, otherwise there is a case where the patches for bento4 will not apply and then inputstream.adaptive will fail to build.

That smells like a circular dependency?

@mglae
Copy link
Contributor

mglae commented Dec 12, 2021

That smells like a circular dependency?

A way out: copy the patches to bento4 and check in inputstream.adaptive pre_build if they are the latest ones.

@stefansaraev
Copy link
Contributor

o_O.

why not move the patches where they belong. to bento4/patches/ ?

@SupervisedThinking
Copy link
Contributor

@heitbaum as @stefansaraev said & I mentioned: just copy & paste the patches provided by inputstream.adaptive & add a note in the package file to bump the patchset of bento4 if inputstream is updated.

@vpeter4
Copy link
Contributor

vpeter4 commented Dec 13, 2021

** Ideally bento4 should make sure that the inputstream.adaptive is unpacked first

Doesn't PKG_DEPENDS_UNPACK="inputstream.adaptive" in bento4 package do exactly that?

@CvH
Copy link
Member

CvH commented Dec 23, 2021

current state

ubuntu:/LE$ PROJECT=Generic ARCH=x86_64 scripts/build bento4
CLEAN      bento4
    *      Removing /LE/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639 ...
UNPACK      bento4
BUILD      bento4 (target)
    TOOLCHAIN      cmake (auto-detect)
Executing (target): cmake -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_TOOLCHAIN_FILE=/LE/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/etc/cmake-x86_64-libreelec-linux-gnu.conf -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=MinSizeRel -DBUILD_APPS=OFF /LE/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639
-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /LE/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /LE/build.LibreELEC-Generic.x86_64-11.0-devel/toolchain/bin/x86_64-libreelec-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /LE/build.LibreELEC-Generic.x86_64-11.0-devel/build/bento4-1.6.0-639/.x86_64-libreelec-linux-gnu
Executing (target): ninja 
[135/135] Linking CXX static library libap4.a
ninja: error: unknown target 'install'
FAILURE: scripts/build bento4 during makeinstall_target (default)
*********** FAILED COMMAND ***********
DESTDIR=${SYSROOT_PREFIX} ninja install ${PKG_MAKEINSTALL_OPTS_TARGET}
**************************************

@heitbaum
Copy link
Contributor Author

@CvH and all others excellent feedback. I know how I want to fix this now. Just need to sit down and do it 👍

@heitbaum
Copy link
Contributor Author

I have gone withPKG_DEPENDS_UNPACK="inputstream.adaptive" and now both s/build bento4 and s/build inputstream.adaptive Build regardless of the order of compile.

@CvH CvH merged commit 78e1868 into LibreELEC:master Dec 24, 2021
@heitbaum heitbaum deleted the bento4 branch December 24, 2021 08:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants