Hi,
Thanks Klaus Klaus I agree, but the video looks good because I can see this live stream and when I use the patch records are correct. I did a test with vdr 1.6.0 with the same channels.conf and there I can see the live stream and recordings works.
Why ?
Senufo
On 05.05.2010 22:11, Senufo wrote:
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?
If this stream marks independent frames with '0' instead if '1', I would say it is broken.
Klaus
On 05/19/10 22:20, Senufo wrote:
Hi,
Thanks Klaus Klaus I agree, but the video looks good because I can see this live stream and when I use the patch records are correct. I did a test with vdr 1.6.0 with the same channels.conf and there I can see the live stream and recordings works.
Why ?
I have no idea.
Of course, the whole frame detection is different in VDR 1.7. You might want to debug that area to see why it doesn't work any more. Simply changing that bit from '1' to '0' can't be the solution.
Klaus
On 05.05.2010 22:11, Senufo wrote:
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?
If this stream marks independent frames with '0' instead if '1', I would say it is broken.
Klaus