[FFmpeg-devel] [PATCH] avcodec/utils: initialize delay in avcodec_parameters_to_context()

Michael Niedermayer michael at niedermayer.cc
Sat Jun 4 19:09:46 CEST 2016


On Sat, Jun 04, 2016 at 09:16:09AM -0400, Ronald S. Bultje wrote:
> Hi,
> 
> On Sat, Jun 4, 2016 at 7:27 AM, Michael Niedermayer <michael at niedermayer.cc>
> wrote:
> 
> > On Sat, Jun 04, 2016 at 12:15:50PM +0200, Hendrik Leppkes wrote:
> > > On Sat, Jun 4, 2016 at 12:09 PM, Michael Niedermayer
> > > <michael at niedermayer.cc> wrote:
> > > > On Sat, Jun 04, 2016 at 09:47:47AM +0200, Hendrik Leppkes wrote:
> > > >> On Sat, Jun 4, 2016 at 4:55 AM, Michael Niedermayer
> > > >> <michael at niedermayer.cc> wrote:
> > > >> > Fixes lost codec delayy
> > > >> > Should fix Ticket5509
> > > >> >
> > > >> > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > > >> > ---
> > > >> >  libavcodec/utils.c |    1 +
> > > >> >  1 file changed, 1 insertion(+)
> > > >> >
> > > >> > diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> > > >> > index 7b99526..4016583 100644
> > > >> > --- a/libavcodec/utils.c
> > > >> > +++ b/libavcodec/utils.c
> > > >> > @@ -4157,6 +4157,7 @@ int
> > avcodec_parameters_to_context(AVCodecContext *codec,
> > > >> >          codec->sample_rate     = par->sample_rate;
> > > >> >          codec->block_align     = par->block_align;
> > > >> >          codec->frame_size      = par->frame_size;
> > > >> > +        codec->delay           =
> > > >> >          codec->initial_padding = par->initial_padding;
> > > >> >          codec->seek_preroll    = par->seek_preroll;
> > > >> >          break;
> > > >> > --
> > > >> > 1.7.9.5
> > > >> >
> > > >>
> > > >> Its probably fine to set it, but delay is not the correct field for
> > > >> ffmpeg.c and/or whichever muxer is involved to be using then.
> > > >
> > > > delay must be set for the demuxer (required by API and used by
> > > > applications), avcodec_parameters_to_context()
> > > > has no knowledge about working on demuxer or muxer side
> > > > contexts unless i miss something. (i tried avctx->codec but its never
> > > > set)
> > > > I can add a parameter to avcodec_parameters_to_context() that
> > > > indicates if its for the demuxer or muxer or add a
> > > > avcodec_parameters_to_context2() or a
> > > > avcodec_parameters_to_context_demuxer()
> > > > ff_parameters_to_context_demuxer()
> > > > do you agree to add such function ?
> > > > (iam asking as changes to AVCodecParameters API tend to receive
> > > >  a lot of opposition)
> > >
> > > Adding more weird API sounds silly, this patch is likely the better
> > option.
> >
> > applied
> >
> >
> > > Once ffmpeg.c is updated to use codecpar properly, this whole
> > > double-field issue goes away anyway.
> >
> > i dont think it does as the API requires delay to be set
> 
> 
> We can change API on the next major version bump.

The field is not deprecated
we can mark the API as deprecated before the next version bump and
remove it on the following API bump at the earliest

my oppinion was and is that maintaining long term API compatibility
is better than frequent API changes though

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

The educated differ from the uneducated as much as the living from the
dead. -- Aristotle 
-------------- 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/20160604/4b1cd2e9/attachment.sig>


More information about the ffmpeg-devel mailing list