[FFmpeg-devel] [PATCH]lavf/amr: Add amrnb and amrwb demuxers
Michael Niedermayer
michael at niedermayer.cc
Wed Oct 4 02:00:52 EEST 2017
On Tue, Oct 03, 2017 at 12:02:23AM +0200, Carl Eugen Hoyos wrote:
> 2017-10-02 23:47 GMT+02:00 Carl Eugen Hoyos <ceffmpeg at gmail.com>:
> > 2017-10-02 23:02 GMT+02:00 Michael Niedermayer <michael at niedermayer.cc>:
> >> On Sun, Oct 01, 2017 at 06:23:50PM +0200, Carl Eugen Hoyos wrote:
> >>> 2017-09-27 18:08 GMT+02:00 Carl Eugen Hoyos <ceffmpeg at gmail.com>:
> >>>
> >>> > The existing amr demuxer does not allow reading streams,
> >>> > it requires the 3GPP-conforming file header.
> >>> > Attached patch allows reading amrnb and amrwb from (live)
> >>> > streams, fixes ticket #6678.
> >>>
> >>> New patch with auto-detection attached, passes probecheck.
> >>>
> >>> Please comment, Carl Eugen
> >>
> >> breaks mingw64
> >> libavformat/aviobu
> >> In file included from src/libavformat/amrnb.c:26:0:
> >> src/libavcodec/amrnbdata.h:50:5: error: expected identifier before ‘(’ token
> >> NO_DATA = 15 ///< no transmission
> >> ^
> >> make: *** [libavformat/amrnb.o] Error 1
> >> make: *** Waiting for unfinished jobs....
> >> STRIP libavfilter/x86/vf_yadif.o
> >> STRIP libavfilter/x86/vf_removegrain.o
> >> In file included from src/libavformat/amrwb.c:26:0:
> >> src/libavcodec/amrwbdata.h:64:5: error: expected identifier before ‘(’ token
> >> NO_DATA ///< no transmission
> >> ^
> >> make: *** [libavformat/amrwb.o] Error 1
> >
> > The errors are apparently caused by the following definitions in a mingw header:
> > #define WSANO_DATA (WSABASEERR + 1004)
> > #define NO_DATA WSANO_DATA
>
> Attached is one possible solution.
>
> Please comment, Carl Eugen
> amrnbdata.h | 2 +-
> amrnbdec.c | 5 +++--
> amrwbdata.h | 2 +-
> 3 files changed, 5 insertions(+), 4 deletions(-)
> eb545b4abc7d2849db7be8f78abba8a1626a2ba7 0001-lavc-amr-Rename-NO_DATA-as-AMR_NO_DATA.patch
> From 317dbccb46a02ac997c8826ef4c31b787fc8ce47 Mon Sep 17 00:00:00 2001
> From: Carl Eugen Hoyos <ceffmpeg at gmail.com>
> Date: Tue, 3 Oct 2017 00:00:29 +0200
> Subject: [PATCH] lavc/amr: Rename NO_DATA as AMR_NO_DATA.
>
> mingw64 defines NO_DATA in wsa_errnos.h
> ---
> libavcodec/amrnbdata.h | 2 +-
> libavcodec/amrnbdec.c | 5 +++--
> libavcodec/amrwbdata.h | 2 +-
> 3 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/libavcodec/amrnbdata.h b/libavcodec/amrnbdata.h
> index 435fd99..b38f955 100644
> --- a/libavcodec/amrnbdata.h
> +++ b/libavcodec/amrnbdata.h
> @@ -47,7 +47,7 @@ enum Mode {
> MODE_12k2, ///< 12.2 kbit/s
> MODE_DTX, ///< silent frame
> N_MODES, ///< number of modes
> - NO_DATA = 15 ///< no transmission
> + AMR_NO_DATA = 15 ///< no transmission
> };
>
> #define LP_FILTER_ORDER 10 ///< linear predictive coding filter order
> diff --git a/libavcodec/amrnbdec.c b/libavcodec/amrnbdec.c
> index ea299ac..ae5be5d 100644
> --- a/libavcodec/amrnbdec.c
> +++ b/libavcodec/amrnbdec.c
> @@ -214,8 +214,9 @@ static enum Mode unpack_bitstream(AMRContext *p, const uint8_t *buf,
> p->bad_frame_indicator = (buf[0] & 0x4) != 0x4; // quality bit
>
> if (mode >= N_MODES || buf_size < frame_sizes_nb[mode] + 1) {
> - return NO_DATA;
> + return AMR_NO_DATA;
> }
> +printf("mode: %d, size: %ld, bitmaps_per_mode: %d \n", mode, sizeof(AMRNBFrame), *amr_unpacking_bitmaps_per_mode[mode]);
you missed this line in the patch
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
The real ebay dictionary, page 2
"100% positive feedback" - "All either got their money back or didnt complain"
"Best seller ever, very honest" - "Seller refunded buyer after failed scam"
-------------- 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/20171004/ddd969ae/attachment.sig>
More information about the ffmpeg-devel
mailing list