Ville Skyttä wrote:
On Fri, 2005-05-13 at 14:56 +0200, Mikolaj Tutak wrote:
But the only solution is to stop VDR (sometimes it requires kill -9) and load it again. Dou you know any solution/workaround for this? Maybe other combination of DXR3 plugin/driver versions?
http://sf.net/mailarchive/forum.php?thread_id=7212515&forum_id=7173
Someone reported on em8300-devel that removing pthread_setschedparam() calls from both VDR and the DXR3 plugin helped with similar problems in his setup.
Removing the pthread_setschedparam() helps to prevent a complete lockup in my setup. Unfortunately the soft lockups which require the "kill -9" still occur. The patch attached seems to help, but hasn't had much testing.
The patch attached also seems to help the plugin recover more gracefully when it gets some bad data. It still needs some more work because sometimes the stream still needs to be manually stopped and restarted to resume playback (but at least it does stop instead, rather than locking up vdr).
I think the problem that this patch helps address is that the dvbplayer thread gets stuck waiting for the flush to finish and the main VDR thread cancels it. Unfortunately the thread sometimes holds a lock on the dxr3syncbuffer and this stops the video output thread. With the patch applied, the flush returns and thread exits before the 3 second thread cancel timeout.
Jon