Kodi Community Forum

Full Version: Unable to compile Kodi's Tvheadend HTSP client addon pvr.hts for some time now
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi there,

I'm compiling Kodi & Addons from source on Slackware 14.2 ARM and the last version of pvr.hts I was able to get compiled was 4.0.8 - git checkout 1caa390dc2ba92a7c614819a6fd427d534b09e62
Been using this version for some time now, still able to compile it whenever I need it and maybe that's why I did not report it until now, happy with it.

Every now and then I try the new code from the master branch and I'm always failing to compile it, getting some errors that might suggest broken source code.
Here is the log from my latest try from today:
Code:
/kit# git clone https://github.com/kodi-pvr/pvr.hts.git
Cloning into 'pvr.hts'...
remote: Enumerating objects: 213, done.
remote: Counting objects: 100% (213/213), done.
remote: Compressing objects: 100% (101/101), done.
remote: Total 6962 (delta 104), reused 134 (delta 39), pack-reused 6749
Receiving objects: 100% (6962/6962), 2.05 MiB | 405.00 KiB/s, done.
Resolving deltas: 100% (4142/4142), done.
/kit# cd pvr.hts/
/kit/pvr.hts# cmake -DCMAKE_INSTALL_PREFIX=/usr
-- The C compiler identification is GNU 5.5.0
-- The CXX compiler identification is GNU 5.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Checking to see if CXX compiler accepts flag -flto
-- Checking to see if CXX compiler accepts flag -flto - yes
-- HTS_VERSION=4.4.3
-- Configuring done
-- Generating done
-- Build files have been written to: /kit/pvr.hts
/kit/pvr.hts# make
Scanning dependencies of target hts
[  3%] Building C object lib/libhts/CMakeFiles/hts.dir/htsbuf.c.o
[  7%] Building C object lib/libhts/CMakeFiles/hts.dir/htsmsg_binary.c.o
[ 11%] Building C object lib/libhts/CMakeFiles/hts.dir/htsmsg.c.o
[ 14%] Building C object lib/libhts/CMakeFiles/hts.dir/htsstr.c.o
[ 18%] Building C object lib/libhts/CMakeFiles/hts.dir/sha1.c.o
[ 22%] Building C object lib/libhts/CMakeFiles/hts.dir/net_posix.c.o
[ 25%] Linking C static library libhts.a
[ 25%] Built target hts
Scanning dependencies of target pvr.hts
[ 29%] Building CXX object CMakeFiles/pvr.hts.dir/src/client.cpp.o
In file included from /kit/pvr.hts/src/client.cpp:26:0:
/kit/pvr.hts/src/Tvheadend.h:212:40: error: 'PVR_DESCRAMBLE_INFO' has not been declared
   PVR_ERROR    DemuxCurrentDescramble( PVR_DESCRAMBLE_INFO *info);
                                        ^
/kit/pvr.hts/src/Tvheadend.h:230:28: error: 'PVR_STREAM_TIMES' has not been declared
   PVR_ERROR GetStreamTimes(PVR_STREAM_TIMES *times);
                            ^
/kit/pvr.hts/src/client.cpp: In function 'PVR_ERROR GetAddonCapabilities(PVR_ADDON_CAPABILITIES*)':
/kit/pvr.hts/src/client.cpp:181:18: error: 'PVR_ADDON_CAPABILITIES {aka struct PVR_ADDON_CAPABILITIES}' has no member named 'bSupportsDescrambleInfo'
   pCapabilities->bSupportsDescrambleInfo     = true;
                  ^
/kit/pvr.hts/src/client.cpp:182:18: error: 'PVR_ADDON_CAPABILITIES {aka struct PVR_ADDON_CAPABILITIES}' has no member named 'bSupportsAsyncEPGTransfer'
   pCapabilities->bSupportsAsyncEPGTransfer   = Settings::GetInstance().GetAsyncEpg();
                  ^
/kit/pvr.hts/src/client.cpp:186:20: error: 'PVR_ADDON_CAPABILITIES {aka struct PVR_ADDON_CAPABILITIES}' has no member named 'bSupportsRecordingsRename'
     pCapabilities->bSupportsRecordingsRename = true;
                    ^
/kit/pvr.hts/src/client.cpp:188:20: error: 'PVR_ADDON_CAPABILITIES {aka struct PVR_ADDON_CAPABILITIES}' has no member named 'bSupportsRecordingsLifetimeChange'
     pCapabilities->bSupportsRecordingsLifetimeChange = true;
                    ^
/kit/pvr.hts/src/client.cpp:194:20: error: 'PVR_ADDON_CAPABILITIES {aka struct PVR_ADDON_CAPABILITIES}' has no member named 'iRecordingsLifetimesSize'
     pCapabilities->iRecordingsLifetimesSize = lifetimeValues.size();
                    ^
/kit/pvr.hts/src/client.cpp:199:22: error: 'PVR_ADDON_CAPABILITIES {aka struct PVR_ADDON_CAPABILITIES}' has no member named 'recordingsLifetimeValues'
       pCapabilities->recordingsLifetimeValues[i].iValue = it->first;
                      ^
/kit/pvr.hts/src/client.cpp:200:30: error: 'PVR_ADDON_CAPABILITIES {aka struct PVR_ADDON_CAPABILITIES}' has no member named 'recordingsLifetimeValues'
       strncpy(pCapabilities->recordingsLifetimeValues[i].strDescription,
                              ^
/kit/pvr.hts/src/client.cpp:202:37: error: 'PVR_ADDON_CAPABILITIES {aka struct PVR_ADDON_CAPABILITIES}' has no member named 'recordingsLifetimeValues'
               sizeof(pCapabilities->recordingsLifetimeValues[i].strDescription) - 1);
                                     ^
/kit/pvr.hts/src/client.cpp: At global scope:
/kit/pvr.hts/src/client.cpp:274:26: error: 'PVR_STREAM_TIMES' was not declared in this scope
 PVR_ERROR GetStreamTimes(PVR_STREAM_TIMES *times)
                          ^
/kit/pvr.hts/src/client.cpp:274:44: error: 'times' was not declared in this scope
 PVR_ERROR GetStreamTimes(PVR_STREAM_TIMES *times)
                                            ^
/kit/pvr.hts/src/client.cpp:275:1: error: expected ',' or ';' before '{' token
 {
 ^
/kit/pvr.hts/src/client.cpp:322:29: error: 'PVR_DESCRAMBLE_INFO' was not declared in this scope
 PVR_ERROR GetDescrambleInfo(PVR_DESCRAMBLE_INFO* descrambleInfo)
                             ^
/kit/pvr.hts/src/client.cpp:322:50: error: 'descrambleInfo' was not declared in this scope
 PVR_ERROR GetDescrambleInfo(PVR_DESCRAMBLE_INFO* descrambleInfo)
                                                  ^
/kit/pvr.hts/src/client.cpp:323:1: error: expected ',' or ';' before '{' token
 {
 ^
/kit/pvr.hts/src/client.cpp:565:58: error: 'PVR_NAMED_VALUE' has not been declared
 PVR_ERROR GetChannelStreamProperties(const PVR_CHANNEL*, PVR_NAMED_VALUE*, unsigned int*)
                                                          ^
/kit/pvr.hts/src/client.cpp:570:62: error: 'PVR_NAMED_VALUE' has not been declared
 PVR_ERROR GetRecordingStreamProperties(const PVR_RECORDING*, PVR_NAMED_VALUE*, unsigned int*)
                                                              ^
/kit/pvr.hts/src/client.cpp:585:53: error: 'PVR_NAMED_VALUE' has not been declared
 PVR_ERROR GetEPGTagStreamProperties(const EPG_TAG*, PVR_NAMED_VALUE*, unsigned int*)
                                                     ^
CMakeFiles/pvr.hts.dir/build.make:62: recipe for target 'CMakeFiles/pvr.hts.dir/src/client.cpp.o' failed
make[2]: *** [CMakeFiles/pvr.hts.dir/src/client.cpp.o] Error 1
CMakeFiles/Makefile2:99: recipe for target 'CMakeFiles/pvr.hts.dir/all' failed
make[1]: *** [CMakeFiles/pvr.hts.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2[/i][/i][/i]


[i][i]Any help/suggestions appreciated![/i][/i]
What Kodi version are you building against?
Sorry I didn't mention that. I'm currently using Kodi Krypton 17.4, stuck with it because of the issues I had with 17.5 (audio code changes - "robustness" that crashed my ARM systems)
I do remember however that I wasn't able to build the latest versions of this pvr.hts addon with neither 17.1 / 17.2 .. etc, at the time these were released.

For more details about how I get Kodi & co compiled on ARM , here is where I documented the process for the Slackware community (there are some subsequent corrections in the thread)
https://www.linuxquestions.org/questions...175613852/
(2018-11-08, 19:22)abga Wrote: [ -> ]Sorry I didn't mention that. I'm currently using Kodi Krypton 17.4, stuck with it because of the issues I had with 17.5 (audio code changes - "robustness" that crashed my ARM systems)
I do remember however that I wasn't able to build the latest versions of this pvr.hts addon with neither 17.1 / 17.2 .. etc, at the time these were released.

For more details about how I get Kodi & co compiled on ARM , here is where I documented the process for the Slackware community (there are some subsequent corrections in the thread)
https://www.linuxquestions.org/questions...175613852/
 git checkout krypton might help. Master is for Leia.
Thanks!

There's no krypton checkout, but you made me aware that there are also other trees besides master, krypton included. I just got it successfully compiled now, out of the krypton source:
Code:
wget https://github.com/kodi-pvr/pvr.hts/archive/Krypton.zip
The version is older - HTS_VERSION=3.4.28 than what I was using until now - 4.0.8 - git checkout 1caa390dc2ba92a7c614819a6fd427d534b09e62. Will check if it's performing better. With 4.0.8 I had some sync issues sometimes, got a blank screen and only audio play when switching channels too fast.
Will mark this thread as resolved.

Thanks all for the prompt care/help!
P.S.
Just wanted to add that I found the latest pvr.hts version that still compiles (compatible) with Kodi 17.x

https://github.com/kodi-pvr/pvr.hts/comm...c367bf+104

Commits on Apr 26, 2017

    Remove not used part
    @AlwinEsch
    AlwinEsch committed on Apr 26, 2017

https://github.com/kodi-pvr/pvr.hts/comm...e49f117eb2

The following will get the addon at version 4.0.9, it compiles & works well with Kodi 17.x Krypton
Code:
git checkout 0e0cd45f9da447c131003a4164623ee49f117eb2


The subsequent commit:
 libXBMC_codec.h removed and changed to libXBMC_pvr.h
@AlwinEsch
AlwinEsch committed on Apr 29, 2017

https://github.com/kodi-pvr/pvr.hts/comm...0ea0f605bd

Is the first one to break the compatibility with Kodi 17.x

EDIT:
- Just realized that I was wrong with the previous assessment, git checkout 0e0cd45f9da447c131003a4164623ee49f117eb2 is not OK:
Kodi log:
Code:
WARNING: Unable to resolve: /pvr.hts.so.4.0.9 ADDON_HasSettings, reason: /usr/lib/kodi/addons/pvr.hts/pvr.hts.so.4.0.9: undefined symbol: ADDON_HasSettings
ERROR: Unable to resolve exports from dll /usr/lib/kodi/addons/pvr.hts/pvr.hts.so.4.0.9
ERROR: UpdateAddons - failed to create add-on Tvheadend HTSP Client, status = 6

As reported in the OP, the version 4.0.8 - git checkout 1caa390dc2ba92a7c614819a6fd427d534b09e62 is the last one compiling, working and tested (for some years)  with Kodi 17.x