Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] FIX: vdr-1.3.13-15 "no useful data" error with _RADIO_ channels



After a lot of testing and debugging the output from cRemux::Put and
cRemux::Get I have worked out the cause of my major problem with
vdr-1.3.something and above.

My biggest problem was with radio channels, i.e. no video. With TV
channels, cRemux::Get syncs on an I_FRAME after maybe the 2nd - 4th call
and is then fine. With radio channels, 'synced' never gets set to true
and so the number of skipped bytes in cRemux::Put just climbs up to
MAXNONUSEFULDATA (10 MB), gives the "no useful data found" error, and
vdr restarts. Obviously, radio channels don't have any video so it
cannot sync on an I_FRAME so I can quite well agree with it there! ;)
Turning off exitOnFailure gives me a complete video stream with no
dropouts (apart from a few due to signal quality), so the fact that it
isn't "synced" doesn't matter (I'm not sure whether this becomes
important for other reasons: obviously you need to know where you are in
a video stream but is the same true of audio?).

In cRemux::Get, a check is made for radio channels and it returns pretty
much straight away but as nothing has been synced, 'synced' stays set to
false leading to the error. If I force syncing of radio channels, I lose
the problem:

--- remux.c.orig        2004-10-24 10:25:33.000000000 +0100
+++ remux.c     2004-11-03 10:43:41.000000000 +0000
@@ -541,6 +541,8 @@
      // XXX actually '0' should be enough, but '1' must be used with encrypted c
hannels (driver bug?)
      // XXX also allowing 0x1FFF to not break Michael Paar's original patch,
      // XXX but it would probably be best to only use '0'
+     // Force syncing of radio channels to avoid "no useful data" error
+     synced = true;
      if (PictureType)
         *PictureType = I_FRAME;
      return resultBuffer->Get(Count);

In earlier versions vith just the cRemux::Process function, the check
for radio channels and the function returns before the test for 'synced'
and the "no useful data" error, so the situation couldn't arise.

Cheers,

Laz





Home | Main Index | Thread Index