[FFmpeg-devel] [PATCH] AVCHD/H.264 parser: determination of frame type, question about timestamps

Loren Merritt lorenm
Thu Jan 22 22:28:51 CET 2009


On Thu, 22 Jan 2009, Ivan Schreter wrote:

> Your patch is much more elegant, but I changed the following:
>> +        case NAL_IDR_SLICE:
>> +        case NAL_SLICE:
>> +            get_ue_golomb(&h->s.gb);
>> +            if(get_ue_golomb(&h->s.gb) % 5 == 2)
>> +                s->pict_type= FF_I_TYPE;
>> +            else
>> +                s->pict_type= FF_P_TYPE;
>> +            return;
>> +
>> 
> to this:
>
> +        case NAL_IDR_SLICE:
> +        case NAL_SLICE:
> +            get_ue_golomb(&h->s.gb);
> +            s->pict_type= golomb_to_pict_type[get_ue_golomb(&h->s.gb) % 5];
> +            return;
>
> Reason: Your code didn't correctly set pict_type to FF_B_TYPE for
> B-frames, so timing didn't work correctly. Since we already have mapping
> array, I simply used it to map it instead of adding another if statement.

Certainly frame type should be fixed, but what does this have to do with 
timing? H.264 allows any frame types to be reordered, or not, as the 
encoder pleases.

--Loren Merritt




More information about the ffmpeg-devel mailing list