在 2021年9月26日 +0800 20:40,myp...@gmail.com <myp...@gmail.com>,写道: > On Thu, Sep 16, 2021 at 11:24 AM sunzhenliang > <hisunzhenli...@outlook.com> wrote: > > > > Signed-off-by: sunzhenliang <hisunzhenli...@outlook.com> > > --- > > libavformat/amr.c | 22 ++++++++++++++++++---- > > 1 file changed, 18 insertions(+), 4 deletions(-) > > > > diff --git a/libavformat/amr.c b/libavformat/amr.c > > index 836b276fd5..2762010ebe 100644 > > --- a/libavformat/amr.c > > +++ b/libavformat/amr.c > > @@ -36,8 +36,10 @@ typedef struct { > > uint64_t block_count; > > } AMRContext; > > > > -static const char AMR_header[] = "#!AMR\n"; > > -static const char AMRWB_header[] = "#!AMR-WB\n"; > > +static const char AMR_header[] = "#!AMR\n"; > > +static const char AMR_MC_header[] = "#!AMR_MC1.0\n"; > > +static const char AMRWB_header[] = "#!AMR-WB\n"; > > +static const char AMRWB_MC_header[] = "#!AMR-WB_MC1.0\n"; > I don't think you need to format the AMR_header[] and AMRWB_header[] > in the patch I just think aligning the equals sign will look neat, which can't be reflected in the email. > > > > static const uint8_t amrnb_packed_size[16] = { > > 13, 14, 16, 18, 20, 21, 27, 32, 6, 1, 1, 1, 1, 1, 1, 1 > > @@ -82,7 +84,7 @@ static int amr_read_header(AVFormatContext *s) > > { > > AVIOContext *pb = s->pb; > > AVStream *st; > > - uint8_t header[9]; > > + uint8_t header[15]; > > > > if (avio_read(pb, header, 6) != 6) > > return AVERROR_INVALIDDATA; > > @@ -94,7 +96,19 @@ static int amr_read_header(AVFormatContext *s) > > if (avio_read(pb, header + 6, 3) != 3) > > return AVERROR_INVALIDDATA; > > if (memcmp(header, AMRWB_header, 9)) { > > - return -1; > > + if (avio_read(pb, header + 6 + 3, 3) != 3) > > + return AVERROR_INVALIDDATA; > > + if (memcmp(header, AMR_MC_header, 12)) { > > + if (avio_read(pb, header + 6 + 3 + 3, 3) != 3) > > + return AVERROR_INVALIDDATA; > > + if (memcmp(header, AMRWB_MC_header, 15)) { > > + return -1; > > + } > > + avpriv_report_missing_feature(s, "multi-channel AMRWB"); > > + return AVERROR_PATCHWELCOME; > > + } > > + avpriv_report_missing_feature(s, "multi-channel AMR"); > > + return AVERROR_PATCHWELCOME; > > } > > > > st->codecpar->codec_tag = MKTAG('s', 'a', 'w', 'b'); > > -- > > 2.25.1 > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".