[FFmpeg-cvslog] r10407 - in trunk/libavcodec: h264.c h264.h mpegvideo.c

Reimar Döffinger Reimar.Doeffinger
Fri Sep 7 18:25:19 CEST 2007


Hello,
> @@ -3716,6 +3813,17 @@ static int decode_slice_header(H264Conte
>              h->slice_beta_offset = get_se_golomb(&s->gb) << 1;
>          }
>      }
> +
> +    if(h->deblocking_filter == 1 && h0->max_contexts > 1) {
> +        h0->max_contexts = 1;
> +        if(!h0->single_decode_warning) {
> +            av_log(s->avctx, AV_LOG_INFO, "Cannot parallelize deblocking type 1, decoding such frames in sequential order\n");
> +            h0->single_decode_warning = 1;
> +        }
> +        if(h != h0)
> +            return 1; // deblocking switched inside frame
> +    }
> +
>      if(   s->avctx->skip_loop_filter >= AVDISCARD_ALL
>         ||(s->avctx->skip_loop_filter >= AVDISCARD_NONKEY && h->slice_type != I_TYPE)
>         ||(s->avctx->skip_loop_filter >= AVDISCARD_BIDIR  && h->slice_type == B_TYPE)

Hmm... But isn't it rather stupid to revert to sequential decoding even
when the deblocking is skipped? Shouldn't the block that checks for
skip_loop_filter be moved before the new block? At least it works quite
nicely for me...

Greetings,
Reimar D?ffinger




More information about the ffmpeg-cvslog mailing list