[FFmpeg-devel] [PATCH] lavc/h264_slice: clarify informational message in case of disabled slice multi-threaded decoding

Ronald S. Bultje rsbultje at gmail.com
Mon Jun 9 20:20:25 CEST 2014


Hi,

On Mon, Jun 9, 2014 at 1:34 PM, Stefano Sabatini <stefasab at gmail.com> wrote:

> Also suggest what can be done to workaround the limitation.
> ---
>  libavcodec/h264_slice.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
> index 5f67b54..61064e3 100644
> --- a/libavcodec/h264_slice.c
> +++ b/libavcodec/h264_slice.c
> @@ -1873,7 +1873,8 @@ int ff_h264_decode_slice_header(H264Context *h,
> H264Context *h0)
>              h0->max_contexts = 1;
>              if (!h0->single_decode_warning) {
>                  av_log(h->avctx, AV_LOG_INFO,
> -                       "Cannot parallelize deblocking type 1, decoding
> such frames in sequential order\n");
> +                       "Cannot parallelize slice decoding with deblocking
> filter type 1, decoding such frames in sequential order\n"
> +                       "You can use flag2 +fast to enable it\n");
>                  h0->single_decode_warning = 1;
>              }
>              if (h != h0) {
> --
> 1.8.3.2


You should probably also make it clear that doing so will cause
nondeterministic output which violates the h264 spec? I mean, the more
appropriate things to do are:
- if latency is acceptable, use some other form of threading (e.g. frame-mt)
- if latency is not acceptable (e.g. live videochat), use skip-slice-edges
loopfilter mode (in the encoder)

Ronald


More information about the ffmpeg-devel mailing list