[FFmpeg-devel] [PATCH] avcodec/aacdec_template: Allow duplicated elements

Michael Niedermayer michael at niedermayer.cc
Fri Oct 12 01:45:45 EEST 2018


On Thu, Oct 11, 2018 at 12:56:30PM +0200, Paul B Mahol wrote:
> On 10/7/18, Michael Niedermayer <michael at niedermayer.cc> wrote:
> > Such streams are invalid according to
> > 4.5.2.1 Top level payloads for the audio object types AAC main, AAC SSR, AAC
> > LC and AAC LTP
> > 4.5.2.1.1 Definitions
> > ...cIn the raw_data_block(), several instances of the
> > same syntactic element may occur, but must have a different 4 bit
> > element_instance_tag, except for data_stream_element()'s and
> > fill_element()'s.
> >
> > Fixes: Ticket7477
> >
> > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > ---
> >  libavcodec/aacdec_template.c | 11 +++++++----
> >  1 file changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c
> > index b60b31a92c..dce6035d67 100644
> > --- a/libavcodec/aacdec_template.c
> > +++ b/libavcodec/aacdec_template.c
> > @@ -3161,12 +3161,15 @@ static int aac_decode_frame_int(AVCodecContext
> > *avctx, void *data,
> >
> >          if (elem_type < TYPE_DSE) {
> >              if (che_presence[elem_type][elem_id]) {
> > -                av_log(ac->avctx, AV_LOG_ERROR, "channel element %d.%d
> > duplicate\n",
> > +                int error = che_presence[elem_type][elem_id] > 1;
> > +                av_log(ac->avctx, error ? AV_LOG_ERROR : AV_LOG_DEBUG,
> > "channel element %d.%d duplicate\n",
> >                         elem_type, elem_id);
> > -                err = AVERROR_INVALIDDATA;
> > -                goto fail;
> > +                if (error) {
> > +                    err = AVERROR_INVALIDDATA;
> > +                    goto fail;
> > +                }
> >              }
> > -            che_presence[elem_type][elem_id] = 1;
> > +            che_presence[elem_type][elem_id]++;
> >
> >              if (!(che=get_che(ac, elem_type, elem_id))) {
> >                  av_log(ac->avctx, AV_LOG_ERROR, "channel element %d.%d is
> > not allocated\n",
> > --
> > 2.19.0
> >
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> 
> probably ok

will apply

thanks

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

Concerning the gods, I have no means of knowing whether they exist or not
or of what sort they may be, because of the obscurity of the subject, and
the brevity of human life -- Protagoras
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20181012/25d71d19/attachment.sig>


More information about the ffmpeg-devel mailing list