Closed Johpin1 closed 2 months ago
I don’t understand why this change is required. The signature of the method is correct and matches the API.
Here is the API signature:
//============================================================================
/// @brief Notify current screen resolution
///
/// @param[in] width Width to set
/// @param[in] height Height to set
///
virtual void SetVideoResolution(unsigned int width, unsigned int height) {}
//----------------------------------------------------------------------------
//============================================================================
/// @brief Notify current screen resolution and max screen resolution allowed
///
/// @param[in] width Width to set
/// @param[in] height Height to set
/// @param[in] maxWidth Max width allowed
/// @param[in] maxHeight Max height allowed
///
virtual void SetVideoResolution(unsigned int width,
unsigned int height,
unsigned int maxWidth,
unsigned int maxHeight)
{
}
The API is identical on both the Nexus and Omega branches.
So I'm not sure where the signature coming from your error is from, with (int, int)
. That was however the signature from the Matrix branch, where there was a single method with this signature virtual void SetVideoResolution(int width, int height) {}
Is it possible you are compiling against wrong source for xbmc?
I have used: inputstream.ffmpegdirect-20.3.0-Nexus.zip xbmc-20.3-Nexus.zip No Matrix.
As a test I have also tried for Omega: the error does not appear.
Also tested for Matrix => only two errors about missing #include\<cstdint> as mentioned in issue 288, but not the error mentioned in this PR. inputstream.ffmpegdirect-19.3-Matrix.zip xbmc-19.3-Matrix.zip
Build again for 20.3-Nexus, override error still appears.
So why not just use Omega? It will be released in a couple of weeks anyway.
After adapting the code I could built the addon successfully for Nexus. It works.
There is no SlackBuild for Kodi Omega yet. I can do the build according the README from Kodi. The only reason for me could be to check the CEC adapter will be available. For Matrix and Nexus it is missing if you compile on Slackware arm despite of libcec is found during configuring.
Ok, fair. Then I think it’s likely best to stick with the build you have for now. And then switch to Omega once it’s ready.
I decided to try Kodi Omega and build it successfully, also inputstream.ffmpegdirec, inputstream.rtmp and pvr.iptvsimple are fine, only inputstream.adaptive couldn't be compiled:
[ 30%] Building CXX object CMakeFiles/inputstream.adaptive.dir/src/Session.cpp.o /tmp/SBo/inputstream.adaptive-21rc2-Omega/src/Session.cpp: In member function ‘bool SESSION::CSession::ExtractStreamProtectionData(PLAYLIST::CPeriod::PSSHSet&, std::vector<unsigned char>&, std::string)’: /tmp/SBo/inputstream.adaptive-21rc2-Omega/src/Session.cpp:1427:40: error: ‘class AP4_Movie’ has no member named ‘GetPsshAtoms’ 1427 | AP4_Array<AP4_PsshAtom>& pssh{movie->GetPsshAtoms()}; | ^~~~~~~~~~~~ /tmp/SBo/inputstream.adaptive-21rc2-Omega/src/Session.cpp:1427:54: error: invalid initialization of non-const reference of type ‘AP4_Array<AP4_PsshAtom>&’ from an rvalue of type ‘<brace-enclosed initializer list>’ 1427 | AP4_Array<AP4_PsshAtom>& pssh{movie->GetPsshAtoms()}; | ^ make[2]: *** [CMakeFiles/inputstream.adaptive.dir/build.make:118: CMakeFiles/inputstream.adaptive.dir/src/Session.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:385: CMakeFiles/inputstream.adaptive.dir/all] Error 2 make: *** [Makefile:166: all] Error 2
Do you have any idea?
I will close this PR, because the override error is not valid for Kodi Omega.
Please create an issue on the inputstream.adaptive GitHub for this. They should be able to help. You can also mention me on the issue so I can follow progress.
During compilation of inputstream.ffmpegdirect-20.3.0-Nexus on Slackware aarch64 I got the error:
/home/john/Downloads/addons/inputstream.ffmpegdirect/src/StreamManager.h:60:16: error: �..virtual void InputStreamFFmpegDirect::SetVideoResolution(int, int)�.. marked �..override�.., but does not override 60 | virtual void SetVideoResolution(int width, int height) override;
=> Solved by removing "override" from line 60 in StreamManager.h