[vdr] vdr-1.7.29 + h264 MBAFF

Klaus Schmidinger Klaus.Schmidinger at tvdr.de
Thu Sep 13 23:40:08 CEST 2012


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-bounces at linuxtv.org [mailto:vdr-bounces at linuxtv.org]
>>> On Behalf Of
>>> Klaus Schmidinger
>>> Sent: Thursday, September 13, 2012 1:33 AM
>>> To: vdr at 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 at linuxtv.org
>>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>>>
>>>
>>> _______________________________________________
>>> vdr mailing list
>>> vdr at linuxtv.org
>>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>>>
>>
>> _______________________________________________
>> vdr mailing list
>> vdr at linuxtv.org
>> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr



More information about the vdr mailing list