Hi,

I found the problem. VDR does not detect the frame independent in this
stream because in the function :

cFrameDetector:: Analyze (const uchar * Data, int Length)

in the file remux.c.

((Data [i +2]>> 3) & 0x07) is equal to 0 instead of 1 for stream that work.

I applied this patch :

--- remux.c    2010-05-04 14:55:50.000000000 +0200
+++ remux.c.orig 2010-05-04 21:57:38.000000000 +0200
@@ -960,6 +960,7 @@
   return Processed; // flush everything before this new frame
        newFrame = true;
        independentFrame = ((Data[i + 2] >> 3) & 0x07) == 1; // I-Frame
+       if (((Data[i + 2] >> 3) & 0x07) == 0) { independentFrame = 1;}
                                if (synced) {
                                   if (framesPerPayloadUnit <= 1)
                                      scanning = false;

and record is working again.
I do not know what has changed in the stream.

I tested this patch since yesterday and so far I have not had any problems.

What do you think?

Senufo





_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr

Reply via email to