Kodi Community Forum

Full Version: librtmp - Help Thread
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi RP,
could you please modify the latest Spmc version?
thanks
patria o muerte, I already provided you a SPMC APK with an updated librtmp. Why are u requesting again? it didn't work?

I'm not making modded APKs without launchers or whatever. But the link i gave u have the latest Librtmp included.
Thats the purpose of this topic. Not removing modules.
Hi, here it is. Sorry for the delay:

libssl.so.1.0.0 => /usr/lib/arm-linux-gnueabihf/libssl.so.1.0.0 (0xb6ea5000)
libcrypto.so.1.0.0 => /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0 (0xb6d42000)
libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0xb6d24000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6cb3000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6b83000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6b77000)
/lib/ld-linux-armhf.so.3 (0xb6f22000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6b4f000)
It still makes no sense. According to those outputs you provided, both my file and the original are linked to the exact same libraries. So no reason at all my library should cause any issue at all.

Try running the following command:

ls -lh /opt/xbmc-bcm/xbmc-bin/lib/xbmc/system

And if you would please put the output in between ["code"] ["/code"] so that it's easier to read via the forum. (Without the quotes ("), had to do that for the forum to show you the tags).

Also if anyone else is having issues please post this same output

Mabs if you see this can you also please post if you don't mind, since yours is working great?
Do you want my output with 30.08 or the today version (126Kb)?
If u think it helps, I can also send you my log
(2014-09-03, 22:09)Mabs Wrote: [ -> ]Do you want my output with 30.08 or the today version (126Kb)?

I would say today's version prob would make more sense, though technically either should work and produce the same results.
@RedPenguin, here are the results for OpenELEC on R-Pi (Helix master, build #0902):

With the 1.8MB test build from post #943:
Code:
rpi512:~ # ls -la ./freenas/data/librtmp_test1.so.0
-rw-rw-r--    1 1001     1001       1865435 Sep  3 19:57 ./freenas/data/librtmp_test1.so.0
rpi512:~ # ldd ./freenas/data/librtmp_test1.so.0 | sort
        /lib/ld-linux-armhf.so.3 (0xb6fc2000)
        /lib/libarmmem.so (0xb6e2e000)
        libc.so.6 => /lib/libc.so.6 (0xb6c79000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb6c54000)
        libm.so.6 => /lib/libm.so.6 (0xb6da9000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb6e1c000)

This librtmp test build is working in OpenELEC.

And your updated test build from post #951:
Code:
rpi512:~ # ls -la ./freenas/data/librtmp_test2.so.0
-rw-rw-r--    1 1001     1001        128388 Sep  3 20:33 ./freenas/data/librtmp_test2.so.0
rpi512:~ # ldd ./freenas/data/librtmp_test2.so.0 | sort
        /lib/ld-linux-armhf.so.3 (0xb6ee8000)
        /lib/libarmmem.so (0xb6eb8000)
        libc.so.6 => /lib/libc.so.6 (0xb6d03000)
        libcrypto.so.1.0.0 => not found
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb6cdd000)
        libm.so.6 => /lib/libm.so.6 (0xb6e33000)
        libssl.so.1.0.0 => not found
        libz.so.1 => /usr/lib/libz.so.1 (0xb6ea6000)

This librtmp test build is not working - it is missing libssl (and also libcrypto):
Code:
20:36:56 52185.804688 T:2764440656   DEBUG: SECTION:LoadDLL(librtmp.so.0)
20:36:56 52185.812500 T:2764440656   DEBUG: Loading: librtmp.so.0
20:36:56 52185.816406 T:2764440656   ERROR: Unable to load librtmp.so.0, reason: libssl.so.1.0.0: cannot open shared object file: No such file or directory
20:36:56 52185.816406 T:2764440656   DEBUG: Dll librtmp.so.0 was not found in path

The dynamic linking of these libraries (presumably, they are statically linked in the working version?) explains why the non-working version is so much smaller.

These are the missing libraries as they are installed on OpenELEC:
Code:
rpi512:~ # ls -la `find /usr/lib -name 'libcrypto*' -or -name 'libssl*'`
lrwxrwxrwx    1 root     root            19 Sep  2 21:57 /usr/lib/libcrypto.so -> libcrypto.so.30.0.0
lrwxrwxrwx    1 root     root            19 Sep  2 21:57 /usr/lib/libcrypto.so.30 -> libcrypto.so.30.0.0
-rwxr-xr-x    1 root     root       1270692 Sep  2 21:57 /usr/lib/libcrypto.so.30.0.0
lrwxrwxrwx    1 root     root            16 Sep  2 21:57 /usr/lib/libssl.so -> libssl.so.27.0.0
lrwxrwxrwx    1 root     root            16 Sep  2 21:57 /usr/lib/libssl.so.27 -> libssl.so.27.0.0
-rwxr-xr-x    1 root     root        270944 Sep  2 21:57 /usr/lib/libssl.so.27.0.0

Adding symbolic links for the installed versions of the libraries...
Code:
rpi512:~ # cd /var/tmp/libhack/3rdparty/
rpi512:~ # ln -s /usr/lib/libssl.so libssl.so.1.0.0
rpi512:~ # ln -s /usr/lib/libcrypto.so libcrypto.so.1.0.0
rpi512:~ # ls -la
lrwxrwxrwx    1 root     root            21 Sep  3 21:01 libcrypto.so.1.0.0 -> /usr/lib/libcrypto.so
lrwxrwxrwx    1 root     root            38 Sep  3 06:07 librtmp.so -> /var/tmp/libhack/3rdparty/librtmp.so.0
-rwxr-xr-x    1 root     root        128388 Sep  3 20:56 librtmp.so.0
lrwxrwxrwx    1 root     root            18 Sep  3 20:59 libssl.so.1.0.0 -> /usr/lib/libssl.so

also doesn't work as the shared object library /usr/lib/libssl.so.27.0.0 is actually based on the LibreSSL fork of OpenSSL, so the installed libssl library is missing various expected properties:
Code:
21:01:52 53682.089844 T:2764440656   DEBUG: SECTION:LoadDLL(librtmp.so.0)
21:01:52 53682.113281 T:2764440656   DEBUG: Loading: librtmp.so.0
21:01:52 53682.113281 T:2764440656   ERROR: Unable to load librtmp.so.0, reason: /usr/lib/libssl.so.27: version `OPENSSL_1.0.0' not found (required by /var/tmp/libhack/3rdparty/librtmp.so.0)
21:01:52 53682.113281 T:2764440656   DEBUG: Dll librtmp.so.0 was not found in path

So for librtmp to work on OpenELEC (Helix) it needs to be statically linked with libssl (OpenSSL version) and libcrypto, or a version created that dynamically links against libcrypto and the LibreSSL fork of libssl (I believe OpenELEC Gotham is still based on OpenSSL).

Ideally a single version of librtmp would work with whatever version of libcrypto or libssl is installed on the system (whether LibreSSL or OpenSSL, 1.0 or 27.0.0 etc.), assuming this is even possible... maybe some library load magic...?
Thank you Milhouse, it's all starting to make some sense to me now.

I think it was just confusing at first as it seemed for ages the builds always worked and then randomly stopped working on RaspBMC out of no where.
If there is a way you can relax the property checks for "OPENSSL_1.0.0" (etc.) when the libssl.so.1.0.0 library is loaded, then it might be possible to use a common version of librtmp.so.0 (the small, 126KB version) on OpenELEC once the additional symbolic links to libcrypto.so and libssl.so are added to the "hack" directory. Note that I'm assuming the LibreSSL version of libssl.so is a drop-in replacement for the OpenSSL libssl.so, which may or may not be the case (I thought that was the initial objective).
RP, here is the output:

PLease note that you'll see your librtmp, and the "old_lbrtmp", which is the original file.

Code:
total 6.6M
-rwxr-xr-x 1 root root 614K Aug 19 05:08 ImageLib-arm.so
-rwxr-xr-x 1 root root  65K Aug 19 05:08 hdhomerun-arm.so
-rw-r--r-- 1 root root 196K Aug 19 05:09 libEGL.so
-rw-r--r-- 1 root root 255K Aug 19 05:09 libEGL_static.a
lrwxrwxrwx 1 root root   12 Aug 19 05:09 libGLESv1_CM.so -> libGLESv2.so
-rw-r--r-- 1 root root 104K Aug 19 05:09 libGLESv2.so
-rw-r--r-- 1 root root 106K Aug 19 05:09 libGLESv2_static.a
-rw-r--r-- 1 root root  96K Aug 19 05:09 libOpenVG.so
-rw-r--r-- 1 root root  77K Aug 19 05:09 libWFC.so
lrwxrwxrwx 1 root root   17 Aug 19 05:08 libafpclient.so -> libafpclient.so.0
lrwxrwxrwx 1 root root   21 Aug 19 05:08 libafpclient.so.0 -> libafpclient.so.0.0.0
-rw-r--r-- 1 root root 101K Aug 19 05:08 libafpclient.so.0.0.0
-rw-r--r-- 1 root root 101K Aug 19 05:09 libbcm_host.so
lrwxrwxrwx 1 root root   16 Aug 19 05:08 libbluray.so.1 -> libbluray.so.1.0
lrwxrwxrwx 1 root root   18 Aug 19 05:08 libbluray.so.1.0 -> libbluray.so.1.0.0
-rw-r--r-- 1 root root 158K Aug 19 05:08 libbluray.so.1.0.0
lrwxrwxrwx 1 root root   11 Aug 19 05:08 libcec.so -> libcec.so.2
lrwxrwxrwx 1 root root   15 Aug 19 05:08 libcec.so.2 -> libcec.so.2.0.1
-rw-r--r-- 1 root root 441K Aug 19 05:08 libcec.so.2.0.1
-rwxr-xr-x 1 root root 170K Aug 19 05:08 libcmyth-arm.so
-rwxr-xr-x 1 root root  84K Aug 19 05:08 libcpluff-arm.so
lrwxrwxrwx 1 root root   12 Aug 19 05:08 libcurl.so -> libcurl.so.3
lrwxrwxrwx 1 root root   12 Aug 19 05:08 libcurl.so.3 -> libcurl.so.4
lrwxrwxrwx 1 root root   16 Aug 19 05:08 libcurl.so.4 -> libcurl.so.4.2.0
-rw-r--r-- 1 root root 356K Aug 19 05:08 libcurl.so.4.2.0
-rw-r--r-- 1 root root  16K Aug 19 05:09 libdebug_sym.so
lrwxrwxrwx 1 root root   17 Aug 19 05:08 libdshairport.so -> libshairport.so.0
lrwxrwxrwx 1 root root   14 Aug 19 05:08 libdvdcss.so -> libdvdcss.so.2
lrwxrwxrwx 1 root root   18 Aug 19 05:08 libdvdcss.so.2 -> libdvdcss.so.2.1.0
-rw-r--r-- 1 root root  34K Aug 19 05:08 libdvdcss.so.2.1.0
-rwxr-xr-x 1 root root  28K Aug 19 05:08 libexif-arm.so
-rw-r--r-- 1 root root  14K Aug 19 05:09 libkhrn_client.a
-rw-r--r-- 1 root root 451K Aug 19 05:09 libkhrn_static.a
-rw-r--r-- 1 root root  13K Aug 19 05:09 libmmal.so
-rw-r--r-- 1 root root  70K Aug 19 05:09 libmmal_core.so
-rw-r--r-- 1 root root  73K Aug 19 05:09 libmmal_util.so
-rw-r--r-- 1 root root  44K Aug 19 05:09 libmmal_vc_client.so
lrwxrwxrwx 1 root root   17 Aug 19 05:08 libmp3lame.so.0 -> libmp3lame.so.0.0
lrwxrwxrwx 1 root root   19 Aug 19 05:08 libmp3lame.so.0.0 -> libmp3lame.so.0.0.0
-rw-r--r-- 1 root root 287K Aug 19 05:08 libmp3lame.so.0.0.0
lrwxrwxrwx 1 root root   11 Aug 19 05:08 libnfs.so -> libnfs.so.1
lrwxrwxrwx 1 root root   15 Aug 19 05:08 libnfs.so.1 -> libnfs.so.1.0.3
-rw-r--r-- 1 root root 111K Aug 19 05:08 libnfs.so.1.0.3
-rw-r--r-- 1 root root  32K Aug 19 05:09 libopenmaxil.so
lrwxrwxrwx 1 root root   12 Aug 19 05:08 librtmp.so -> librtmp.so.0
-rw-r--r-- 1 root root 126K Sep  3 17:07 librtmp.so.0
lrwxrwxrwx 1 root root   12 Sep  3 00:41 librtmp.so.1 -> librtmp.so.0
lrwxrwxrwx 1 root root   17 Aug 19 05:08 libshairplay.so -> libshairplay.so.0
lrwxrwxrwx 1 root root   21 Aug 19 05:08 libshairplay.so.0 -> libshairplay.so.0.0.0
-rw-r--r-- 1 root root 102K Aug 19 05:08 libshairplay.so.0.0.0
lrwxrwxrwx 1 root root   21 Aug 19 05:08 libshairport.so.0 -> libshairport.so.0.0.0
-rw-r--r-- 1 root root  46K Aug 19 05:08 libshairport.so.0.0.0
lrwxrwxrwx 1 root root   16 Aug 19 05:08 libssh2.so.1 -> libssh2.so.1.0.1
-rw-r--r-- 1 root root 128K Aug 19 05:08 libssh2.so.1.0.1
lrwxrwxrwx 1 root root   13 Aug 19 05:08 libtag.so.1 -> libtag.so.1.0
lrwxrwxrwx 1 root root   16 Aug 19 05:08 libtag.so.1.0 -> libtag.so.1.12.0
-rw-r--r-- 1 root root 1.4M Aug 19 05:08 libtag.so.1.12.0
-rw-r--r-- 1 root root 3.0K Aug 19 05:09 libvcfiled_check.a
-rw-r--r-- 1 root root  30K Aug 19 05:09 libvchiq_arm.so
-rw-r--r-- 1 root root 131K Aug 19 05:09 libvchostif.a
-rw-r--r-- 1 root root  27K Aug 19 05:09 libvcilcs.a
-rw-r--r-- 1 root root 162K Aug 19 05:09 libvcos.so
-rw-r--r-- 1 root root  21K Aug 19 05:09 libvcsm.so
-rw-r--r-- 1 root root  30K Aug 19 05:09 libvmcs_rpc_client.a
lrwxrwxrwx 1 root root   12 Aug 19 05:08 libxslt.so -> libxslt.so.1
lrwxrwxrwx 1 root root   17 Aug 19 05:08 libxslt.so.1 -> libxslt.so.1.1.26
-rw-r--r-- 1 root root 214K Aug 19 05:08 libxslt.so.1.1.26
-rw-r--r-- 1 root root 101K Aug 19 05:08 old_librtmp.so.0
drwxr-xr-x 4 root root 4.0K Aug 19 05:08 players
And mine:
Code:
root@raspbmc:~# ls -lh /opt/xbmc-bcm/xbmc-bin/lib/xbmc/system
total 6.5M
-rwxr-xr-x 1 root root 614K Aug 19 05:08 ImageLib-arm.so
-rwxr-xr-x 1 root root  65K Aug 19 05:08 hdhomerun-arm.so
-rw-r--r-- 1 root root 196K Aug 19 05:09 libEGL.so
-rw-r--r-- 1 root root 255K Aug 19 05:09 libEGL_static.a
lrwxrwxrwx 1 root root   12 Aug 19 05:09 libGLESv1_CM.so -> libGLESv2.so
-rw-r--r-- 1 root root 104K Aug 19 05:09 libGLESv2.so
-rw-r--r-- 1 root root 106K Aug 19 05:09 libGLESv2_static.a
-rw-r--r-- 1 root root  96K Aug 19 05:09 libOpenVG.so
-rw-r--r-- 1 root root  77K Aug 19 05:09 libWFC.so
lrwxrwxrwx 1 root root   17 Aug 19 05:08 libafpclient.so -> libafpclient.so.0
lrwxrwxrwx 1 root root   21 Aug 19 05:08 libafpclient.so.0 -> libafpclient.so.0.0.0
-rw-r--r-- 1 root root 101K Aug 19 05:08 libafpclient.so.0.0.0
-rw-r--r-- 1 root root 101K Aug 19 05:09 libbcm_host.so
lrwxrwxrwx 1 root root   16 Aug 19 05:08 libbluray.so.1 -> libbluray.so.1.0
lrwxrwxrwx 1 root root   18 Aug 19 05:08 libbluray.so.1.0 -> libbluray.so.1.0.0
-rw-r--r-- 1 root root 158K Aug 19 05:08 libbluray.so.1.0.0
lrwxrwxrwx 1 root root   11 Aug 19 05:08 libcec.so -> libcec.so.2
lrwxrwxrwx 1 root root   15 Aug 19 05:08 libcec.so.2 -> libcec.so.2.0.1
-rw-r--r-- 1 root root 441K Aug 19 05:08 libcec.so.2.0.1
-rwxr-xr-x 1 root root 170K Aug 19 05:08 libcmyth-arm.so
-rwxr-xr-x 1 root root  84K Aug 19 05:08 libcpluff-arm.so
lrwxrwxrwx 1 root root   12 Aug 19 05:08 libcurl.so -> libcurl.so.3
lrwxrwxrwx 1 root root   12 Aug 19 05:08 libcurl.so.3 -> libcurl.so.4
lrwxrwxrwx 1 root root   16 Aug 19 05:08 libcurl.so.4 -> libcurl.so.4.2.0
-rw-r--r-- 1 root root 356K Aug 19 05:08 libcurl.so.4.2.0
-rw-r--r-- 1 root root  16K Aug 19 05:09 libdebug_sym.so
lrwxrwxrwx 1 root root   17 Aug 19 05:08 libdshairport.so -> libshairport.so.0
lrwxrwxrwx 1 root root   14 Aug 19 05:08 libdvdcss.so -> libdvdcss.so.2
lrwxrwxrwx 1 root root   18 Aug 19 05:08 libdvdcss.so.2 -> libdvdcss.so.2.1.0
-rw-r--r-- 1 root root  34K Aug 19 05:08 libdvdcss.so.2.1.0
-rwxr-xr-x 1 root root  28K Aug 19 05:08 libexif-arm.so
-rw-r--r-- 1 root root  14K Aug 19 05:09 libkhrn_client.a
-rw-r--r-- 1 root root 451K Aug 19 05:09 libkhrn_static.a
-rw-r--r-- 1 root root  13K Aug 19 05:09 libmmal.so
-rw-r--r-- 1 root root  70K Aug 19 05:09 libmmal_core.so
-rw-r--r-- 1 root root  73K Aug 19 05:09 libmmal_util.so
-rw-r--r-- 1 root root  44K Aug 19 05:09 libmmal_vc_client.so
lrwxrwxrwx 1 root root   17 Aug 19 05:08 libmp3lame.so.0 -> libmp3lame.so.0.0
lrwxrwxrwx 1 root root   19 Aug 19 05:08 libmp3lame.so.0.0 -> libmp3lame.so.0.0.0
-rw-r--r-- 1 root root 287K Aug 19 05:08 libmp3lame.so.0.0.0
lrwxrwxrwx 1 root root   11 Aug 19 05:08 libnfs.so -> libnfs.so.1
lrwxrwxrwx 1 root root   15 Aug 19 05:08 libnfs.so.1 -> libnfs.so.1.0.3
-rw-r--r-- 1 root root 111K Aug 19 05:08 libnfs.so.1.0.3
-rw-r--r-- 1 root root  32K Aug 19 05:09 libopenmaxil.so
lrwxrwxrwx 1 root root   12 Aug 19 05:08 librtmp.so -> librtmp.so.0
-rwxr-xr-x 1 root root 126K Sep  3 16:13 librtmp.so.0
lrwxrwxrwx 1 root root   12 Aug 31 18:41 librtmp.so.1 -> librtmp.so.0
lrwxrwxrwx 1 root root   17 Aug 19 05:08 libshairplay.so -> libshairplay.so.0
lrwxrwxrwx 1 root root   21 Aug 19 05:08 libshairplay.so.0 -> libshairplay.so.0.0.0
-rw-r--r-- 1 root root 102K Aug 19 05:08 libshairplay.so.0.0.0
lrwxrwxrwx 1 root root   21 Aug 19 05:08 libshairport.so.0 -> libshairport.so.0.0.0
-rw-r--r-- 1 root root  46K Aug 19 05:08 libshairport.so.0.0.0
lrwxrwxrwx 1 root root   16 Aug 19 05:08 libssh2.so.1 -> libssh2.so.1.0.1
-rw-r--r-- 1 root root 128K Aug 19 05:08 libssh2.so.1.0.1
lrwxrwxrwx 1 root root   13 Aug 19 05:08 libtag.so.1 -> libtag.so.1.0
lrwxrwxrwx 1 root root   16 Aug 19 05:08 libtag.so.1.0 -> libtag.so.1.12.0
-rw-r--r-- 1 root root 1.4M Aug 19 05:08 libtag.so.1.12.0
-rw-r--r-- 1 root root 3.0K Aug 19 05:09 libvcfiled_check.a
-rw-r--r-- 1 root root  30K Aug 19 05:09 libvchiq_arm.so
-rw-r--r-- 1 root root 131K Aug 19 05:09 libvchostif.a
-rw-r--r-- 1 root root  27K Aug 19 05:09 libvcilcs.a
-rw-r--r-- 1 root root 162K Aug 19 05:09 libvcos.so
-rw-r--r-- 1 root root  21K Aug 19 05:09 libvcsm.so
-rw-r--r-- 1 root root  30K Aug 19 05:09 libvmcs_rpc_client.a
lrwxrwxrwx 1 root root   12 Aug 19 05:08 libxslt.so -> libxslt.so.1
lrwxrwxrwx 1 root root   17 Aug 19 05:08 libxslt.so.1 -> libxslt.so.1.1.26
-rw-r--r-- 1 root root 214K Aug 19 05:08 libxslt.so.1.1.26
drwxr-xr-x 4 root root 4.0K Aug 19 05:08 players
Where are the libssl.so.* and libcrypto.so.* libraries in Raspbmc... presumably /usr/lib?
(2014-09-03, 23:06)Milhouse Wrote: [ -> ]Where are the libssl.so.* and libcrypto.so.* libraries in Raspbmc... presumably /usr/lib?

They are located in /usr/lib/arm-linux-gnueabihf/.
Any new idea, guys? Mine now is on a loop of reboots. Can't do anything but wait and hope to stop.

EDIT: Even during the reboot loop, I managed to root access using Filezilla, change RP's librtmp for the original one and it stopped immediately on the main menu.

Strange how I could do it while the Pi was rebooting and also strange the speed that it became stable right after the file change.

I feel bad for giving you all this trouble.
(2014-09-03, 21:45)Mabs Wrote: [ -> ]patria o muerte, I already provided you a SPMC APK with an updated librtmp. Why are u requesting again? it didn't work?

I'm not making modded APKs without launchers or whatever. But the link i gave u have the latest Librtmp included.
Thats the purpose of this topic. Not removing modules.

Hi Mabs,
thank you for provide me your apk,it works fine but i can't hide the systembar,it's very annoying.