From patchwork Tue Oct 3 23:07:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 5404 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.76 with SMTP id m12csp195207jah; Tue, 3 Oct 2017 16:08:04 -0700 (PDT) X-Received: by 10.223.198.130 with SMTP id j2mr19877322wrg.52.1507072084511; Tue, 03 Oct 2017 16:08:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507072084; cv=none; d=google.com; s=arc-20160816; b=LAFCTaW4jDzwjnCvXm7Vtkp8GcZ67Rryl5yUK3YvRrpD4hOh0s4+nYhZRlMOFDucgQ BczPnK1KKscZiDDmoETemFJOe6u1XOo8KGRQw1UprYRX3ZRHzFW19oClVD52YtagcHcf gvCJJfC7sciGeba97z6BZAKnXr9T8JHz26zCUfON2AUKvaZfW2F65piBxfT230p1n5G7 otyDXMZrrpTsNCl/5OSL7mdtYbdseh90B0M/KjGM/YBrumvc10iPYLyuAd02sDTsa0FZ 0G/dFAAjGztS4bnoP6dDs7o58YpPzthc3HeMi3ehh1mbCkdS7CmiTrAbuVWtUvVybpzn g/Fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:delivered-to:arc-authentication-results; bh=VsTKAOtmeLSOaOul+L6f2fMsAGLibtYsI1B4Xx759vs=; b=dVTFlJ5No/f25nLJhukTsBYsCQZrXouIrnvgDE0tQdj4J8EVRtUuvDSI5dBnRtbkgw Fw2hEJ2EVjywfopvu7oqwEWYQD0nyTgA6FPPcPX5ov9XI3plHtpIe7Qhlro/RzkA4QIJ NZg9vM0AhKsxvH/PGUnJy1mOHg2lo5ENgFIONHvskyvpOq3sRBz2WDtU7RaJI0OrEa/h hbzk0FUZjpMyq1vrFMGkigxUXrdycLTvYdEJzL165MXHCKil1qgd9WpU/haKCUhuBrxr 5zfIX7E8oBkJtkoVvkVG1FHjcAW9xsCOdZJAiD0LQ9VsUIFi/YTgD7Vvxx2wd+sP4LeB MkPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=jcEAaaGl; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id x1si11532376wrd.488.2017.10.03.16.08.04; Tue, 03 Oct 2017 16:08:04 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=jcEAaaGl; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6937568A136; Wed, 4 Oct 2017 02:07:48 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it0-f41.google.com (mail-it0-f41.google.com [209.85.214.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 303CE689E75 for ; Wed, 4 Oct 2017 02:07:42 +0300 (EEST) Received: by mail-it0-f41.google.com with SMTP id v62so3275834itd.1 for ; Tue, 03 Oct 2017 16:07:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=l7QsoQ4kK35OI5rc95iI6llte2Py0K2LRdognk34Kjs=; b=jcEAaaGlZK4NyGMQhygSTLrPkKhA2soGpp71o3BH3/voT3d1yaJI+ym25jW+6zjao+ 4SfXTWB+IlFb1jjIMnIc+XTruDiwNBLv/3KqOwoqSEmMrH6RbES/PQaAjR5PQIuf45Pp MqzGp/vhT1metzzOar71H21PMWMFvlVpg+thcb/qKaEehXEtB86FbXZRYjZO/iWpOg/D wSkMXXz13gG/lvQBD4For80kENwyCOLLHdPkKyzhHNfkLbXQsnEVv2U2AOe1+wI9x74m 1AsJQgZCxIDwLkCia6F2Pqz6CmeBpXon2EDCWIaHaBlBqUDMa9H/vfOW/JBTPMT9cxs8 Bb/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=l7QsoQ4kK35OI5rc95iI6llte2Py0K2LRdognk34Kjs=; b=Up/DXVlyp8noItVM+4D43NJ1/gwVsTaMzQGXvI+IfCPpewJjV08PbS+IQ6hKUAguw2 B7Tk70pSUYqtolnp+kOtn/FBqI1U+S8NB/M4plvgHPTK28ol24uQ2YrRk9C+kqO/jBts S8k1D2ZIcPtFigTCq9XWhGeYr9lFi2wOLcaYbYtYnOC5rd96KFBwwQZTPVXSeAq1eyDf rx/OU1Wxd1wMjxXSv7OTTYwnjWMlUQbSPWrrFE7syHql4LqLvuwTqucEewl/0SOnJRb/ 3kRpai29DhKxYw/w9kLPn6PUDKOsU3X7zHvsoTLhxB3sk17mcLMCz9XeM5mRo64zJThq Apog== X-Gm-Message-State: AMCzsaWPOvxvgRiDyhdUZ4IQloEWTJsNBFxLj2mWWuzJKEylnfgglJUi UrtDHptTLt0U1z0RLyYoAXEioBjzxHRaMKe6EGo= X-Google-Smtp-Source: AOwi7QDJpE69bhc3/PBOm98Q+Bj/YejAB0iYYC+CPlGWdbGabMW/Nu6kkJeemLMhE8HaUTr/BjikZ9AygTL6RuwarPA= X-Received: by 10.36.253.11 with SMTP id m11mr65369ith.12.1507072075620; Tue, 03 Oct 2017 16:07:55 -0700 (PDT) MIME-Version: 1.0 Received: by 10.2.81.137 with HTTP; Tue, 3 Oct 2017 16:07:34 -0700 (PDT) In-Reply-To: <20171003230052.GA6009@nb4> References: <20171002210259.GV30840@nb4> <20171003230052.GA6009@nb4> From: Carl Eugen Hoyos Date: Wed, 4 Oct 2017 01:07:34 +0200 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH]lavf/amr: Add amrnb and amrwb demuxers X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" 2017-10-04 1:00 GMT+02:00 Michael Niedermayer : > 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 : >> > 2017-10-02 23:02 GMT+02:00 Michael Niedermayer : >> >> 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 : >> >>> >> >>> > 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 >> 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 (Which crashed the decoder.) Sorry, fixed patch attached. Carl Eugen From 317dbccb46a02ac997c8826ef4c31b787fc8ce47 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos 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,7 +214,7 @@ 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; } if (mode < MODE_DTX) @@ -968,7 +968,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