openhome / ohPlayer

ohPlayer is a full featured OpenHome media renderer licenced under an MIT licence

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Failing to compile ohPlayer 1.32 with Linux-armhf

Dual01 opened this issue · comments

When I compile ohplayer 1.32 on an RPI, I get the several errors:

make -f Makefile.raspbian
make[1]: Entering directory '/home/dietpi/ohPlayer/linux'
g++ -c -Wall -std=c++0x -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -DTARG_ARCH=Linux-armhf -fstack-protector -fstack-check -DDEFINE_LITTLE_ENDIAN -I../dependencies/Linux-armhf/ohMediaPlayer/include -I../dependencies/Linux-armhf/ohNetmon/include -I../dependencies/Linux-armhf/openssl/include -I../dependencies/Linux-armhf/ohNetGenerated-Linux-armhf-Release/include/ohnet/OpenHome/Net/Core -I../dependencies/Linux-armhf/ohNet-Linux-armhf-Release/include/ohnet -c ConfigGTKKeyStore.cpp -o raspbian/objs/ConfigGTKKeyStore.o
g++ -c -Wall -std=c++0x -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -DTARG_ARCH=Linux-armhf -fstack-protector -fstack-check -DDEFINE_LITTLE_ENDIAN -I../dependencies/Linux-armhf/ohMediaPlayer/include -I../dependencies/Linux-armhf/ohNetmon/include -I../dependencies/Linux-armhf/openssl/include -I../dependencies/Linux-armhf/ohNetGenerated-Linux-armhf-Release/include/ohnet/OpenHome/Net/Core -I../dependencies/Linux-armhf/ohNet-Linux-armhf-Release/include/ohnet -c RamStore.cpp -o raspbian/objs/RamStore.o
g++ -c -Wall -std=c++0x -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -DTARG_ARCH=Linux-armhf -fstack-protector -fstack-check -DDEFINE_LITTLE_ENDIAN -I../dependencies/Linux-armhf/ohMediaPlayer/include -I../dependencies/Linux-armhf/ohNetmon/include -I../dependencies/Linux-armhf/openssl/include -I../dependencies/Linux-armhf/ohNetGenerated-Linux-armhf-Release/include/ohnet/OpenHome/Net/Core -I../dependencies/Linux-armhf/ohNet-Linux-armhf-Release/include/ohnet -c Libav.cpp -o raspbian/objs/Libav.o
g++ -c -Wall -std=c++0x -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -DTARG_ARCH=Linux-armhf -fstack-protector -fstack-check -DDEFINE_LITTLE_ENDIAN -I../dependencies/Linux-armhf/ohMediaPlayer/include -I../dependencies/Linux-armhf/ohNetmon/include -I../dependencies/Linux-armhf/openssl/include -I../dependencies/Linux-armhf/ohNetGenerated-Linux-armhf-Release/include/ohnet/OpenHome/Net/Core -I../dependencies/Linux-armhf/ohNet-Linux-armhf-Release/include/ohnet -c Volume.cpp -o raspbian/objs/Volume.o
g++ -c -Wall -std=c++0x -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -DTARG_ARCH=Linux-armhf -fstack-protector -fstack-check -DDEFINE_LITTLE_ENDIAN -I../dependencies/Linux-armhf/ohMediaPlayer/include -I../dependencies/Linux-armhf/ohNetmon/include -I../dependencies/Linux-armhf/openssl/include -I../dependencies/Linux-armhf/ohNetGenerated-Linux-armhf-Release/include/ohnet/OpenHome/Net/Core -I../dependencies/Linux-armhf/ohNet-Linux-armhf-Release/include/ohnet -c ExampleMediaPlayer.cpp -o raspbian/objs/ExampleMediaPlayer.o
In file included from ExampleMediaPlayer.cpp:25:
ExampleMediaPlayer.h: In function ‘OpenHome::TBool OpenHome::Av::CompareIPv6Addrs(TIpAddress, TIpAddress)’:
ExampleMediaPlayer.h:55:38: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
&& memcmp((TByte*)addr1.iV6[0], (TByte*)addr2.iV6[0], 16) == 0;
^
ExampleMediaPlayer.h:55:60: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
&& memcmp((TByte*)addr1.iV6[0], (TByte*)addr2.iV6[0], 16) == 0;
^
ExampleMediaPlayer.cpp: In member function ‘void OpenHome::Av::ExampleMediaPlayer::RegisterPlugins(OpenHome::Environment&)’:
ExampleMediaPlayer.cpp:331:58: error: no matching function for call to ‘OpenHome::Media::ProtocolFactory::NewTidal(OpenHome::Environment&, OpenHome::Brn, OpenHome::Av::MediaPlayer&)’
iMediaPlayer));
^
In file included from ExampleMediaPlayer.cpp:6:
../dependencies/Linux-armhf/ohMediaPlayer/include/OpenHome/Media/Protocol/ProtocolFactory.h:39:22: note: candidate: ‘static OpenHome::Media::Protocol
OpenHome::Media::ProtocolFactory::NewTidal(OpenHome::Environment&, OpenHome::SslContext&, const OpenHome::Brx&, const OpenHome::Brx&, const OpenHome::Brx&, std::vectorOpenHome::OAuthAppDetails&, OpenHome::Av::IMediaPlayer&)’
static Protocol* NewTidal(Environment& aEnv, SslContext& aSsl, const Brx& aPartnerId, const Brx& aClientId, const Brx& aClientSecret, std::vector& aAppDetails, Av::IMediaPlayer& aMediaPlayer);
^~~~~~~~
../dependencies/Linux-armhf/ohMediaPlayer/include/OpenHome/Media/Protocol/ProtocolFactory.h:39:22: note: candidate expects 7 arguments, 3 provided
make[1]: *** [Makefile.raspbian:115: raspbian/objs/ExampleMediaPlayer.o] Error 1
make[1]: Leaving directory '/home/dietpi/ohPlayer/linux'
make: *** [Makefile:28: raspbian] Error 2

Any help would be greatly appreciated.
Best regards
Dieter

Hi, I would have a look at ohPipeline/OpenHome/Av/Tests/TestMediaPlayer.cpp to see how is invoked ProtocolFactory::NewTidal

Thanks for this valuable hint. However, my programming skills in C++ are too low in order to get this implemented.
Any help is appreciated.
Dieter

ok noted, i'll check next week

Hi, I've checked and were able to build with Tidal adapting Exemple.cpp but now I have an issue to connect to Tidal
As ProtocolFactory::NewTidal arguments changed I have some difficulties to understand the signification of the arguments, do some have some informations to share regarding :
appClientId, appClientSecret, apps,

This is what I found: This seems to be related to the Tidal OAUTH2 login procedure. The client /secret combination allows the app to access the tidal web service (homepage) where the user can enter his login data. The client id and secret combination has nothing to do with the users TIDAL account. I found "It is the authorization to use a specific REST API to access the TIDAL Web services (for instance: user login, get list of new tracks, get list of own playlists, get a stream URL to play a track/video, and so on)". There are many different id/secret combinations for the TIDAL API because there are a lot of devices which are able to play TIDAL music. The API is documented here: https://github.com/Fokka-Engineering/TIDAL/wiki.