Closed MegaV0lt closed 3 years ago
@MegaV0lt Thank you for the report. Damn, we have a regression (even with testing on several configurations). Can you tell me if you are compiling it against libdvbcsa or FFdecsa?
Ihave LibDVBCSA enabled im makefile... Did not test ffdecsa so far, because the benchmak.sh reports unknown cpu
When i disable LIBDVBCSA it is building:
[/usr/local/src/VDR/PLUGINS/src/dvbapi-git] # make
CC CAPMT.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DUSE_MENUSELECTION -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBSSL -o CAPMT.o CAPMT.cpp
CC DeCSA.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DUSE_MENUSELECTION -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBSSL -o DeCSA.o DeCSA.cpp
CC DVBAPI.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DUSE_MENUSELECTION -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBSSL -o DVBAPI.o DVBAPI.cpp
CC DVBAPISetup.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DUSE_MENUSELECTION -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBSSL -o DVBAPISetup.o DVBAPISetup.cpp
CC SocketHandler.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DUSE_MENUSELECTION -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBSSL -o SocketHandler.o SocketHandler.cpp
CC SCCIAdapter.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DUSE_MENUSELECTION -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBSSL -o SCCIAdapter.o SCCIAdapter.cpp
CC Frame.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DUSE_MENUSELECTION -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBSSL -o Frame.o Frame.cpp
CC SCCAMSlot.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DUSE_MENUSELECTION -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBSSL -o SCCAMSlot.o SCCAMSlot.cpp
CC Filter.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DUSE_MENUSELECTION -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBSSL -o Filter.o Filter.cpp
CC cscrypt/des.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DUSE_MENUSELECTION -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBSSL -o cscrypt/des.o cscrypt/des.cpp
CC FFdecsa/FFdecsa.o
make[1]: Verzeichnis „/usr/local/src/vdr-2.4.5-MV/PLUGINS/src/dvbapi-git/FFdecsa“ wird betreten
CC FFdecsa.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -O3 -march=native -fPIC -fomit-frame-pointer -funroll-loops -DPARALLEL_MODE=PARALLEL_128_SSE2 -c FFdecsa.c
CC FFdecsa_test.o
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -O3 -march=native -fPIC -fomit-frame-pointer -funroll-loops -DPARALLEL_MODE=PARALLEL_128_SSE2 -c FFdecsa_test.c
CC FFdecsa_test
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -O3 -march=native -fPIC -fomit-frame-pointer -funroll-loops -o FFdecsa_test FFdecsa_test.o FFdecsa.o
FFdecsa 1.0: testing correctness and speed
CORRECT!
CORRECT!
CORRECT!
CORRECT!
CORRECT!
speed=1000.135888 Mbit/s
speed=679440.141324 pkts/s
CORRECT!
CORRECT!
CORRECT!
CORRECT!
CORRECT!
make[1]: Verzeichnis „/usr/local/src/vdr-2.4.5-MV/PLUGINS/src/dvbapi-git/FFdecsa“ wird verlassen
LD libvdr-dvbapi.so
c++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -shared CAPMT.o DeCSA.o DVBAPI.o DVBAPISetup.o SocketHandler.o SCCIAdapter.o Frame.o SCCAMSlot.o Filter.o cscrypt/des.o FFdecsa/FFdecsa.o -lcrypto -lssl -o libvdr-dvbapi.so
GT po/dvbapi.pot
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-dvbapi --package-version= --msgid-bugs-address='<see README>' -o po/dvbapi.pot `ls SocketHandler.cpp DVBAPI.cpp Frame.cpp CAPMT.cpp SCCIAdapter.cpp SCCAMSlot.cpp DVBAPISetup.cpp DeCSA.cpp Filter.cpp DVBAPI.h`
PO po/et_EE.po
msgmerge -U --no-wrap --no-location --backup=none -q -N po/et_EE.po po/dvbapi.pot
MO po/et_EE.mo
msgfmt -c -o po/et_EE.mo po/et_EE.po
PO po/fi_FI.po
msgmerge -U --no-wrap --no-location --backup=none -q -N po/fi_FI.po po/dvbapi.pot
MO po/fi_FI.mo
msgfmt -c -o po/fi_FI.mo po/fi_FI.po
PO po/lt_LT.po
msgmerge -U --no-wrap --no-location --backup=none -q -N po/lt_LT.po po/dvbapi.pot
MO po/lt_LT.mo
msgfmt -c -o po/lt_LT.mo po/lt_LT.po
PO po/de_DE.po
msgmerge -U --no-wrap --no-location --backup=none -q -N po/de_DE.po po/dvbapi.pot
MO po/de_DE.mo
msgfmt -c -o po/de_DE.mo po/de_DE.po
Is this fast enought for 6 HD streams at the same time?
Thanks for testing... Yeah, it should be enough
I have same issue on Debian testing. Because I am not sure how to disable LIBDVBCSA in makefile, I reverted to last good commit from 2019.
In my case i have a Make.plgcfg in VDR folder:
# dvbapi
#LIBDVBCSA = 1
CSAFLAGS = -O3 -march=native -fPIC -fomit-frame-pointer -funroll-loops
PARALLEL = PARALLEL_128_SSE2
Maybe the name differs or it is in Make.config
I don't have such file in my vdr directory. I am using vdr from git. However I tried compiling with options:
root@vdr:/usr/local/src/vdr# PARALLEL=PARALLEL_128_SSE2 CSAFLAGS="-O3 -march=native -fPIC -fomit-frame-pointer -funroll-loops" LIBDVBCSA=0 make plugins
Plugin dvbapi:
CC DeCSA.o
DeCSA.cpp: In member function ‘bool DeCSAKey::Set_even_control_word(const unsigned char)’:
DeCSA.cpp:417:31: error: expected primary-expression before ‘->’ token
417 | dvbcsa_bs_key_set(ca_descr->cw, cs_key_even);
| ^~
DeCSA.cpp: In member function ‘bool DeCSAKey::Set_odd_control_word(const unsigned char)’:
DeCSA.cpp:436:31: error: expected primary-expression before ‘->’ token
436 | dvbcsa_bs_key_set(ca_descr->cw, cs_key_odd);
| ^~
DeCSA.cpp: In constructor ‘DeCSAAdapter::DeCSAAdapter()’:
DeCSA.cpp:470:3: error: ‘cs’ was not declared in this scope; did you mean ‘cos’?
470 | cs = dvbcsa_bs_batch_size();
| ^~
| cos
DeCSA.cpp: In member function ‘bool DeCSA::SetDescr(ca_descr_t, bool, int)’:
DeCSA.cpp:663:5: error: ‘FAST_ECM’ was not declared in this scope
663 | FAST_ECM fecm;
| ^~~~
DeCSA.cpp:664:24: error: ‘class DeCSAKey’ has no member named ‘Get_FastECM_struct’
664 | DeCSAKeyArray[idx].Get_FastECM_struct(fecm);
| ^~~~~~
DeCSA.cpp:664:43: error: ‘fecm’ was not declared in this scope
664 | DeCSAKeyArray[idx].Get_FastECM_struct(fecm);
| ^~~~
DeCSA.cpp:666:20: error: ‘GetTick’ was not declared in this scope
666 | uint64_t now = GetTick();
| ^~~
DeCSA.cpp:676:24: error: ‘class DeCSAKey’ has no member named ‘Get_control_words’; did you mean ‘Set_odd_control_word’?
676 | DeCSAKeyArray[idx].Get_control_words(cweven, cwodd);
| ^~~~~
| Set_odd_control_word
DeCSA.cpp: In member function ‘void DeCSA::DebugLogPidmap()’:
DeCSA.cpp:849:9: error: ‘FAST_ECM’ was not declared in this scope
849 | FAST_ECM fecm;
| ^~~~
DeCSA.cpp:850:33: error: ‘class DeCSAKey’ has no member named ‘Get_FastECM_struct’
850 | if (DeCSAKeyArray[iidx].Get_FastECM_struct(fecm))
| ^~~~~~
DeCSA.cpp:850:52: error: ‘fecm’ was not declared in this scope
850 | if (DeCSAKeyArray[iidx].Get_FastECM_struct(fecm))
| ^~~~
DeCSA.cpp:852:26: error: ‘GetTick’ was not declared in this scope
852 | uint64_t now = GetTick();
| ^~~
DeCSA.cpp:862:31: error: ‘class DeCSAKey’ has no member named ‘GetActiveParity’
862 | DeCSAKeyArray[iidx].GetActiveParity(ipid, aparity, aparity2);
| ^~~~~~~
DeCSA.cpp: In member function ‘void DeCSA::InitFastEcmOnCaid(int)’:
DeCSA.cpp:895:22: error: ‘class DeCSAKey’ has no member named ‘InitFastEcmOnCaid’
895 | DeCSAKeyArray[i].InitFastEcmOnCaid(Caid);
| ^~~~~
DeCSA.cpp: In member function ‘void DeCSA::SetFastECMPid(int, int, int, int)’:
DeCSA.cpp:904:24: error: ‘class DeCSAKey’ has no member named ‘SetFastECMPid’
904 | DeCSAKeyArray[idx].SetFastECMPid(dvbapiPID);
| ^~~~~
DeCSA.cpp: In member function ‘int DeCSAAdapter::GetCaid(DeCSA, int)’:
DeCSA.cpp:937:38: error: ‘class DeCSAKey’ has no member named ‘Get_FastECM_CAID’
937 | parent->DeCSAKeyArray[idx].Get_FastECM_CAID(&caCaid);
| ^~~~
DeCSA.cpp:946:34: error: ‘class DeCSAKey’ has no member named ‘Get_FastECM_CAID’
946 | parent->DeCSAKeyArray[idx].Get_FastECM_CAID(&caCaid);
| ^~~~
DeCSA.cpp: In member function ‘bool DeCSAAdapter::Decrypt(DeCSA, unsigned char, int, bool)’:
DeCSA.cpp:1021:47: error: ‘currIdx’ was not declared in this scope
1021 | if (idx >= 0 && (pid < MAX_CSA_PID) && (currIdx < 0 || idx == currIdx)) // same or no index
| ^~~
DeCSA.cpp:1154:7: error: ‘currIdx’ was not declared in this scope
1154 | if (currIdx >= 0 && (parent->GetAlgo(currIdx) == CA_ALGO_DES || parent->DeCSAKeyArray[currIdx].Aes || parent->GetAlgo(currIdx) == CA_ALGO_AES128))
| ^~~
DeCSA.cpp:1339:7: error: ‘currIdx’ was not declared in this scope
1339 | if (currIdx >= 0 && wantsparity > 0 && parent->GetorCreateKeyStruct(currIdx) )
| ^~~
DeCSA.cpp:1339:50: error: ‘class DeCSA’ has no member named ‘GetorCreateKeyStruct’
1339 | if (currIdx >= 0 && wantsparity > 0 && parent->GetorCreateKeyStruct(currIdx) )
| ^~~~~~~~
DeCSA.cpp:1344:25: error: ‘cs_key_even’ was not declared in this scope; did you mean ‘cs_fill_even’?
1344 | dvbcsa_bs_decrypt(cs_key_even[currIdx], cs_tsbbatch_even, 184);
| ^~~
| cs_fill_even
DeCSA.cpp:1349:25: error: ‘cs_key_odd’ was not declared in this scope
1349 | dvbcsa_bs_decrypt(cs_key_odd[currIdx], cs_tsbbatch_odd, 184);
| ^~~~~~
DeCSA.cpp:955:11: warning: unused variable ‘adapter_index’ [-Wunused-variable]
955 | uint8_t adapter_index = cardindex;
| ^~~~~
DeCSA.cpp:957:8: warning: unused variable ‘blogfull’ [-Wunused-variable]
957 | bool blogfull = false;
| ^~~~
DeCSA.cpp:962:12: warning: unused variable ‘sleeptime’ [-Wunused-variable]
962 | uint64_t sleeptime = 0;
| ^~~~~
DeCSA.cpp:966:7: warning: unused variable ‘imaxSleep’ [-Wunused-variable]
966 | int imaxSleep = itimeout / iSleep;
| ^~~~~
make[1]: [Makefile:90: DeCSA.o] Error 1
this looks like the error you are getting.
However, If I just run make. I get different errors:
* Plugin dvbapi:
CC DeCSA.o
In file included from DeCSA.h:31,
from DeCSA.cpp:34:
FFdecsa/FFdecsa.h:28:5: error: ‘uint64_t’ does not name a type; did you mean ‘u_int64_t’?
28 | uint64_t evenparityTime;
| ^~~~
| u_int64_t
FFdecsa/FFdecsa.h:29:5: error: ‘uint64_t’ does not name a type; did you mean ‘u_int64_t’?
29 | uint64_t oddparityTime;
| ^~~~
| u_int64_t
In file included from DeCSA.h:31,
from DeCSA.cpp:34:
FFdecsa/FFdecsa.h:86:1: error: ‘uint64_t’ does not name a type; did you mean ‘u_int64_t’?
86 | uint64_t GetTick(void);
| ^~~~
| u_int64_t
DeCSA.cpp: In member function ‘void DeCSAKey::InitFastEcmOnCaid(int)’:
DeCSA.cpp:344:11: error: ‘struct FAST_ECM’ has no member named ‘oddparityTime’
344 | sf->oddparityTime = 0;
| ^~~~~
DeCSA.cpp:345:11: error: ‘struct FAST_ECM’ has no member named ‘evenparityTime’
345 | sf->evenparityTime = 0;
| ^~~~~~
DeCSA.cpp: In member function ‘bool DeCSA::SetDescr(ca_descr_t, bool, int)’:
DeCSA.cpp:666:20: error: ‘GetTick’ was not declared in this scope
666 | uint64_t now = GetTick();
| ^~~
DeCSA.cpp:668:14: error: ‘struct FAST_ECM’ has no member named ‘evenparityTime’
668 | if (fecm.evenparityTime > 0)
| ^~~~~~
DeCSA.cpp:669:30: error: ‘struct FAST_ECM’ has no member named ‘evenparityTime’
669 | evendelta = now - fecm.evenparityTime;
| ^~~~~~
DeCSA.cpp:671:14: error: ‘struct FAST_ECM’ has no member named ‘oddparityTime’
671 | if (fecm.oddparityTime > 0)
| ^~~~~
DeCSA.cpp:672:29: error: ‘struct FAST_ECM’ has no member named ‘oddparityTime’
672 | odddelta = now - fecm.oddparityTime;
| ^~~~~
DeCSA.cpp: In member function ‘void DeCSA::DebugLogPidmap()’:
DeCSA.cpp:852:26: error: ‘GetTick’ was not declared in this scope
852 | uint64_t now = GetTick();
| ^~~
DeCSA.cpp:854:20: error: ‘struct FAST_ECM’ has no member named ‘evenparityTime’
854 | if (fecm.evenparityTime > 0)
| ^~~~~~
DeCSA.cpp:855:36: error: ‘struct FAST_ECM’ has no member named ‘evenparityTime’
855 | evendelta = now - fecm.evenparityTime;
| ^~~~~~
DeCSA.cpp:857:20: error: ‘struct FAST_ECM’ has no member named ‘oddparityTime’
857 | if (fecm.oddparityTime > 0)
| ^~~~~
DeCSA.cpp:858:35: error: ‘struct FAST_ECM’ has no member named ‘oddparityTime’
858 | odddelta = now - fecm.oddparityTime;
| ^~~~~
make[1]: [Makefile:90: DeCSA.o] Error 1
With Arch Linux I get this Error message.
make LIBDVBCSA = 1
==> Beginne build()...
CC DeCSA.o
g++ -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -D_FORTIFY_SOURCE=2 -O3 -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -c -DPLUGIN_NAME_I18N='"dvbapi"' -DGITVERSION='"-GIT-f5906d1"' -DLIBDVBCSA -DLIBSSL -o DeCSA.o DeCSA.cpp
DeCSA.cpp: In Elementfunktion »bool DeCSAKey::Set_even_control_word(const unsigned char)«:
DeCSA.cpp:417:31: Fehler: expected primary-expression before »->« token
417 | dvbcsa_bs_key_set(ca_descr->cw, cs_key_even);
| ^~
DeCSA.cpp: In Elementfunktion »bool DeCSAKey::Set_odd_control_word(const unsigned char)«:
DeCSA.cpp:436:31: Fehler: expected primary-expression before »->« token
436 | dvbcsa_bs_key_set(ca_descr->cw, cs_key_odd);
| ^~
DeCSA.cpp: In Konstruktor »DeCSAAdapter::DeCSAAdapter()«:
DeCSA.cpp:470:3: Fehler: »cs« wurde in diesem Gültigkeitsbereich nicht deklariert; meinten Sie »cos«?
470 | cs = dvbcsa_bs_batch_size();
| ^~
| cos
DeCSA.cpp: In Elementfunktion »bool DeCSA::SetDescr(ca_descr_t, bool, int)«:
DeCSA.cpp:663:5: Fehler: »FAST_ECM« wurde in diesem Gültigkeitsbereich nicht definiert
663 | FAST_ECM fecm;
| ^~~~
DeCSA.cpp:664:24: Fehler: »class DeCSAKey« hat kein Element namens »Get_FastECM_struct«
664 | DeCSAKeyArray[idx].Get_FastECM_struct(fecm);
| ^~~~~~
DeCSA.cpp:664:43: Fehler: »fecm« wurde in diesem Gültigkeitsbereich nicht definiert
664 | DeCSAKeyArray[idx].Get_FastECM_struct(fecm);
| ^~~~
DeCSA.cpp:666:20: Fehler: »GetTick« wurde in diesem Gültigkeitsbereich nicht definiert
666 | uint64_t now = GetTick();
| ^~~
DeCSA.cpp:676:24: Fehler: »class DeCSAKey« hat kein Element namens »Get_control_words«; meinten Sie »Set_odd_control_word«?
676 | DeCSAKeyArray[idx].Get_control_words(cweven, cwodd);
| ^~~~~
| Set_odd_control_word
DeCSA.cpp: In Elementfunktion »void DeCSA::DebugLogPidmap()«:
DeCSA.cpp:849:9: Fehler: »FAST_ECM« wurde in diesem Gültigkeitsbereich nicht definiert
849 | FAST_ECM fecm;
| ^~~~
DeCSA.cpp:850:33: Fehler: »class DeCSAKey« hat kein Element namens »Get_FastECM_struct«
850 | if (DeCSAKeyArray[iidx].Get_FastECM_struct(fecm))
| ^~~~~~
DeCSA.cpp:850:52: Fehler: »fecm« wurde in diesem Gültigkeitsbereich nicht definiert
850 | if (DeCSAKeyArray[iidx].Get_FastECM_struct(fecm))
| ^~~~
DeCSA.cpp:852:26: Fehler: »GetTick« wurde in diesem Gültigkeitsbereich nicht definiert
852 | uint64_t now = GetTick();
| ^~~
DeCSA.cpp:862:31: Fehler: »class DeCSAKey« hat kein Element namens »GetActiveParity«
862 | DeCSAKeyArray[iidx].GetActiveParity(ipid, aparity, aparity2);
| ^~~~~~~
DeCSA.cpp: In Elementfunktion »void DeCSA::InitFastEcmOnCaid(int)«:
DeCSA.cpp:895:22: Fehler: »class DeCSAKey« hat kein Element namens »InitFastEcmOnCaid«
895 | DeCSAKeyArray[i].InitFastEcmOnCaid(Caid);
| ^~~~~
DeCSA.cpp: In Elementfunktion »void DeCSA::SetFastECMPid(int, int, int, int)«:
DeCSA.cpp:904:24: Fehler: »class DeCSAKey« hat kein Element namens »SetFastECMPid«
904 | DeCSAKeyArray[idx].SetFastECMPid(dvbapiPID);
| ^~~~~
DeCSA.cpp: In Elementfunktion »int DeCSAAdapter::GetCaid(DeCSA, int)«:
DeCSA.cpp:937:38: Fehler: »class DeCSAKey« hat kein Element namens »Get_FastECM_CAID«
937 | parent->DeCSAKeyArray[idx].Get_FastECM_CAID(&caCaid);
| ^~~~
DeCSA.cpp:946:34: Fehler: »class DeCSAKey« hat kein Element namens »Get_FastECM_CAID«
946 | parent->DeCSAKeyArray[idx].Get_FastECM_CAID(&caCaid);
| ^~~~
DeCSA.cpp: In Elementfunktion »bool DeCSAAdapter::Decrypt(DeCSA, unsigned char, int, bool)«:
DeCSA.cpp:1021:47: Fehler: »currIdx« wurde in diesem Gültigkeitsbereich nicht definiert
1021 | if (idx >= 0 && (pid < MAX_CSA_PID) && (currIdx < 0 || idx == currIdx)) // same or no index
| ^~~
DeCSA.cpp:1154:7: Fehler: »currIdx« wurde in diesem Gültigkeitsbereich nicht definiert
1154 | if (currIdx >= 0 && (parent->GetAlgo(currIdx) == CA_ALGO_DES || parent->DeCSAKeyArray[currIdx].Aes || parent->GetAlgo(currIdx) == CA_ALGO_AES128))
| ^~~
DeCSA.cpp:1339:7: Fehler: »currIdx« wurde in diesem Gültigkeitsbereich nicht definiert
1339 | if (currIdx >= 0 && wantsparity > 0 && parent->GetorCreateKeyStruct(currIdx) )
| ^~~
DeCSA.cpp:1339:50: Fehler: »class DeCSA« hat kein Element namens »GetorCreateKeyStruct«
1339 | if (currIdx >= 0 && wantsparity > 0 && parent->GetorCreateKeyStruct(currIdx) )
| ^~~~~~~~
DeCSA.cpp:1344:25: Fehler: »cs_key_even« wurde in diesem Gültigkeitsbereich nicht deklariert; meinten Sie »cs_fill_even«?
1344 | dvbcsa_bs_decrypt(cs_key_even[currIdx], cs_tsbbatch_even, 184);
| ^~~
| cs_fill_even
DeCSA.cpp:1349:25: Fehler: »cs_key_odd« wurde in diesem Gültigkeitsbereich nicht definiert
1349 | dvbcsa_bs_decrypt(cs_key_odd[currIdx], cs_tsbbatch_odd, 184);
| ^~~~~~
make: *** [Makefile:90: DeCSA.o] Fehler 1
==> FEHLER: Ein Fehler geschah in build().
Breche ab...
Here the same on Raspian Buster
DeCSA.cpp:955:11: warning: unused variable ‘adapter_index’ [-Wunused-variable]
uint8_t adapter_index = cardindex;
^~~~~
DeCSA.cpp:957:8: warning: unused variable ‘blogfull’ [-Wunused-variable]
bool blogfull = false;
^~~~
DeCSA.cpp:962:12: warning: unused variable ‘sleeptime’ [-Wunused-variable]
uint64_t sleeptime = 0;
^~~~~
DeCSA.cpp:966:7: warning: unused variable ‘imaxSleep’ [-Wunused-variable]
int imaxSleep = itimeout / iSleep;
^~~~~
make: [Makefile:89: DeCSA.o] Fehler 1
make: Es wird auf noch nicht beendete Prozesse gewartet....
Guys, I know, that compilation using libdvbcsa is broken since last change. For the time being please just use current stable version in your production environments unless you need the fast ECM feature (if you do - use FFDeCSA)...
I'll try to fix the compilation myself but unfortunately no ETA due to other work... :(
Thanks for the feedback
To ALL: test https://github.com/ua0lnj/vdr-plugin-dvbapi If it works fine, I will make a PR.
It compiles cleanly But after a few seconds I have artifacts and no image.
You use LIBDVBCSA = 1 or no?
Yes i use LIBDVBCSA = 1
Set loglevel=3 and upload log, maybe we'll find something. I can test aes128 and CAID 0x2600 only, it's works fine.
First test here looks good with LibDVDCSA enabled.
But @haarm having troubles...
When I switch to RTL HD this comes in the LOG and the VDR delivers no more picture
DVBAPI: 1.0 set CAM decrypt (SID 61200 (0xEF10), caLm 4, HasCaDescriptors 1) Feb 8 15:11:22 vdrt vdr: [25173] rpihddevice: set video codec to H264 Feb 8 15:11:22 vdrt vdr: [25118] rpihddevice: new audio codec: 2ch AC3 Feb 8 15:11:22 vdrt vdr: [25118] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Feb 8 15:11:23 vdrt vdr: [25117] rpihddevice: video stream started 1920x1080@50i, PAR=1/1 Feb 8 15:11:23 vdrt vdr: [25117] rpihddevice: display PAR=1,000, setting video render PAR=1/1 Feb 8 15:11:25 vdrt vdr: [25119] ERROR: 402 ring buffer overflows (345168 bytes dropped)
Now i have similar problem:
Feb 8 17:15:54 vdr01 vdr[4875]: [7391] buffer usage: 80% (tid=7390)
Feb 8 17:15:55 vdr01 vdr[4875]: audio/alsa: wait underrun error? 'Datenübergabe unterbrochen (broken pipe)'
Feb 8 17:15:57 vdr01 vdr[4875]: audio/alsa: wait underrun error? 'Datenübergabe unterbrochen (broken pipe)'
Feb 8 17:15:57 vdr01 vdr[4875]: [7391] buffer usage: 90% (tid=7390)
Feb 8 17:15:59 vdr01 vdr[4875]: audio/alsa: wait underrun error? 'Datenübergabe unterbrochen (broken pipe)'
Feb 8 17:16:00 vdr01 vdr[4875]: [7391] buffer usage: 100% (tid=7390)
Feb 8 17:16:01 vdr01 vdr[4875]: audio/alsa: wait underrun error? 'Datenübergabe unterbrochen (broken pipe)'
Feb 8 17:16:02 vdr01 vdr[4875]: [7391] ERROR: driver buffer overflow on device 1
Hi All. Try remove "&& wantsparity > 0" in https://github.com/ua0lnj/vdr-plugin-dvbapi/blob/master/DeCSA.cpp#L1347 May be it helps for LIBDVBCSA = 1
can you describe this in a little more detail, what should I do ?
https://github.com/ua0lnj/vdr-plugin-dvbapi in DeCSA.cpp change line 1347 from if (currIdx >= 0 && wantsparity > 0 && parent->GetKeyStruct(currIdx) ) to if (currIdx >= 0 && parent->GetKeyStruct(currIdx) )
It compiles, but it leads to buffer errors. ERROR: 493 ring buffer overflows (528092 bytes dropped) And there is no image
Please set debug log level = 3 in plugin menu, and give me syslog with plugin debug messages.
Jun 27 12:22:28 vdrt vdr: epg2vdr: Updated changes since '27.06.2021 12:10:10'; 59 channels, 74 events (0 deletions) in 194 ms Jun 27 12:22:31 vdrt vdr: epg2vdr: --- EPG update finished --- Jun 27 12:22:33 vdrt vdr: [20900] ERROR: 1054 ring buffer overflows (1084760 bytes dropped) Jun 27 12:22:39 vdrt vdr: [20900] ERROR: 1057 ring buffer overflows (993580 bytes dropped) Jun 27 12:22:41 vdrt vdr: [20885] retuning due to modification of channel 27 (VOX HD) Jun 27 12:22:41 vdrt vdr: [20885] switching to channel 27 S19.2E-1-1057-61201 (VOX HD) Jun 27 12:22:41 vdrt vdr: [20931] rpihddevice: cAudioDecoder() thread ended Jun 27 12:22:41 vdrt vdr: [20931] audio decoder thread ended (pid=20885, tid=20931) Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 CA_PMT decoding len=227 lm=5 prg=61201 len=221 Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: ci_cmd(G)=04 Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 got CA pmt ciCmd=4 caLm=5 Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 answer to query suppressed Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 stop decrypt Jun 27 12:22:41 vdrt vdr: [20929] device 2 receiver thread ended (pid=20885, tid=20929) Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 CA_PMT decoding len=6 lm=3 prg=0 len=0 Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 got CA pmt ciCmd=-1 caLm=3 Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 answer to query suppressed Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 stop decrypt Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: ProcessSIDRequest: got empty SID - returning from function Jun 27 12:22:41 vdrt vdr: [20885] CAM 1: unassigned from device 2 Jun 27 12:22:41 vdrt vdr: [20885] CAM 1: assigned to device 2 Jun 27 12:22:41 vdrt vdr: [20950] device 2 receiver thread started (pid=20885, tid=20950, prio=high) Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 CA_PMT decoding len=236 lm=4 prg=61201 len=221 Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: ci_cmd(G)=01 Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: pid=2,01ff len=0 (0x0) Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: pid=6,0203 len=0 (0x0) Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: pid=6,0031 len=0 (0x0) Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 got CA pmt ciCmd=1 caLm=4 Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 answer to query suppressed Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: 1.0 set CAM decrypt (SID 61201 (0xEF11), caLm 4, HasCaDescriptors 1) Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: send: channelSid=0xef11 (61201) Jun 27 12:22:41 vdrt vdr: [20885] DVBAPI: Write, sock=0 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: OSCam not connected, (re)connecting... Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: created socket with socket_fd=5 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: Successfully (re)connected to OSCam Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: Write, sock=5 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: socket_fd=5 len=42 wrote=42 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: send: channelSid=0xef11 (61201) Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: Write, sock=5 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: socket_fd=5 len=581 wrote=581 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: Action: Got SERVER_INFO: OSCam v1.20_svn, build r11693 (x86_64-linux-gnu-ssl); , protocol_version = 3 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: Action: Got DMX_SET_FILTER request, adapter_index=1, pid=0, demux_idx=1, filter_num=0 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: SetFilter: adapter=1 set FILTER pid=0000 start=1, demux=1, filter=0 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: --> FILTER: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: --> MASK: FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: SetFilter: inserting new filter, demux=1, filter_num=0 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: Action: Got DMX_SET_FILTER request, adapter_index=1, pid=19CE, demux_idx=1, filter_num=1 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: SetFilter: adapter=1 set FILTER pid=19CE start=1, demux=1, filter=1 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: --> FILTER: 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: --> MASK: F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: SetFilter: inserting new filter, demux=1, filter_num=1 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: Action: Got DMX_SET_FILTER request, adapter_index=1, pid=11, demux_idx=1, filter_num=2 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: SetFilter: adapter=1 set FILTER pid=0011 start=1, demux=1, filter=2 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: --> FILTER: 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: --> MASK: FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jun 27 12:22:41 vdrt vdr: [20906] DVBAPI: SetFilter: inserting new filter, demux=1, filter_num=2 Jun 27 12:22:42 vdrt vdr: [20961] audio decoder thread started (pid=20885, tid=20961, prio=high) Jun 27 12:22:42 vdrt vdr: [20961] rpihddevice: cAudioDecoder() thread started Jun 27 12:22:43 vdrt vdr: [20950] DVBAPI: Analyze: all data in one TS packet, immediate send Jun 27 12:22:43 vdrt vdr: [20950] DVBAPI: Write, sock=5 Jun 27 12:22:43 vdrt vdr: [20950] DVBAPI: socket_fd=5 len=143 wrote=143 Jun 27 12:22:43 vdrt vdr: [20906] DVBAPI: Action: Got DMX_SET_FILTER request, adapter_index=1, pid=19CE, demux_idx=1, filter_num=1 Jun 27 12:22:43 vdrt vdr: [20906] DVBAPI: SetFilter: adapter=1 set FILTER pid=19CE start=1, demux=1, filter=1 Jun 27 12:22:43 vdrt vdr: [20906] DVBAPI: --> FILTER: 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jun 27 12:22:43 vdrt vdr: [20906] DVBAPI: --> MASK: FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jun 27 12:22:43 vdrt vdr: [20906] DVBAPI: SetFilter: filter update, demux=1, filter_num=1 ^Croot@vdrt:~# hallo Jun 27 12:22:52 vdrt vdr: [20950] DVBAPI: socket_fd=5 len=143 wrote=143 Jun 27 12:22:52 vdrt vdr: [20906] DVBAPI: Action: Got DMX_SET_FILTER request, adapter_index=1, pid=19CE, demux_idx=1, filter_num=1 Jun 27 12:22:52 vdrt vdr: [20906] DVBAPI: SetFilter: adapter=1 set FILTER pid=19CE start=1, demux=1, filter=1 Jun 27 12:22:52 vdrt vdr: [20906] DVBAPI: --> FILTER: 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jun 27 12:22:52 vdrt vdr: [20906] DVBAPI: --> MASK: FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Jun 27 12:22:52 vdrt vdr: [20906] DVBAPI: SetFilter: filter update, demux=1, filter_num=1 Jun 27 12:22:53 vdrt vdr: [20906] DVBAPI: SetDescr addapter:1 Jun 27 12:22:53 vdrt vdr: [20906] DVBAPI: Action: Got CA_SET_DESCR request, adapter_index=1, index=1 Jun 27 12:22:53 vdrt vdr: [20906] DVBAPI: Action: Got ECM_INFO: adapter_index=1, SID = EF11, CAID = 1843 (nagra), PID = 19CE, ProvID = 000000, ECM time = 588 ms, reader = HD+, from = local, protocol = mouse, hops = 0 Jun 27 12:22:53 vdrt vdr: [20906] DVBAPI: UpdateEcmInfo: PMTO update, adapter=1, SID=EF11 Jun 27 12:22:57 vdrt vdr: [20900] ERROR: 1170 ring buffer overflows (1168420 bytes dropped)
May be I found it. Try https://github.com/ua0lnj/vdr-plugin-dvbapi again.
It works !! Great Job, thank you very much.
Ok, I will make PR.
On my VDR it does not bulid: