On 13.09.2012 23:15, Reinhard Nissl wrote:
Hi,

Am 13.09.2012 12:25, schrieb Klaus Schmidinger:

On 12.09.2012 17:19, Придворов Андрей (Pridvorov Andrey) wrote:
Progress display show correct time, but at the end play freeze.
Other player (on MS windows) play correct.

Try http://rghost.ru/40326577

It looks like the frame type is 0xF0 for *all* frames of this
stream.
But when I play it on my TT S2-6400 card, even though I can move an
editing mark to every single frame, only every 10th or so frame
is actually
displayed on the tv.

So my guess is, the frame types are not set correctly in this
stream.
0xF0 seems bogus to me. So far I have seen only 0x10, 0x30 and
0x50 (IIRC).

Well, testing for the whole byte is not according to the specs, as only the 
upper 3 bits denote primary_pic_type. So the typical primary_pic_types are 0, 2 
and 4 while 0xF0 yields 7.

So I guess in cFrameDetector::Analyze() it should then be

                               uchar FrameType = Data[FrameTypeOffset] & 0xE0;
                               independentFrame = FrameType == 0x00;

which doesn't make much of a difference for this particular case, but
at least would look at only the valid bits.

primary_pic_type tells you, which slice_types (among I, SI, P, SP, B) may be 
used to describe the picture, so one can derive the MPEG1/2 I, B and P picture 
type meaning from it for the typical cases.

primary_pic_type 7 indicates that all slice types may be used to describe the 
picture, so the best match for a MPEG1/2 picture type would be a B picture.

Hence, the byte value 0xF0 is valid and correct, but doesn't help anyfurther to 
find independent pictures.

I really wonder what kind of crack the people who came up with this stuff
have smoked. Why didn't they just put in there a simple, straightforward
bit that says "an independent picture starts here"?

Klaus

-----Original Message-----
From: vdr-boun...@linuxtv.org [mailto:vdr-boun...@linuxtv.org]
On Behalf Of
Klaus Schmidinger
Sent: Thursday, September 13, 2012 1:33 AM
To: vdr@linuxtv.org
Subject: Re: [vdr] vdr-1.7.29 + h264 MBAFF

On 12.09.2012 16:06, Придворов Андрей (Pridvorov Andrey) wrote:
Hi.

I have trouble with some h264 HD channels.

It have MBAFF scan type, live tv on vdr works, but no recordings.

Recorded file have 0 size.

But, if in remux.c, in int cFrameDetector::Analyze(const uchar
*Data, int
Length)

change

independentFrame = FrameType == 0x10

to

independentFrame = (FrameType == 0x10 || FrameType == 0xf0)

Than all recordings fine.

Is this correct?

I tend to doubt that.
What about the progress display when you replay such a recording?
Does it show the correct times?

Can you make a short recording available for further
investigation?

Klaus

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


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


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

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

Reply via email to