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

Update StreamManager.h #289

Closed
wants to merge 1 commit into from
Closed

Update StreamManager.h #289

wants to merge 1 commit into from

Conversation

Johpin1
Copy link

@Johpin1 Johpin1 commented Apr 2, 2024

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

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
@phunkyfish
Copy link
Collaborator

I don’t understand why this change is required. The signature of the method is correct and matches the API.

@phunkyfish
Copy link
Collaborator

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)
  {
  }

@phunkyfish
Copy link
Collaborator

phunkyfish commented Apr 2, 2024

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?

@Johpin1
Copy link
Author

Johpin1 commented Apr 2, 2024

I have used:
inputstream.ffmpegdirect-20.3.0-Nexus.zip
xbmc-20.3-Nexus.zip
No Matrix.

@Johpin1
Copy link
Author

Johpin1 commented Apr 3, 2024

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.

@phunkyfish
Copy link
Collaborator

So why not just use Omega? It will be released in a couple of weeks anyway.

@Johpin1
Copy link
Author

Johpin1 commented Apr 3, 2024

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.

@phunkyfish
Copy link
Collaborator

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.

@Johpin1
Copy link
Author

Johpin1 commented Apr 4, 2024

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.

@phunkyfish
Copy link
Collaborator

phunkyfish commented Apr 5, 2024

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.

@Johpin1 Johpin1 closed this Apr 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants