Hi,
Dominique Simon wrote:
VDR developer version 1.3.28 is now available at
As in 1.3.26 when the cVideoRepacker was introduced, it's making the same problem again. e.g. when i watch a recording and a timer starts, VDR crashes like this:
[snip]
Aug 9 20:12:02 linvdr user.err vdr[1807]: cVideoRepacker: skipped 4 bytes to sync on next picture Aug 9 20:12:09 linvdr user.debug vdr[1808]: buffer usage: 70%
(tid=66573)
Aug 9 20:12:10 linvdr user.debug vdr[1808]: buffer usage: 80%
(tid=66573)
Aug 9 20:12:11 linvdr user.debug vdr[1808]: buffer usage: 90%
(tid=66573)
Aug 9 20:12:12 linvdr user.debug vdr[1808]: buffer usage: 100% (tid=66573) Aug 9 20:12:12 linvdr user.err vdr[1808]: ERROR: 1 ring buffer overflow (65 bytes dropped) Aug 9 20:12:18 linvdr user.err vdr[1808]: ERROR: 14271 ring buffer overflows (2682948 bytes dropped) Aug 9 20:12:24 linvdr user.err vdr[1808]: ERROR: 18048 ring buffer overflows (3393024 bytes dropped) Aug 9 20:12:30 linvdr user.err vdr[1808]: ERROR: 16976 ring buffer overflows (3191488 bytes dropped) Aug 9 20:12:32 linvdr user.err vdr[1806]: ERROR: video data stream
broken
Aug 9 20:12:32 linvdr user.err vdr[1806]: initiating emergency exit
How can i turn that cVideoRepacker off again? VDR 1.3.26 worked like a charm...
It's the same switch by which you could enable it in VDR-1.3.27 (TEST_cVideoRepacker, remux.c:1279). But please help me fix this issue instead of turning it off.
Strange is the timestamp 20:12:02: at this time, cVideoRepacker seems to be in sync, but for any reason, it seems to process no more data as at 20:12:32 the recording is aborted with "ERROR: video data stream broken" which indidates, that the recorder didn't see any data for 30 seconds.
Simon Baxter sent me a similar report, but with debug code inserted which showed that cVideoRepacker wasn't completely stuck.
Is it easy for you to trigger this issue? I've tried two simultanuous timers plus watching a recording but couldn't trigger the issue.
Please add the following 4 lines, which are marked with "<========" to the appropriate source locations (cRepacker::Put(), cVideoRepacker::Repack()) in remux.c and send me the output when the problem happens again.
static int Put(.....) { esyslog(">>>>> cRepacker::Put(%d)", Count); // <============
int n = ResultBuffer->Put(Data, Count); if (n != Count) esyslog(.....);
esyslog("<<<<< cRepacker::Put"); // <============
return n; }
. . .
void cVideoRepacker::Repack(.....) { esyslog(">>>>> cVideoRepacker::Repack(%d)", Count); // <============
// synchronisation is detected some bytes after frame start. const int SkippedBytesLimit = 4;
// reset local scanner localStart = -1;
. . .
// report that syncing dropped some bytes if (skippedBytes > SkippedBytesLimit) { esyslog(.....); skippedBytes = SkippedBytesLimit; }
esyslog("<<<<< cVideoRepacker::Repack()"); // <============ }
Bye.