vdr 1.7.10 no record channel
Commit Message
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 :
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
Comments
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
@@ -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;