[FFmpeg-devel] [PATCH] avcodec/h264: remove redundant and bogus get_format call

Michael Niedermayer michael at niedermayer.cc
Sun Oct 11 23:53:29 CEST 2015


On Sun, Oct 11, 2015 at 09:27:13PM +0200, wm4 wrote:
> On Sun, 11 Oct 2015 21:22:40 +0200
> Michael Niedermayer <michael at niedermayer.cc> wrote:
> 
> > On Sun, Oct 11, 2015 at 07:05:27PM +0200, wm4 wrote:
> > > The AVCodecContext.get_format callback is not only used for pixel format
> > > negotiation with the API user, but also for hwaccel init. For the
> > > latter, it's required that some codec parameters, in particular the
> > > codec profile, are set when the callback is invoked.
> > > 
> > > This patch removes a get_format invocation where this is not guaranteed.
> > > The codec parameters, including the profile, are really set further
> > > below. (The same code path that sets the profile also calls get_format
> > > properly too.)
> > > 
> > > This just happened to work by coincidence in most cases. For example, if
> > > the API user just copied or reused the AVStream's AVCodecContext when
> > > decoding, the profile would be set properly. But in some cases it
> > > fails., such as with the sample WolfensteinTwitch.mp4 on the samples
> > > server.
> > > 
> > > Remove the redundant get_format call. Apparently it serves no purpose
> > > anymore, although it is possible that this was different at the time it
> > > was added in commit ffd77f94a26be22b8ead3178ceec3ed39e68abc5.
> > > 
> > > This fixes hwaccel usage for API users which do not set the profile
> > > when setting up the AVCodecContext (which is allowed).
> > > ---
> > >  libavcodec/h264_slice.c | 14 --------------
> > >  1 file changed, 14 deletions(-)
> > 
> > ive posted an alternative patchset of 2 patches which should prevent
> > get_format() from being called. That would leave the check in place
> 
> I would prefer getting rid of this completely, because it looks
> redundant. My patch also manages to get rid of the weird J format
> handling (kill it with fire).
> 

> Do you have a sample that breaks with my patch?

none of the files i tried

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Everything should be made as simple as possible, but not simpler.
-- Albert Einstein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20151011/2231611e/attachment.sig>


More information about the ffmpeg-devel mailing list