From patchwork Wed Jan 30 13:47:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 11913 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 3B98E44C41B for ; Wed, 30 Jan 2019 15:47:27 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5198F68AD3E; Wed, 30 Jan 2019 15:47:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io1-f67.google.com (mail-io1-f67.google.com [209.85.166.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9182468ABCC for ; Wed, 30 Jan 2019 15:47:08 +0200 (EET) Received: by mail-io1-f67.google.com with SMTP id k2so19392326iog.7 for ; Wed, 30 Jan 2019 05:47:29 -0800 (PST) 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=BVFvpAU6iA1FEPMd0cc7bpkBROck06/fdbhNXbOjXLM=; b=ueWPo+j1s6aHWm3TaMQby9zP91AJ7kQ8KJ3dU9SrQZ73gAKcV1v9Y1v/vZxWsAusEL lV90Rof4JkBrdPFlvXVvf1ObJ03j7SYXDRkkMvgdfjwQa2ZuMHA239qrC1FfrfZ4xsG0 9OwCyLF2+HAwSf3KEGwkH+x3DVgvNizVGVN5H2NJEYUOPSDJh356Rnh1zfpz5V4LcTVg eoN5Yt7PNS2RHjJn/k6nuJJeFDRmgxTdZfBpdjzZqiclTD864MzpYsFBQ2iwEX4xiNT5 AX+zAoa6Vz9nVz3p//EObOKtyks8aeda28u3XfDJZt4jSBGfc/OciZyBi+zV6yS7rmFi +PUQ== 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=BVFvpAU6iA1FEPMd0cc7bpkBROck06/fdbhNXbOjXLM=; b=ZpL5DLUNyBXbKrQXMQw9bfwi7NfLCZNzN5D9ldn8ruXNb2GaVLg+5q0UJJ19zVqXQi AE6c7XEDie8PG0sKxildo05U7uIOUiPxUNGQ7c8j5Ll5bHLnfUdqQvT7ah7/9taRUz/0 TxSNSRYCMDsqlZrWXMrx6BdvmYuxNKuIq1joslciT+uGvtkIBiGyvUWOME4RmeUO1mmK W6EiosQWcbr6NlLr6ZP1tIb/FSP9X3cOEmQmZQZTXnVMSxrlxf8BwGJCe+K7bTB0mbxJ BkyvsAlV0SyUjT48XYDcBqURTau7dxrdGAyNkdq35keN0K4MikUDDV3rViFTYLe0bODo gY1Q== X-Gm-Message-State: AHQUAuYHJxu3g4VqLc0SEgMdrpFtpCmu5eaV561X8HMMluitvd/2A+LN zVdfsE/OUztZhPnn4ycQlsFP0yWrjtGUSCl9hgSbSQ== X-Google-Smtp-Source: AHgI3IYJxOUMjMReNj2eMdjF73Fm0yrXnltdnrIcIQe68mXuAdt5fkYmorcOrFg0/4coQecHIKDHFv1xoBLQPZjFy2s= X-Received: by 2002:a5d:9405:: with SMTP id v5mr3049769ion.250.1548856048154; Wed, 30 Jan 2019 05:47:28 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a02:5f11:0:0:0:0:0 with HTTP; Wed, 30 Jan 2019 05:47:27 -0800 (PST) In-Reply-To: References: From: Carl Eugen Hoyos Date: Wed, 30 Jan 2019 14:47:27 +0100 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH]lavc/amrwbdec: Do not ignore NO_DATA frames 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" 2019-01-29 22:47 GMT+01:00, Carl Eugen Hoyos : > Hi! > > Attached patch fixes decoding NO_DATA amr-wb frames. Now with patch. Carl Eugen From 0a8c318c49ec358ad646ed601588154cf7d7da37 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Tue, 29 Jan 2019 22:46:37 +0100 Subject: [PATCH] lavc/amrwbdec: Do not ignore NO_DATA frames. Fixes the actual output duration of the sample in ticket #7113. --- libavcodec/amrwbdata.h | 2 +- libavcodec/amrwbdec.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libavcodec/amrwbdata.h b/libavcodec/amrwbdata.h index 8a8cbfd..95c0aaa 100644 --- a/libavcodec/amrwbdata.h +++ b/libavcodec/amrwbdata.h @@ -1884,7 +1884,7 @@ static const float lpf_7_coef[31] = { // low pass, 7kHz cutoff /** Core frame sizes in each mode */ static const uint16_t cf_sizes_wb[] = { 132, 177, 253, 285, 317, 365, 397, 461, 477, - 40 /// SID/comfort noise frame + 40, 0, 0, 0, 0, 0, 0 }; #endif /* AVCODEC_AMRWBDATA_H */ diff --git a/libavcodec/amrwbdec.c b/libavcodec/amrwbdec.c index 47fe7eb..b488a5d 100644 --- a/libavcodec/amrwbdec.c +++ b/libavcodec/amrwbdec.c @@ -1119,12 +1119,19 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data, buf_out = (float *)frame->data[0]; header_size = decode_mime_header(ctx, buf); + expected_fr_size = ((cf_sizes_wb[ctx->fr_cur_mode] + 7) >> 3) + 1; + + if (ctx->fr_cur_mode == NO_DATA) { + for (i = 0; i < frame->nb_samples; i++) + buf_out[i] = 0.f; + *got_frame_ptr = 1; + return expected_fr_size; + } if (ctx->fr_cur_mode > MODE_SID) { av_log(avctx, AV_LOG_ERROR, "Invalid mode %d\n", ctx->fr_cur_mode); return AVERROR_INVALIDDATA; } - expected_fr_size = ((cf_sizes_wb[ctx->fr_cur_mode] + 7) >> 3) + 1; if (buf_size < expected_fr_size) { av_log(avctx, AV_LOG_ERROR, -- 1.7.10.4