Superseded
by vdr-plugin-dvbapi - 2.1.1-441~2617a7f-ppa1~precise
Published
Changelog
vdr-plugin-dvbapi (2.1.1-440~2617a7f-ppa1~precise) precise; urgency=medium
* [2617a7f27e25c68ed85953afb21b94e01b723acb]
network mode: fix VDR stuck when there is a problem with OSCam
VDR was hunging when there was a timeout when connecting to OSCam.
Moves the opening connection logic to a thread only.
Fixes #68.
* [933b587ccceb045c4a5c8f0ea14a330dede35b4b]
Tag a new stable version
* [648070a64ad582d04b6864a8be9230b16e9678e5]
Optimize c518cde (compute filter after receive) and use a constant for filter size.
* [c518cde1cf19fbba4ebd644699fbc2d467d9aefb]
network mode: fix data filtering
This commit fixes the filtering when the corresponding mask of the compared
byte is eg. 0xf0 instead of 0xff (which was handled correctly).
OSCam r9743 triggers this bug by comparing only the high nibble.
* [4f0b4586fa5be04ca159bc6d6343096751b208df]
Try to fix potential 'Filter' namespace conflict.
Reported by @3PO in issue #60 with the following backtraces:
http://bpaste.net/raw/370021/
http://bpaste.net/raw/373927/
* [35f2fbabc25f9b1fc9175644fef8988df4dedc03]
Filter.cpp: add missing locks
* [bdcad3fe170ebaa89a49dc9aa52160e843bd9dfe]
Stop all filters when we are disconnected
* [4f2ed99211bb236dc2aa534e465bae90a35af9cd]
Automatically detect and change endianness when needed.
The byte order should be preserved with the hton and ntoh functions,
but to not break the current protocol, as a workaround a detection
was implemented here in the plugin.
Thanks to saibotznuk for reporting and testing.
* [5938bf0fe8e0e33526de9b59df4d90cc9d424e74]
Better 'unknown command' error log
* [1203c18fa9a98f22473dfbef4251a4dc2d71e831]
Add switch to disable CW expiration check
When a ConstantCW was used, the OSCam sent the keys once after zap,
this was leading to stop decryption after 20 secs.
Fixes #56
* [c7d0e2755cac76c5255e09c0345506cc5bc60124]
Add option to adjust adapter indexes
This allows connecting more VDR clients to single OSCam
using network mode.
* [098293004520fb31aa80885089b919f51c2f10c0]
fix a typo
* [6ee9d6243d054986f2070a1caf65c097421543b8]
Fix SetupParse()
* [437ed964bcbeb3c81d7b2d3cc28ace060e87a530]
Bump plugin version
* [c3bdd3d372d01db5593f1004c2987b06dbc92398]
setup: change 'port' to integer
* [b3b68a8d6a2ab756f0ed846c2027e2fe3cc05a8a]
Update plugin description and translations
* [7c1d670e21395662c903c6bb056483d7499dcfc2]
update doc
* [45e64d8809bb4009d19218f765cc78a674da3c0f]
Add german translation
Thanks to 3PO
* [bf11f9e25d29d6e28879df2cd4694cf1bb409b96]
Improve plugin setup menu
* [8831c0cc88ebed5139fd5bf9fb4e51d27d2aeef1]
Additional option to explicit enable/disable network mode
* [9bc39ae3d7f7ba67176588029283eabfecde01d3]
Update finnish translation
* [e61a059d36857ba157d23b777e844ec056cc01a7]
Add OSCamHost and OSCamPort configuration options, update documentation.
* [2ee09f219096e1b7553c5b407298430a122fc9c2]
Add support for OSCam network filtering
Filering of ECM/CAT/EMM packets is done localy (where the plugin/vdr)
is running. The filered data is sent back to OSCam via TCP network
socket. This way there is no need to have a real demux hardware where
OSCam is running, the dvbapi requests could be handled totally over
network.
minimal required OSCam version: r9580
* [4d66ac5b9d45d16a31d0018f9fbeb710ac6145eb]
SocketHandler: rename WritePMT to Write
* [839095476575b799ea6144bb15ebdacf862398fb]
Add information about used decsa library
Closes #50
* [39f2a8fa725d18d98c98de7349df4c80d8806a23]
Fix invalid writes
Adapter index from OSCam is zero-based numbered.
The commit fixes this and also adds a sanity check.
* [a9b738e05ec14f0e3cf660c1734d58df0d3ef706]
version 2.0.1, update doc
* [a3b4a5a6b4d68e9ad08b2818b87662a1bbb788d7]
Fix a typo
* [23d112593a51cc48bfa20f8aade0627889d630c4]
Fix simultaneous decrypting of the same channel using different devices
This situation generally should not happen in VDR, but there are
some circumstances where it may occur:
The primary device is always preferred for live viewing.
So no matter what other devices are receiving a particular channel,
when one tune to it live it will be attempted to do so on the
primary device. It's mainly because with full featured cards
the primary device can display (FTA) channels without any further
action by VDR (i.e. without Transfer Mode). Should a recording be
started that requires the primary device (because all other devices
are busy receiving other transponders), it will take over the
primary device, and the live channel will select another device
that currently happens to receive the live transponder.
This commit fixes eg. the problem of broken recording when zap to
the same channel as the recorded one (in the above scenario).
The above problem should not affect streaming plugins at all
(at least when they don't try to obtain a device for LiveTV,
like latest versions of XVDR and VNSI plugins).
* [400879b52c1a7fdc2dee7c39aceac3808b72520f]
Fix plugin initialization and shutdown order
SocketHandler was sometimes trying to write to uninitialized
DeCSA. Correct order of creating and deleting objects.
Valgrind:
==31812== Invalid write of size 1
==31812== at 0x847CB1F: DeCSA::SetCaPid(unsigned char, ca_pid*) (DeCSA.cpp:132)
==31812== by 0x847D91C: SocketHandler::Action() (SocketHandler.cpp:151)
==31812== by 0x50246E: cThread::StartThread(cThread*) (thread.c:262)
==31812== by 0x5075E0D: start_thread (pthread_create.c:311)
==31812== by 0x667A0FC: clone (clone.S:113)
==31812== Address 0xf2145af is not stack'd, malloc'd or (recently) free'd
* [8ea31068b16bb38b055b407a8d6e4b46acfa9af4]
Don't send unnecessary list management updates to OSCam
This commit fixes sending updates to OSCam eg with the following flow:
DVBAPI: 0.0 set CAM decrypt (SID X, caLm 4, HasCaDescriptors 0)
DVBAPI: 0.0 set CAM decrypt (SID X, caLm 5, HasCaDescriptors 0)
* [dcb6efa786272d244fbe396e07c8c6ef364f420a]
Fix 801b2c9 (libdvbcsa case)
* [aa5d72fd9c7ec4d9402d1916bf16b59c742a1d37]
Fix a performance regression in decryption
Do not call Decrypt() for clear TS packets.
* [3d74588586dec775e67ec26142aa326ebc2c034f]
Put the git tag into the version name
If the plugin is built directly from the .git repository,
put the git tag into the version name.
* [801b2c9e0a856f35d6ddea5a6524f77da2c13cef]
Add a validity time for a keys
Set a timestamp when OSCam provides a CW for a given index,
this allows to detect if key is invalid.
Now even hardware CAMs and dvbapi can cooperate on the same
device.
* [ec000b4028d56bdd860cead47767709566721534]
DeCSA.h: remove unused defines
* [5e72ce1c8a20b9d9ca580b63a66ec20e6b6198ce]
SocketHandler: add missing check for recv() return value
* [f1220b2d6e465b2713005590e9c9764f6941245f]
Added i18n into the install target
* [d43fe77f1f7bea4d2224e8c5775a45b9a62839bc]
Update .gitignore
* [18d3037179db44ab644529411920ff2b95860518]
Cppcheck target and fixes
* [9132399a5ce379d4ae754f3cf0c76a6d3e8bc3ec]
Drop unnecessary code
* [80db80e68b45ce6128171fab8695d7c260a78a0d]
Added translations
* [f6f9a9d174e5845bc27a295d797bca2aef5fcf84]
Avoiding unnecessary pkg-config warnings
* [bb3c48d086e4051e8788724325cdd3571c8479bb]
Plugin version 2.0.0, add HISTORY, update FAQ
* [02eab14635021023f7bd965b37eb606f7b36f1c2]
Update documentation
* [554d1c6b32fe37587f085bcd19dd2164e878a509]
Merge branch 'plugin-rewrite'
* [9a0c39dd6c583d85d5dd8d5675df935dc62ea6d5]
DeCSA.cpp: dvbcsa: remove unnecessary assignments
* [335a6b0c5b9146964e3f7229c267351af918b3fe]
Change logging severity
* [cbf0a6f08618f893355792b9185f89a70591d3e0]
Fix segfault when SocketHandler started before capmt
* [73ef658b7802ef018f6bb849697d06de6565d859]
SCCAMSlot: set WantsTsData to true
* [5ac44028929cdcbb492baa16610d75e071e847f6]
Revert "Fix SCCIAdapter assigning"
This reverts commit f75f09bef2f6e5c31274dd0a45492ba8cd973b64.
* [40425bfcb059c33a3b42781274c2135a2798b8c7]
SocketHandler, CAPMT: protect code with mutexes
Also remove unused mutex variable from SCCIAdapter.h
* [13e8c696abf7e77c5010fb264c09e8be09e4891b]
Revert "Makefile: add backward compatibility with VDR < 1.7.34"
This reverts commit 9c93781522ff2bff8e32edddb1f664165f0eca16.
Conflicts:
Makefile
* [2de235c31a1f26f78d868b0dbfa6dbdbd67cf4f8]
Remove leftovers from e5e59ed
* [33072c40a541a406326196c3d712053e7e28fa64]
Add missing OSCam reconnecting feature
* [43416c32092efd3399ea82be36d59a53ac58709a]
Move socket functions from CAPMT to SocketHandler
* [fae7db12e766e7d6ce4431e6a5531f7a7a6904c3]
Speed up CAM reset (and VDR start)
We probably don't need this 600ms delay.
* [e5e59ed61176d60891fb8e68f773b5b9eed941f4]
Drop CAPMT::get_pmt()
Assume that VDR always provides CA descriptors.
* [7c28099f3247500af3d211017d2ccf08dfe6561f]
Rework cScCamSlot::Process()
Adjust to recent code from vdr-sc
Credits: leslie
Closes #40
* [f375db952ccc09aba1b53e601e65675e0560ccc4]
LogLevel: fix the input range of the menu item
Added the proper input range (0...3) of the 'Log Level' menu item
in cMenuSetupDVBAPI::cMenuSetupDVBAPI().
* [36e81c135e6cb95a69bd005db3dbd0a1bb81dcb4]
Cosmetics: don't add empty lines in "vdr --help"
DVBAPI::CommandLineHelp() shall return NULL (or not be overwritten at all)
if it has nothing to say, as in this case.
Otherwise there are superfluous empty lines in the output of "vdr --help".
* [ecfb5d42b81d96e2a20bccd4300ca41d09891401]
Added SCCAMSlot::GetCamName()
In the CAM menu of VDR we get "OSCam" instead of "CAM ready".
* [f75f09bef2f6e5c31274dd0a45492ba8cd973b64]
Fix SCCIAdapter assigning
* [8f941fad402de78a08321fe68ea3ede8b33f9cf2]
SocketHandler: name a thread
* [4b8caf878359fcf7ddb78a483c6abe89d4c8d185]
Simplify creating and deleting SocketHandler thread.
Also check for Running() in SocketHandler::Action().
* [42d8e61d3bad392497c37245744c0e7286605e5a]
Rename UDPSocket to SocketHandler
Currently the file has nothing common with UDP.
* [674b20108382a7fd1c1a288ed5218a4d53e54525]
UDPSocket.cpp: initialize sock variable
The 'sock' variable will be used for handling all camd.socket
communication.
This commit also fixes closing uninitialized variable, which
could close eg. stdout.
* [5298044ec8982b531563ad01c6a2412a641d2e3e]
UDPSocket.cpp: we don't need to associate sCCIAdapter anymore
* [7b9795a86a69261e8e4e2931630b128e6fba83da]
UDPSocket.cpp: call Cancel(3) in destructor
* [f941d4c46b3749978c4f3a27c75260ab89889bb3]
Cleanup starting and stopping the plugin
Fix storing a pointers to SCCIAdapter objects and properly delete them
when stopping.
Moved creation of the objects required by DVBAPI from DVBAPI::Initialize()
to DVBAPI::Start(). That way it doesn't matter whether the DVBAPI plugin is
loaded before or after the device plugin.
Moved deletion of the objects required by DVBAPI from SCCIAdapter::~SCCIAdapter()
to DVBAPI::Stop(). That way things get cleaned up in the same source area
where they have been allocated.
* [ea71040c8ad54a7b6cd7b5d8fbf327537db69b6d]
Delete unused defines and variables
* [ee9b786e50514d492f4c57c868dbd435a6490e3b]
Override ProvidesCa() and stop scanning channels.conf for CAIDs
The changes in VDR let us override ProvidesCa(const int *CaSystemIds)
informing VDR that every CAID can be decrypted by our CamSlot.
Of course it depends on OSCam but we don't know it at this stage.
Drop the old code which generates a list of CAIDS from channels.conf.
Closes #39
* [c1bf3d58dae680eb543aed095073a8cd54c29341]
added adapter_index to socket messages
The plugin is using a single global connection to camd.socket.
In this case it was unable to distinguish between adapters
when receiving CA_SET_PID and CA_SET_DESCR.
A conflict was occurring when a PID numbers was the same across
adapters (even if it uses different descrambler indexes).
Now the PIDs are assigned per adapter, avoiding simultaneous
channel decryption problems.
An adapter_index byte was introduced in OSCam rev9095.
* [8ddba76c027d25a9158e6ec906a39d3f3fd88f31]
DeCSA: remove stall checks and all kind of waiting
* [1a0f208e68f63a78d0dee9fdc0bfe897d70f52f3]
drop unnecessary code
* [61b5bc2145ca9d6a8d65309e347c9ff353e4179f]
use new VDR interface for CamSlot decrypting
Changes was introduced in VDR 2.1.3
* [122b6b987e0cb8f17474fdab6cedc9b278992c10]
remove PMT_FILE support
It's slow, not used by anyone and probably broken.
* [af6cd2a0ece92a1818c140a04357f6d714b87690]
drop UDP: keys obtained back via same camd.socket
Another step in simplifying interface: CA_SET_PID
and CA_SET_DESCR obtained via the same camd.socket
connection.
Works only with OSCam >= rev9063
* [f904a5f386781b42c58046d6c859deb55764c5c8]
one global instances of DeCSA and CAPMT objects
* [66e4260d6b780c63d1ef55ddbb0173e5b02ec083]
common code for generating CA_PMT
Obtain PMT data from VDR or demux and add it
to the common object list.
* [a5f6295b3bcdd2e77389773dc5fa9c7b73c81bde]
move ProcessSIDRequest() from SCCAMSlot to CAPMT
* [75b9da6646c32c976e44fa33742c1d1bedc9d1f6]
rework list management
Use LIST_FIRST, LIST_MORE, LIST_LAST and LIST_ONLY
for all services using one socket connection.
Works with OSCam >= rev9049
* [362eca7fc764e859026e3cdcb7ee50e1ea51c859]
do not malloc/free caPMT buffer, make it a class member
-- Andrey Pavlenko <email address hidden> Sun, 12 Oct 2014 19:41:04 +0400