[vdr] porting vdr-plugin-sc from FFdecsa to dvbcsa: undefined symbol

2013-12-27 Thread cedric.dew...@telfort.nl
Hi All,
I am trying to run vdr-plugin-sc on my D-link DNS323 running debian. This NAS 
has an ARM processor, so FFdecsa fails to compile.
I am however able to compile and run vdr-plugin-dvb-api. (I cannot connect to 
OSCAM yet, but that's another discussion) 
vdr-plugin-dvb-api has code to use both FFdecsa and dvbcsa.
I have changed the source of vdr-plugin-sc to use dvbcsa. This compiles and 
installs fine, but I see the following error in /var/log/syslog when I start VDR
vdr: [8061] ERROR: /usr/lib/vdr/plugins/libvdr-sc.so.1.7.28: undefined symbol: 
_Z18dvbcsa_bs_key_freeP15dvbcsa_bs_key_s
vdr: [8118] VDR version 1.7.28 started
I see a strange thing with ldd, libdvbcsa.so.1 has not been linked in. I guess 
I have forgot to tell the linker to use that library:
# ldd /usr/lib/vdr/plugins/libsc-cardclient-30.so.1.7.28 
libcrypto.so.1.0.0 = /usr/lib/arm-linux-gnueabi/libcrypto.so.1.0.0 
(0xb6da5000)
libcrypt.so.1 = /lib/arm-linux-gnueabi/libcrypt.so.1 (0xb6d73000)
libstdc++.so.6 = /usr/lib/arm-linux-gnueabi/libstdc++.so.6 (0xb6ca4000)
libm.so.6 = /lib/arm-linux-gnueabi/libm.so.6 (0xb6bfb000)
libgcc_s.so.1 = /lib/arm-linux-gnueabi/libgcc_s.so.1 (0xb6bd1000)
libc.so.6 = /lib/arm-linux-gnueabi/libc.so.6 (0xb6a9b000)
libdl.so.2 = /lib/arm-linux-gnueabi/libdl.so.2 (0xb6a8f000)
libz.so.1 = /lib/arm-linux-gnueabi/libz.so.1 (0xb6a71000)
/lib/ld-linux.so.3 (0xb6f47000)
# ldd /usr/lib/vdr/plugins/libvdr-sc.so.1.7.28   
libcrypto.so.1.0.0 = /usr/lib/arm-linux-gnueabi/libcrypto.so.1.0.0 
(0xb6d31000)
libstdc++.so.6 = /usr/lib/arm-linux-gnueabi/libstdc++.so.6 (0xb6c61000)
libm.so.6 = /lib/arm-linux-gnueabi/libm.so.6 (0xb6bb8000)
libgcc_s.so.1 = /lib/arm-linux-gnueabi/libgcc_s.so.1 (0xb6b8e000)
libc.so.6 = /lib/arm-linux-gnueabi/libc.so.6 (0xb6a58000)
libdl.so.2 = /lib/arm-linux-gnueabi/libdl.so.2 (0xb6a4d000)
libz.so.1 = /lib/arm-linux-gnueabi/libz.so.1 (0xb6a2e000)
/lib/ld-linux.so.3 (0xb6f08000)
# ldd /usr/lib/vdr/plugins/libvdr-dvbapi.so
libdvbcsa.so.1 = /usr/lib/arm-linux-gnueabi/libdvbcsa.so.1 (0xb6f9b000)
libstdc++.so.6 = /usr/lib/arm-linux-gnueabi/libstdc++.so.6 (0xb6ecb000)
libm.so.6 = /lib/arm-linux-gnueabi/libm.so.6 (0xb6e22000)
libgcc_s.so.1 = /lib/arm-linux-gnueabi/libgcc_s.so.1 (0xb6df8000)
libc.so.6 = /lib/arm-linux-gnueabi/libc.so.6 (0xb6cc2000)
/lib/ld-linux.so.3 (0xb6fe1000)
Could somebody have a look at my Makefile (attached)? I suspect I made a 
mistake there
Best regards,
Cedric


Makefile
Description: Binary data
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] porting vdr-plugin-sc from FFdecsa to dvbcsa: undefined symbol

2013-12-27 Thread cedric.dew...@telfort.nl
Hi All,
I am trying to run vdr-plugin-sc on my D-link DNS323 running debian. This NAS 
has an ARM processor, so FFdecsa fails to compile.
I am however able to compile and run vdr-plugin-dvb-api. (I cannot connect to 
OSCAM yet, but that's another discussion) 
vdr-plugin-dvb-api has code to use both FFdecsa and dvbcsa.
I have changed the source of vdr-plugin-sc to use dvbcsa. This compiles and 
installs fine, but I see the following error in /var/log/syslog when I start VDR
vdr: [8061] ERROR: /usr/lib/vdr/plugins/libvdr-sc.so.1.7.28: undefined symbol: 
_Z18dvbcsa_bs_key_freeP15dvbcsa_bs_key_s
vdr: [8118] VDR version 1.7.28 started
I see a strange thing with ldd, libdvbcsa.so.1 has not been linked in. I guess 
I have forgot to tell the linker to use that library:
# ldd /usr/lib/vdr/plugins/libsc-cardclient-30.so.1.7.28 
libcrypto.so.1.0.0 = /usr/lib/arm-linux-gnueabi/libcrypto.so.1.0.0 
(0xb6da5000)
libcrypt.so.1 = /lib/arm-linux-gnueabi/libcrypt.so.1 (0xb6d73000)
libstdc++.so.6 = /usr/lib/arm-linux-gnueabi/libstdc++.so.6 (0xb6ca4000)
libm.so.6 = /lib/arm-linux-gnueabi/libm.so.6 (0xb6bfb000)
libgcc_s.so.1 = /lib/arm-linux-gnueabi/libgcc_s.so.1 (0xb6bd1000)
libc.so.6 = /lib/arm-linux-gnueabi/libc.so.6 (0xb6a9b000)
libdl.so.2 = /lib/arm-linux-gnueabi/libdl.so.2 (0xb6a8f000)
libz.so.1 = /lib/arm-linux-gnueabi/libz.so.1 (0xb6a71000)
/lib/ld-linux.so.3 (0xb6f47000)
# ldd /usr/lib/vdr/plugins/libvdr-sc.so.1.7.28   
libcrypto.so.1.0.0 = /usr/lib/arm-linux-gnueabi/libcrypto.so.1.0.0 
(0xb6d31000)
libstdc++.so.6 = /usr/lib/arm-linux-gnueabi/libstdc++.so.6 (0xb6c61000)
libm.so.6 = /lib/arm-linux-gnueabi/libm.so.6 (0xb6bb8000)
libgcc_s.so.1 = /lib/arm-linux-gnueabi/libgcc_s.so.1 (0xb6b8e000)
libc.so.6 = /lib/arm-linux-gnueabi/libc.so.6 (0xb6a58000)
libdl.so.2 = /lib/arm-linux-gnueabi/libdl.so.2 (0xb6a4d000)
libz.so.1 = /lib/arm-linux-gnueabi/libz.so.1 (0xb6a2e000)
/lib/ld-linux.so.3 (0xb6f08000)
# ldd /usr/lib/vdr/plugins/libvdr-dvbapi.so
libdvbcsa.so.1 = /usr/lib/arm-linux-gnueabi/libdvbcsa.so.1 (0xb6f9b000)
libstdc++.so.6 = /usr/lib/arm-linux-gnueabi/libstdc++.so.6 (0xb6ecb000)
libm.so.6 = /lib/arm-linux-gnueabi/libm.so.6 (0xb6e22000)
libgcc_s.so.1 = /lib/arm-linux-gnueabi/libgcc_s.so.1 (0xb6df8000)
libc.so.6 = /lib/arm-linux-gnueabi/libc.so.6 (0xb6cc2000)
/lib/ld-linux.so.3 (0xb6fe1000)
Could somebody have a look at my Makefile (attached)? I suspect I made a 
mistake there
Best regards,
Cedric
I have  added -ldvbcsa to the makefile, but this did not solve the problem:
### Includes and Defines
INCLUDES  = -I$(VDRDIR)
DEFINES   = -DPLUGIN_NAME_I18N='$(PLUGIN)'
SHAREDDEFINES = -DAPIVERSNUM=$(APIVERSNUM) -D_GNU_SOURCE
LIBS  = -lcrypto -ldvbcsa
SHAREDLIBS=
ldd now indeed reports the library being linked in:
# ldd /usr/lib/vdr/plugins/libvdr-sc.so.1.7.28   
libcrypto.so.1.0.0 = /usr/lib/arm-linux-gnueabi/libcrypto.so.1.0.0 
(0xb6dfb000)
libdvbcsa.so.1 = /usr/lib/arm-linux-gnueabi/libdvbcsa.so.1 (0xb6dd8000)
libstdc++.so.6 = /usr/lib/arm-linux-gnueabi/libstdc++.so.6 (0xb6d09000)
libm.so.6 = /lib/arm-linux-gnueabi/libm.so.6 (0xb6c6)
libgcc_s.so.1 = /lib/arm-linux-gnueabi/libgcc_s.so.1 (0xb6c36000)
libc.so.6 = /lib/arm-linux-gnueabi/libc.so.6 (0xb6b0)
libdl.so.2 = /lib/arm-linux-gnueabi/libdl.so.2 (0xb6af4000)
libz.so.1 = /lib/arm-linux-gnueabi/libz.so.1 (0xb6ad6000)
/lib/ld-linux.so.3 (0xb6fd2000)
But VDR still reports the error:
vdr: [10991] ERROR: /usr/lib/vdr/plugins/libvdr-sc.so.1.7.28: undefined symbol: 
_Z18dvbcsa_bs_key_freeP15dvbcsa_bs_key_s
vdr: [11048] VDR version 1.7.28 started
And during the build, I got a warning that no symbold are used:
g++ -g -Wall -Woverloaded-virtual -Wno-parentheses -O2 -fPIC 
-fno-strict-aliasing -shared sc.o data.o filter.o system.o misc.o cam.o 
device.o version.o smartcard.o network.o crypto.o system-common.o parse.o log.o 
override.o -lcrypto -ldvbcsa  -o libvdr-sc.so
...
dh_shlibdeps -pvdr-plugin-sc
dpkg-shlibdeps: warning: package could avoid a useless dependency if 
debian/vdr-plugin-sc/usr/lib/vdr/plugins/libvdr-sc.so.1.7.28 was not linked 
against libdvbcsa.so.1 (it uses none of the library's symbols)
dh_installdeb -plibvdr-sc-cardclient 
I find this odd, because /usr/include/dvbcsa/dvbcsa.h contains the function 
prototypes for both dvbcsa_bs_key_free and dvbcsa_bs_key_s :
void dvbcsa_bs_key_free(struct dvbcsa_bs_key_s *key);
struct dvbcsa_bs_key_s * dvbcsa_bs_key_alloc(void);
But why are they concatenated into one symbol?
Best regards,
Cedric
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] porting vdr-plugin-sc from FFdecsa to dvbcsa: undefined symbol

2013-12-27 Thread Reinhard Nissl

Hi,

Am 27.12.2013 11:30, schrieb cedric.dew...@telfort.nl:


This compiles and installs fine, but I see the following
error in /var/log/syslog when I start VDR
vdr: [8061] ERROR: /usr/lib/vdr/plugins/libvdr-sc.so.1.7.28:
undefined symbol: _Z18dvbcsa_bs_key_freeP15dvbcsa_bs_key_s
vdr: [8118] VDR version 1.7.28 started

I find this odd, because /usr/include/dvbcsa/dvbcsa.h contains
the function prototypes for both dvbcsa_bs_key_free and
dvbcsa_bs_key_s :
void dvbcsa_bs_key_free(struct dvbcsa_bs_key_s *key);
struct dvbcsa_bs_key_s * dvbcsa_bs_key_alloc(void);

But why are they concatenated into one symbol?


Looks like you are using a plain C library with C++. The 
undefined symbol is a C++ decorated one:


corei7:~ # c++filt _Z18dvbcsa_bs_key_freeP15dvbcsa_bs_key_s
dvbcsa_bs_key_free(dvbcsa_bs_key_s*)
corei7:~ #

It seems like the header files for libdvbcsa are not prepared for 
C++. So the compiler puts a reference for a C++ decorated symbol 
into the object file which the linker cannot resolve as the 
library seems to contain only plain C symbols.


Try to put the #include statements for those header files into an 
extern C block, like this:


extern C {
#include headerfile.h
}

This makes the compiler interpret the header file as plain C and 
-- as a result -- generate plain C symbol references.


Hope this helps.

Bye.
--
Dipl.-Inform. (FH) Reinhard Nissl
mailto:rni...@gmx.de

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] porting vdr-plugin-sc from FFdecsa to dvbcsa: undefined symbol

2013-12-27 Thread cedric.dew...@telfort.nl

Origineel Bericht
Van : rni...@gmx.de
Datum : 27/12/2013 12:14
Aan : vdr@linuxtv.org
Onderwerp : Re: [vdr] porting vdr-plugin-sc from FFdecsa to dvbcsa: undefined 
symbol

Hi,

Am 27.12.2013 11:30, schrieb cedric.dew...@telfort.nl:

 This compiles and installs fine, but I see the following
 error in /var/log/syslog when I start VDR
 vdr: [8061] ERROR: /usr/lib/vdr/plugins/libvdr-sc.so.1.7.28:
 undefined symbol: _Z18dvbcsa_bs_key_freeP15dvbcsa_bs_key_s
 vdr: [8118] VDR version 1.7.28 started

 I find this odd, because /usr/include/dvbcsa/dvbcsa.h contains
 the function prototypes for both dvbcsa_bs_key_free and
 dvbcsa_bs_key_s :
 void dvbcsa_bs_key_free(struct dvbcsa_bs_key_s *key);
 struct dvbcsa_bs_key_s * dvbcsa_bs_key_alloc(void);

 But why are they concatenated into one symbol?

Looks like you are using a plain C library with C++. The 
undefined symbol is a C++ decorated one:

corei7:~ # c++filt _Z18dvbcsa_bs_key_freeP15dvbcsa_bs_key_s
dvbcsa_bs_key_free(dvbcsa_bs_key_s*)
corei7:~ #

It seems like the header files for libdvbcsa are not prepared for 
C++. So the compiler puts a reference for a C++ decorated symbol 
into the object file which the linker cannot resolve as the 
library seems to contain only plain C symbols.

Try to put the #include statements for those header files into an 
extern C block, like this:

extern C {
#include headerfile.h
}

This makes the compiler interpret the header file as plain C and 
-- as a result -- generate plain C symbol references.

Hope this helps.

Bye.
-- 
Dipl.-Inform. (FH) Reinhard Nissl
mailto:rni...@gmx.de

Hi  Reinhard,

It works! I have done what you said in cam.c. Now VDR starts the plugin without 
error messages.
now let's add the configuration files for sc, and watch some pay-TV (hopefuly)

Thank you very much.
Cedric

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] porting vdr-plugin-sc from FFdecsa to dvbcsa: undefined symbol

2013-12-27 Thread cedric.dew...@telfort.nl

Hi  Reinhard,

It works! I have done what you said in cam.c. Now VDR starts the plugin 
without error messages.
now let's add the configuration files for sc, and watch some pay-TV (hopefuly)

Thank you very much.
Cedric

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

I've added the configuration files, after this guide:
https://wiki.debian.org/VDR#Adding_support_for_encrypted_broadcasts

Now I got this error in /var/log/syslog :
vdr: [15561] [general.debug] internal: ci rb frame sync got=8 avail=8 - 06 00 
00 01 80 02 01 80
vdr: [15562] [general.debug] internal: ci rb frame sync got=8 avail=8 - 06 00 
00 01 80 02 01 80
vdr: [15561] [general.debug] internal: ci rb frame sync got=11 avail=11 - 09 00 
a0 07 01 91 04 00 03 00 41
vdr: [15562] [general.debug] internal: ci rb frame sync got=11 avail=11 - 09 00 
a0 07 01 91 04 00 03 00 41
not all devices ready after 30 seconds

Then I executed this:
# /bin/echo 2  /proc/cpu/alignment

After a restart of VDR everything works. I'm now watching an encrypted show. 
CPU of the NAS is maxed out, but I don't see any framedrops in the show.

best regards,
Cedric


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


[vdr] popcorn hour A110 / HDX 1000 as vdr client?

2013-12-27 Thread cedric.dew...@telfort.nl
Hi All,
My headless VDR server is starting to be usable. Therefore I'm looking for a 
low-power client.
I have been given an HDX 1000 (cross-flashed with the popcorn hour A110 
firmware)
I came across this german page, it looks like the A110 can be used as VDR 
client.
http://www.popcornforum.de/showthread.php?tid=5201pid=176551#pid176551
Does anybody has experience with this ?
Is there other / better ways to use the popcorn hour A110 as a vdr client?
Kind regards,
Cedric
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] porting vdr-plugin-sc from FFdecsa to dvbcsa: undefined symbol

2013-12-27 Thread Mariusz Bialonczyk
On 12/27/2013 06:55 PM, cedric.dew...@telfort.nl wrote:
 not all devices ready after 30 seconds
 
 Then I executed this:
 # /bin/echo 2  /proc/cpu/alignment
This could drop performance, instead you can try apply
the fix which is not in vdr-sc but should be cleanly
applied to its sources as well:
https://github.com/manio/vdr-plugin-dvbapi/commit/6bc3f5a419f97dcc1c9d062881a1d04738c5b391

regards,
-- 
Mariusz Białończyk | xmpp/e-mail: ma...@skyboo.net
http://manio.skyboo.net | https://github.com/manio

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] vdr on an underpowered NAS (D-link DNS 323)

2013-12-27 Thread cedric.dew...@telfort.nl

Origineel Bericht
Van : loesc...@gmx.de
Datum : 27/12/2013 22:37
Aan : cedric.dew...@telfort.nl
Onderwerp : Re: [vdr] vdr on an underpowered NAS (D-link DNS 323)

Am 12/22/13 10:22, schrieb cedric.dew...@telfort.nl:

 I am trying to install VDR on my NAS, a D-link DNS-323. This goes great,
 I can play  record unencrypted channels. without any problem.


Hi Cedric,

How did you manage to install VDR on the D-Link 323?
Do you have a howto?

Regards,
Stephan.

-- 
loesc...@gmx.de
http://www.loescher-online.de/

Hi Stephan,

I have followed he following manuals:
1) Install debian on the NAS:
http://www.cyrius.com/debian/orion/d-link/dns-323/install/
2) Install VDR on debian: (written by me :-) )
https://wiki.debian.org/VDR

The only thing is that sc does not compile on the NAS. In order to fix that I 
have ported it from FFdecsa to dvbcsa. I will post the solution in this thread:
 http://www.mail-archive.com/vdr@linuxtv.org/msg17681.html

Also the NAS is slow, but watching one encrypted show, or record two encrypted 
shows, or record 4 unencrypted shows works for me. SD quality, I don't receive 
HD here.

Please let me know about your progress.

Regards,
Cedric

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr