[MPlayer-users] VDPAU decoding in MPlayer broken by recent FFmpeg changes

Ilja Sekler ilja_sekler_ at gmx.de
Tue Aug 13 23:01:43 CEST 2013


Am 13.08.2013 22:02, schrieb Reimar Döffinger:

> On Sun, Aug 11, 2013 at 08:06:14PM +0200, Ilja Sekler wrote:
>
>> Am 11.08.2013 13:38, schrieb Reimar Döffinger:
>>
>>> Could you try below change?
>>> --- a/libavcodec/ituh263dec.c
>>> +++ b/libavcodec/ituh263dec.c
>>> @@ -234,6 +234,8 @@ int ff_h263_resync(MpegEncContext *s){
>>>           skip_bits1(&s->gb);
>>>           align_get_bits(&s->gb);
>>>       }
>>> +    if (get_bits_left(&s->gb) < 16)
>>> +        return -1;
>>>
>>>       if(show_bits(&s->gb, 16)==0){
>>>           pos= get_bits_count(&s->gb);
>>
>> Yes, this patch works, no more "marker does not match f_code" spam
>> in the console numerous times per second, thank you. Verified by a
>> comparison with a MPlayer build without it.
>
> It was pointed out to me that this breaks error concealment for software
> decoding.
> Could you remove above previous attempt and test if the following also fixes it?
> --- a/libavcodec/ituh263dec.c
> +++ b/libavcodec/ituh263dec.c
> @@ -235,7 +235,7 @@ int ff_h263_resync(MpegEncContext *s){
>           align_get_bits(&s->gb);
>       }
>
> -    if(show_bits(&s->gb, 16)==0){
> +    if(get_bits_left(&s->gb) >= 16 && show_bits(&s->gb, 16)==0){
>           pos= get_bits_count(&s->gb);
>           if(CONFIG_MPEG4_DECODER && s->codec_id==AV_CODEC_ID_MPEG4)
>               ret= ff_mpeg4_decode_video_packet_header(s);
>

No, this patch doesn't work.

Interestingly, the frequency of "marker does not match f_code" messages 
fluctuates strongly with different videos: some trigger very few 
messages, but for the most of them the message gets printed regularly 
for every second frame.

-- 
Regards

Ilja


More information about the MPlayer-users mailing list