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

Ronald S. Bultje rsbultje at gmail.com
Wed Jun 18 12:39:13 CEST 2014


Hi,


On Wed, Jun 18, 2014 at 5:22 AM, Stefano Sabatini <stefasab at gmail.com>
wrote:

> On date Tuesday 2014-06-10 11:17:48 -0400, Ronald S. Bultje encoded:
> > Hi,
> [...]
> > > > You should probably also make it clear that doing so will cause
> > > > nondeterministic output which violates the h264 spec?
> > >
> > > This should be apparent from fast flag documentation. But I can add:
> > >
> > > "You can use flag2 +fast to enable it, but this will generate
> > > non-spec-compliant output"
> > >
> > > > 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)
> > >
> > > Can't find a reference to such mode, can you provide a link or
> > > reference? What codecs provide such option?
> > >
> >
> > This is 2 lines above what you patches: h->deblocking_filter == 2 (or in
> > the spec: disable_deblocking_filter_idc == 2) means deblock only edges
> that
> > don't cross slices. 1 means deblock all edges, even between slices (which
> > means you can't mt it if you use slice-mt). 0 means no deblocking.
> >
> > I don't know what mode x264 uses from the top of my head.
>
> Thanks for the valuable information and explanation. From my browsing
> in the libx264 source-code there is no way to explicitly set the
> option, it is automatically enabled when slices are enabled (but: I
> might be wrong).
>
> Updated patch with more verbose explanation.
>

That looks good, and I think you're right w.r.t. x264.

Ronald


More information about the ffmpeg-devel mailing list