From patchwork Mon Oct 2 22:02:23 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: 5388 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.61.8 with SMTP id n8csp1992682jan; Mon, 2 Oct 2017 15:02:54 -0700 (PDT) X-Received: by 10.223.173.148 with SMTP id w20mr2761198wrc.253.1506981774382; Mon, 02 Oct 2017 15:02:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1506981774; cv=none; d=google.com; s=arc-20160816; b=klc543GR/QPzJfD1Ko3wCZ69hsa1hg97yFIY8kpLOADcNipWOOCSHYEx+UkXERN6/n sjwDU8FBMi9CC9or/Rk/zt7O51MifLrWoj3AcZSgLIWm4LkXgocUqE1AfVhd4JYQoTaT 1YIYa/WTOIqlt+a/UkmNReXl07vz98gunBvcBwjz3tclcIYUq8PKMxtMAeBWPjuTdatq bjKYp07jpG2UIAH3JDNIlTBMzgQlH6VlhZjvHwgwi4Buej0REdjRHLXKYKnLbnukGP8n kSR0t0He2h/pNvvqaiLsoEC2NTTEjL4rh7XPL4C3JXF5eo/dVNnRQoX07bzUkR9Dm/+G gvgw== 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=Brsb3j/948NMHd9MCZRL1JIZ5MXytu54upIG2MLgGvM=; b=PRxIDciG5wcy2S/b/FzEaRVRSU/FjfiG5TRSDGG27067X5VIie0aWxYZ8YvL+geYrE tMSEbJqkp4dFTmjPp0oFuU3PUVYbBb26WN6XN9rhyc+Pq/IpouKkQFjirrhm7+bIW2Rm NIavjd4iK30Ud+ydzs6qyc5R4+ySYMnuVfSTa4AORzo2xgTGYGHnM0IbsynrRvEmBe+o IA1xqJTI7j30pxPbPATYFV8tIGg7s3Zl6QlaqR9CHDYb0fpYz14FKIht/M/+GY0YAotJ hLfGhO5gXIOrmPUSlC3FBNBieLKL1REJG0gYBWP7lpEBDQvT1ffVrAV5ORW7z/MPhZcH TSxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=a38k4Qps; 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 193si7375911wmj.143.2017.10.02.15.02.53; Mon, 02 Oct 2017 15:02:54 -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=a38k4Qps; 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 11164689FFD; Tue, 3 Oct 2017 01:02:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io0-f182.google.com (mail-io0-f182.google.com [209.85.223.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B1507689AD3 for ; Tue, 3 Oct 2017 01:02:31 +0300 (EEST) Received: by mail-io0-f182.google.com with SMTP id g32so6026410ioj.2 for ; Mon, 02 Oct 2017 15:02:46 -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=+rNDlrVjRaOqf3uJJY/6zvIYo9ybki8T09Is+nPCYwc=; b=a38k4QpsMeRXZOJrP1OD1wJpguSGH4ZU9s1NLNziKnHOd+OcvawP5WjFWLw56AArLp 5aRNg+rINJT49xvsLUX3Q9VFApp+hsmKPDkcl/LDDocwPyh7zW3qaGnAq0jpVV/ESRg8 0UYIgAEnQmPJf1SEyFsWA8Ed17kUDLNqVXAPLhNu2RnPOTDu06umuYuxVaw12GSeU5Y8 9OHt4uqUrwC0pnVdJHzhit+jDMD1tdCyqiDmO0zP1JoUnB432Ty1tITOJu2e9Wa2vntG Nl1jk2ajAH0rxUOORyqJncmseEXRdMzw/GPguQnuTXZ0DqoomhH0KQsBikbD/WqV5Ai9 hjKw== 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=+rNDlrVjRaOqf3uJJY/6zvIYo9ybki8T09Is+nPCYwc=; b=PyhygmZek6yVSEqXdvd8VkcSULCUhbr4odqr3KVRmBeU/9bZfIkzYhIuZ2gE2Djbjb Hahoqr03voz95GhbhfmumI2ZhuRZ4Pbz5jeKgF3DNFTfIIo9+6A0aPN1n5orFKMRVC/q oCjiTf3Wja6w23iOyJ9NdrMG4MZKj+c3g3Ndo/bHVt95nyEpr4DRgh8dBg8STPuQJTqS omLD0pZmh74htyR/GvmMsb4+HEbeERjJd/FtDIyLFlluob75ZqTedyC48wiNnzCNLJSF pX3dqyYd5yR3urQCO8bG1Kd4Tiv5lrOcZhHy9/Vpxih2w5YyP6cgFegBYzSCrg73e9bV UgPw== X-Gm-Message-State: AMCzsaWiljWcD2YoNb7srbOo0EbtbRjk4OgKkw+OdjEZHLU+48HrRRVT XHSRgE0EwcY+aR1LKqQvlYCgUOiGjOmwp+c2H3g= X-Google-Smtp-Source: AOwi7QCZIqCLvqefZcgyioeRY9sbrBn6UAdB/O3Gx/7R1ZrOzJWzPnd/YI+pBh5VJYn8VsB9AqJe5YtQdhI4YCBWTFM= X-Received: by 10.107.128.79 with SMTP id b76mr28412709iod.109.1506981764486; Mon, 02 Oct 2017 15:02:44 -0700 (PDT) MIME-Version: 1.0 Received: by 10.2.81.137 with HTTP; Mon, 2 Oct 2017 15:02:23 -0700 (PDT) In-Reply-To: References: <20171002210259.GV30840@nb4> From: Carl Eugen Hoyos Date: Tue, 3 Oct 2017 00:02:23 +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-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 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]); 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