[FFmpeg-devel] [PATCH v1 1/1] avformat/amr: Return PATCHWELCOME on stereo files

Sun Zhenliang hisunzhenliang at outlook.com
Thu Sep 30 17:42:01 EEST 2021


在 2021年9月30日 +0800 19:56,Paul B Mahol <onemda at gmail.com>,写道:
> On Thu, Sep 30, 2021 at 5:05 AM Sun Zhenliang <hisunzhenliang at outlook.com>
> wrote:
>
> > ping for review.
> >
>
> have amr-wb mc stereo sample?
yes, here are the stereo amr-wb/nb files.

https://github.com/HiSunzhenliang/patch/blob/main/ffmpeg/avformat-amr-Return-PATCHWELCOME-on-stereo-files/stereo.amr-wb
patch/stereo.amr-wb

https://github.com/HiSunzhenliang/patch/blob/main/ffmpeg/avformat-amr-Return-PATCHWELCOME-on-stereo-files/stereo.amr-nb
patch/stereo.amr-nb
>
>
> > 在 2021年9月27日 +0800 09:48,Sun Zhenliang <hisunzhenliang at outlook.com>,写道:
> > > 在 2021年9月26日 +0800 20:40,mypopy at gmail.com <mypopy at gmail.com>,写道:
> > > > On Thu, Sep 16, 2021 at 11:24 AM sunzhenliang
> > > > <hisunzhenliang at outlook.com> wrote:
> > > > >
> > > > > Signed-off-by: sunzhenliang <hisunzhenliang at 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 at ffmpeg.org
> > > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > > >
> > > > To unsubscribe, visit link above, or email
> > > > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> >
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list