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