VDR-1.3.28: cVideoRepacker sucks (was: Re: [vdr] VDR developer version 1.3.28)

Reinhard Nissl rnissl at gmx.de
Tue Aug 9 23:58:51 CEST 2005


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 at gmx.de



More information about the vdr mailing list