From patchwork Tue Apr 17 15:47:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vittorio Giovara X-Patchwork-Id: 8478 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.85 with SMTP id c82csp2103794jad; Tue, 17 Apr 2018 08:55:13 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/DOmcEHjJLM7vJ1le20ADBuALTdFg2l+UkVmlSnkCJtqmTvHqR36rkzQVDhRTxKhUq9SBb X-Received: by 10.28.177.197 with SMTP id a188mr1325948wmf.121.1523980513734; Tue, 17 Apr 2018 08:55:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523980513; cv=none; d=google.com; s=arc-20160816; b=g7INo5SIt/Zu44AJo9CKnJY4PFy5ZVY/sQ3QzZovcZMY/37UhIuRBG4fR/1pBUnMcf uhkW/xUX+yKBCPCb3lpoLmE+bWQQfB/iALc7RfbW+KMNDVgQhFJq+4G0+U15KlntW37k SZtLf7Uvyuma8yWzgtNwk+k2OLL+vhzGh/Xj3ASyk/N4vQjUUpGVxJyx6cgKQJQci8hE wKtyh4/Sl+dJaqwSAJVsNi5p+OnEg2JTPSAgxTYUYG7S3cte6pVyo7WczLc2vwWePAyu J8CnpDmeZ1N9y6ir64QPBXLDVpAeStNqvSjU1L5SSVXJY08Vng/Tb19Tf9RmkNFSy6Cd A16g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:to:message-id:date:from:mime-version :dkim-signature:delivered-to:arc-authentication-results; bh=U4LAWmosoFp0Y86FNB9n2eFM1qQ5IWbrnKI6PktAdYQ=; b=wjZ6/PCwCmgKa+ktRtDM3JnsbdEGnGeykswHvtim63+tRsDcoUSx9ybtlIgWppeZTd M6Gu3ErcwzmCUC3BOJEcWONZ96Zs4Dz+wZWQqDYAFlZZpuSgVULUxp4m3aF/juuP0vNO 7Wb4ly8+rHtmXzUL025mndPHpQ3v3NFlfSSNhqp2kDC00dgv6JjplqIGdD/IDLbvrUVN yFmQKW/FfM6cjK4gi84hQjkPz84NoRDahmanNfK22VRM7sjrsrn2Y9WhzpT90IwR1Vkl +X6bGdDUqC/E/24SFhTrdW0H8cc78OS3OJQL751JpavNltQnClNaLBHrMor1fd149Cuf pp2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=ghYmTLjl; 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=QUARANTINE 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 d3si513349wri.23.2018.04.17.08.55.12; Tue, 17 Apr 2018 08:55:13 -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=ghYmTLjl; 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=QUARANTINE 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 6A4BE689F17; Tue, 17 Apr 2018 18:54:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it0-f67.google.com (mail-it0-f67.google.com [209.85.214.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4A963689D2F for ; Tue, 17 Apr 2018 18:54:37 +0300 (EEST) Received: by mail-it0-f67.google.com with SMTP id q85-v6so16858531itc.0 for ; Tue, 17 Apr 2018 08:55:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=ouEZwTBtSsCmGssz9KJRkCPbB+L3NAsyzYoZy6OnpDE=; b=ghYmTLjlfJpb/t6zGZc9fuQuLHsEZnWgn68Ika2ADYxUa8Ah7Psda4N7M55ADB/Nrp 5l3ZP3GzE2OI14alS/aCeTLt3+62ZaqXrdpipXUk6IQdSxSVoRckWjC/Trc6HO9OzhAR veMWHPVGQiZlRRNPbDnGG0ViFAtXBJyljJFWIJQnKs4KtLDBVm+Jno+CFqzkkuaIKGGX o/nm2Awn4QBW2AZ2rZS4hNj2AfBJ+rSY6/Mb7u8MJ21ff+pAtG0/aXfZ2dqb/2jt4wCj tAwdQ5t6f7HNoYEZ8Fnn+qKjuOYwY6YbbXBuLXS8Wf4U5Upfuvu4wkgWqFoY9YKZpBHe 1kbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=ouEZwTBtSsCmGssz9KJRkCPbB+L3NAsyzYoZy6OnpDE=; b=II7D9Uh8qnLdfpUymQk9NdCIcEUkxl+VYVaU9Y9T1ZE3BE/zwHX5+37D6R4USrDXE+ sCRXcfm13WjuAcRm0FeEV+tolB3tsBeXriWM801SucF3weu0P6yijEYfP6S7UIf8aAje DdZXTQ76vUp+JVG4d0grdr2yl1jWf+RGRwH8YQUs+bCB0qONE60Umk3gKR9rrmGvTMvy gahB0kNgel5MXAotBjFrsJAPhGtJ43sDr9EeO8xhsI/Sk6V/rSBAIjVyh+FIJv0z3Mmb 9KTSTc0FWkwPFxk+sI7KgYhQf/GFiGhAuFg4wTFY2oCVbzsO+4GTDkjhuPLgJ0RibF1Y Ix4A== X-Gm-Message-State: ALQs6tCV6ylecY+yXfhLWEsFCJt+uoWMSyrlylFiUp5/3cicNORU+Xnl G1uDraxaLllksH4a2esujXx53c27ad8XSgfiKKV89w== X-Received: by 2002:a24:5903:: with SMTP id p3-v6mr1634271itb.97.1523980020537; Tue, 17 Apr 2018 08:47:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.180.214 with HTTP; Tue, 17 Apr 2018 08:47:00 -0700 (PDT) From: Vittorio Giovara Date: Tue, 17 Apr 2018 11:47:00 -0400 Message-ID: To: ffmpeg-devel@ffmpeg.org X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: [FFmpeg-devel] [PATCH] aac: Rework extradata parsing code 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" - enable the parsing code - use the new buffer instead of replacing the context one - do not push/pop configuration, just discard the exiting one - propagate errors correctly --- ping libavcodec/aacdec_template.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index cf97181092..0c899285dd 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -3324,20 +3324,14 @@ static int aac_decode_frame(AVCodecContext *avctx, void *data, AV_PKT_DATA_JP_DUALMONO, &jp_dualmono_size); - if (new_extradata && 0) { - av_free(avctx->extradata); - avctx->extradata = av_mallocz(new_extradata_size + - AV_INPUT_BUFFER_PADDING_SIZE); - if (!avctx->extradata) - return AVERROR(ENOMEM); - avctx->extradata_size = new_extradata_size; - memcpy(avctx->extradata, new_extradata, new_extradata_size); - push_output_configuration(ac); - if (decode_audio_specific_config(ac, ac->avctx, &ac->oc[1].m4ac, - avctx->extradata, - avctx->extradata_size*8LL, 1) < 0) { - pop_output_configuration(ac); - return AVERROR_INVALIDDATA; + if (new_extradata) { + /* discard previous configuration */ + ac->oc[1].status = OC_NONE; + err = decode_audio_specific_config(ac, ac->avctx, &ac->oc[1].m4ac, + new_extradata, + new_extradata_size * 8LL, 1); + if (err < 0) { + return err; } }