2017-10-02 23:47 GMT+02:00 Carl Eugen Hoyos <ceffm...@gmail.com>: > 2017-10-02 23:02 GMT+02:00 Michael Niedermayer <mich...@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 <ceffm...@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
From 317dbccb46a02ac997c8826ef4c31b787fc8ce47 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos <ceffm...@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]); if (mode < MODE_DTX) ff_amr_bit_reorder((uint16_t *) &p->frame, sizeof(AMRNBFrame), buf + 1, @@ -968,7 +969,7 @@ static int amrnb_decode_frame(AVCodecContext *avctx, void *data, buf_out = (float *)frame->data[0]; p->cur_frame_mode = unpack_bitstream(p, buf, buf_size); - if (p->cur_frame_mode == NO_DATA) { + if (p->cur_frame_mode == AMR_NO_DATA) { av_log(avctx, AV_LOG_ERROR, "Corrupt bitstream\n"); return AVERROR_INVALIDDATA; } diff --git a/libavcodec/amrwbdata.h b/libavcodec/amrwbdata.h index 8a8cbfd..3f8b26c 100644 --- a/libavcodec/amrwbdata.h +++ b/libavcodec/amrwbdata.h @@ -61,7 +61,7 @@ enum Mode { MODE_SID, ///< comfort noise frame /* 10-13: Future use */ SP_LOST = 14, ///< speech lost - NO_DATA ///< no transmission + AMR_NO_DATA ///< no transmission }; /* All decoded parameters in these structs must be 2 bytes long -- 1.7.10.4
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel