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. -- Dipl.-Inform. (FH) Reinhard Nissl mailto:rnissl@xxxxxx