[FFmpeg-devel] [PATCH] sbcdec: do not unnecessarily set frame properties

Michael Niedermayer michael at niedermayer.cc
Wed Mar 18 23:40:44 EET 2020


On Wed, Mar 18, 2020 at 09:35:56AM +0100, Anton Khirnov wrote:
> Quoting Michael Niedermayer (2020-03-16 21:58:52)
> > On Wed, Jan 29, 2020 at 06:00:16PM +0100, Anton Khirnov wrote:
> > > Decoders are supposed to export stream properties in AVCodecContext, the
> > > AVFrame properties are set from those in ff_get_buffer().
> > > ---
> > >  libavcodec/sbcdec.c | 7 ++++---
> > >  1 file changed, 4 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/libavcodec/sbcdec.c b/libavcodec/sbcdec.c
> > > index d8ea6855fe..2ebde46627 100644
> > > --- a/libavcodec/sbcdec.c
> > > +++ b/libavcodec/sbcdec.c
> > > @@ -324,6 +324,8 @@ static int sbc_decode_init(AVCodecContext *avctx)
> > >      SBCDecContext *sbc = avctx->priv_data;
> > >      int i, ch;
> > >  
> > > +    avctx->sample_fmt = AV_SAMPLE_FMT_S16P;
> > > +
> > >      sbc->frame.crc_ctx = av_crc_get_table(AV_CRC_8_EBU);
> > >  
> > >      memset(sbc->dsp.V, 0, sizeof(sbc->dsp.V));
> > > @@ -348,9 +350,8 @@ static int sbc_decode_frame(AVCodecContext *avctx,
> > >      if (frame_length <= 0)
> > >          return frame_length;
> > >  
> > > -    avctx->channels =
> > > -    frame->channels = sbc->frame.channels;
> > > -    frame->format = AV_SAMPLE_FMT_S16P;
> > > +    avctx->channels = sbc->frame.channels;
> > > +
> > 
> > probably ok but the design of exporting data which describes the current frame
> > in the main context instead of the frames context. It gives a moment pause
> > not feeling that this is the ideal design
> 
> Perhaps, but that's how things evolved historically and how things now
> are. One decoder behaving differently from all the others is confusing,
> especially when there is no reason for it.
> 
> FWIW I would be totally in favor of reducing the use of AVCodecContext
> variables (it's too much of a "god structure") and switch to using frame
> variables for this. But it's a lot of boring work and someone would have
> to do it.

i agree with everything you said above

thx

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

Never trust a computer, one day, it may think you are the virus. -- Compn
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20200318/dac2b2f8/attachment.sig>


More information about the ffmpeg-devel mailing list