From patchwork Fri May 7 17:05:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ray X-Patchwork-Id: 27684 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp700103iof; Fri, 7 May 2021 10:05:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxtjQJSZXZcZoN1GuDB0LD1+Cc+ZIWE+7RxMqC3OFMLdeHsZ2fqcDGfOtQzJ0v0yBfnXUKL X-Received: by 2002:aa7:da8c:: with SMTP id q12mr12790940eds.80.1620407137447; Fri, 07 May 2021 10:05:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620407137; cv=none; d=google.com; s=arc-20160816; b=vaj7xt/ArEnPH2M0G4kk2SGwg5Pjb1A/P1tJ5+LDQ4DLMh4FquE2fbu+jXWC+qMVrv GEMqVmzisqazpI6gtRluLb48GicAzh9UqjcRDvI3AaWkjLVGEWQpeREf0bWRTA1pSWZ1 b2K8Fl/ZkyQu+sJ5kpv5/mBkGRkZbN4AOCte8lkMb/OR3MS9N2y/vrCsH1q7aPmWZiH0 Psg13NrBd6umlQ/Q3kyqkT97lzkxBNPJw+eYdDbnsuhg+aBQrFUE2ZBBmhIGepVn93BU ggbr3nJ8RN946tfewBDUFI+yIIWVx2+IwlD0VjfQrv/vEdro/OHcM91rrXauWTaTdEol RSMg== 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:references:mime-version:message-id:to:from:date :dkim-signature:delivered-to; bh=3dKi9w3nTOxDHuFC91LocO6IaAjiZcqke++gawqIRXk=; b=ibK0c7fC1qT+HA9WniMIdpuODHlmmuVS9+DWw5Qh2aw26dQc2urqPi5j2vaQ9+UPZk Y3YMfkeLOAkKTWd+uf/wnHG69shV6TH4z+ebQ1g69vh/IT2FPIsiDKNhvz26AxU7/XrR 5kEPWUyrTKE9MqZKp3z5qC6qrCiIOTRclpg/MagHaYVXDJkJ2LF45IJoriveaEZ/4POD L1qxlVeKgSdH6B0Y1V+57azPiwlD7jax3IV+nRquKhamyrghJZVnTSgyIMRdtLVgl31b Zs4AW43XUIkiPfJX0szF07qzZMUuLiAcXtu6u+/s/yKDkNs0HaEoOVF2erINXlv3yQlA xp1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@yahoo.co.uk header.s=s2048 header.b=T3ivwqgz; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n1si5459866edv.538.2021.05.07.10.05.37; Fri, 07 May 2021 10:05:37 -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=@yahoo.co.uk header.s=s2048 header.b=T3ivwqgz; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 105B5680700; Fri, 7 May 2021 20:05:34 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from sonic304-22.consmr.mail.ir2.yahoo.com (sonic304-22.consmr.mail.ir2.yahoo.com [77.238.179.147]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 77DCA6804B9 for ; Fri, 7 May 2021 20:05:26 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1620407125; bh=4bn+5/zGTVrLhjUZg9/iYAXAURDrOhbSteFtxUjnyJI=; h=Date:From:To:Subject:References:From:Subject:Reply-To; b=T3ivwqgzl2FnY5B6ImaiUioEY5u3JmhttQcEgehs1cjpOi5sWvzA20GNJoNaSTYgYXX0Y7z09CrsgjXkUTYOYNM3Txz4nJ1r/VLv93Ku5wATO0m/UW52hVSFXdHLPLTPDgNpoZ/yv6dyT2STxZY8OXkn4J7Ai0n5a6Hbys3ZeltPITSu29zuznUjZRCAmdDdBpJFNZuS5Ubq41Dan8xzBKMJU8RHluDhVt5SL4Oy7RVdCRIzcpAm+ilag1vSSYitCYk5caMnyp66BUeud2C3veiwKfnd+fJ2p+nEaw2MdWBq2dNiLkZgP9OCDtvmNj3806LGwCLg3H/MRShWinrjdA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1620407125; bh=Ue1lnFdT4gUII5V6+YfikdoMbgGcTFqnT9syRO/z13H=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=FiI9lO7awRQ9G7Sj4SANUNQL5gpS6VnS1e9K1peZOyhSllm0etySs/VczpU20fWAEOZgh/L7xvLh/NFMoWmR4eBnJcqPFhOXt4HH45FMGbjuudYYBAmfLPlcExjBBuaVkzQvsDKGHaZqwxaPrAbNe+G/sr3+JrnEjMK8IJtjdcBqONQYQaisKNadWelODNU0HT+I4I67GWmVKriN8CaAI0t4R8jkbhyBwqBWN0rgn5+DtCOA7/xMZbs4xoGV2Kf9eKHDfmaLoV9ODDw3U2ieO+xmW74eq3nS/Lo0ABffmf+SwpKtNVZv7XjazWoSAf1EvyCYdPahtnyl7wYRtkr81Q== X-YMail-OSG: 7y_juTcVM1nxrAAp49Btr3mdoI5pYdcvja3ZkgUxB9gYTQVClIvoXDv4sH34IXS af62dpitJYKhkoUqSbZpwX0AX8b7CDbDne7HJ4B5j01moAAhkjWb8Lvw36RnjK_t2wzNlb3t..PP uxhaRFF3t0az48A_zKyHVnDr3DpwGwcK0LcuusaACIvOFobhlKF5blwUBcP7lrmkG63SDucVUc4. 6Hjjk7NtJPW_WOydN4Oj66l0H8pLoCyLoUC8QHOfLTeZgjnUHe2qbPxM2lwTtAFNOfaFnBrC_fxT JGOniCnItvihdUlMnjlOvtdl9pN2aJtonMnuHI6ehKmmZ9IMZwbo.FWK8CBqposnAe8JNnMrlkOC P51_VGYRhdfggsuc4f.kkCZGD1xN4iHmB2fRAtxJEhESxuIzBViPmbeCQRd0Ck_GQjybYBLUeDpq HJNfJNsdIS2t9j3XvKe7lgKq0TcXyuE__7QAszUmuI4Szo6H4UAKjKrnZjUgHiFPvp9EJEoxY_5F sqK9Vodmbkvzcfoj2zYzHioryF0zq7nfgk2dtZdRuNbJXD97z7fFhupc2u5P99EEm7seJUyiZcOf MCc__7qrA6_oaTUvTnfCLhzuCLFCjh9n4uzx2Blum1VknLBTMyBQ5K65xMSGscIYh5n4QqLhyyPp _H5Hffwdhg6SBhJcoDUf0tDFfS8RPEj3tY4HVZYBwNgJt_S4E31VxKTrb4SE9P7KPubRdVM4.bQe qW3vfYnqYjseRcccMwG.YGdY1fXt1PP59Dq4jXCEdQNU.TXz40TAIMOqC_5I1Thim6K4xfyQfYpT MU4LOYl7Dd1yVjVlzQ5EV6Lbj9a0Y0tJqIYNIIVPRWbDDwD3Kdny6FBqMYQmh8r9.qXdM31QiEAv .VxDKfZnAKui2IJF.MFVvftjgdkqMW9_TLzHVzSMB.rzTupV9.P8jLX7i_M7Ci3LBFQUdcbyoMO5 ESNZ7_nbkVTF1ix1CVpzv_Yk1wEPKJjd8.Vysi11hs9o3MRi5n3OvY6Ra5MSq7eJTZ8c90N9r15h 7XIAef3sc4QCZPcWTYdGMmHbLbESNSFw91zXOH0dscT7Tqku1yWbQ509tIowrZf3iTS6GyYRYtOY iEE.qwbxtkiwXJ8bwOw71EK13Y_bUo3I73gWqe9Hf9jOigLe4W060W455hNQrf01WI9PlhjXWI.Y jhpoHlWRsSPXAWiP.z4SbdTMnukd5PKnta1CA1gY0O4UswcWQ1lmLDaaa6rgJ6hHgDDSgVV1HVlC FNUKYcHhuM0C6QHN5MHT_rIHpQr6TVCnlsuOge6uUaJeHD2wfLSMFW_Rl_.7_uvyPj9CteunKXmz _OnCz8ozZacpsYe2AJolnv.q52Mw7sAsjhXdCKiZadKwKuQYrFshVD6e2.FlTcOZu71GQsQKC0lL qbW5XtLTCN9DbpG3bbLqZ_JBMzzLoxp6ebZ5SAydYIfboWRt07tfsKFAPlimST6i1.aeCfhNLClc Isz.qi98zCpIJLwzHV6N2whLSxkR8VWXQQC1SPCIu59iS2Q7lPpuZfLJj0x6tEMtuOA5Qm4BFK_Q 47t2BSAo6RCW.DdpO8vFzUc_3VVgrn2ld6HYV6w5X.HVbJ29pKl7u_5Xv6v6vKK7merWxDdSitpq jQa8SaOYTZQmod34hkyStbAvskN78MQc8tSMpe1Cs_rhRATbDfTQHeG_HRXa3DG6AuKUziYtRnBp Xk4kxu_9RiDFUTNQpetxwdqn2JeLjivSnTVFdIlbxtkgfpbzFGFM3KtDFQcf5nysQa4Q4_pSfLTx KJ9eXrVu6TfARqx90ar7028LqfoMtzzemdy1Ej_Epz0w8eTWv54ZNZOnwLTWjl6.IBwuRT5SaDib ONnxb0deu2su7UyUY0oPd.vK4Kl3j7TLwpbEZwmZrSaF0Ocu7Ojl4L2DU35.w9m8EIdtw04SvIfr eMfJfrBuIuwosPQi01yBF6emD2U1YZMLiqtlusowJVV11yU8aKnP3Ak32AbdZndA8p_Fr4Fzf_bT 3q7BQWRodeTMHhCdPwK.DIlIOc4U4lbh3BFRdl2DsMV53DbHNGnSbKz5Rs2SXyWMLz9RnzSdGAsT 0aUuOg6yElMsgnFP5fnZV05OJHM9NdDxBMpSSYC1sSvffIbJQJY8Kx53m4RY3osYP.WBlTg7RlX9 BwIWcfttSTJ8Ssk6DpmijZCHcEQeLFiHkeAQan_wSM0rSctp_e4Ka5AUcfbqkIlSJD9npsrdnxa. bnPU0Myd21gqYZCT2XMp.6jzqwRlz8an.CAv08r4Wd44TZEwrM70ZhFmeZAC3NFtZf8n5RF94tOw Psi4UOXLeoLvTdIuX0MFqNvCMsqXVe8V6dH5h4aWA5tpKfhkT.0aTiLXj6AvOzbtDg_L3.i7_fqt l3Qi6zMVdGn_OIs8gnyr6PqDVQttih_58CXzEcneow5ZyVLCnqfkhEFm_tLAN5Khf2hwyqD0efLw MOKKRHPsIqA-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic304.consmr.mail.ir2.yahoo.com with HTTP; Fri, 7 May 2021 17:05:25 +0000 Date: Fri, 7 May 2021 17:05:13 +0000 (UTC) From: Ray To: "ffmpeg-devel@ffmpeg.org" Message-ID: <1312998147.2626463.1620407113640@mail.yahoo.com> MIME-Version: 1.0 References: <1312998147.2626463.1620407113640.ref@mail.yahoo.com> X-Mailer: WebService/1.1.18231 YMailNorrin Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0 Subject: [FFmpeg-devel] PATCH: examples/transcode_aac.c drain/flush to output X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: 5Qi7VirX94Zv Example transocde_aac.c does not drain queue and write to output when requested, resulting in "frames left in queue on closing" warning messages and samples/frames lost. $ ./transcode_aac foo.wav foo.aac [aac @ 0x1e299c0] Qavg: 55159.750 [aac @ 0x1e299c0] 1 frames left in the queue on closing An attempt to drain the Q exists (a loop calling encode_audio_frame() with a NULL frame), but inside the function it mishandles the avcodec_send_frame() return code, forcing it to cleanup upon EOF (due to the NULL frame) instead of continuing to avcodec_recieve_frame() and av_write_frame(). Tested with transcode_aac and ffmpeg on the same input following patch to confirm identifcal $ ffmpeg -i foo.wav -ab 96k -ac 2 bar.aac $ diff foo.aac bar.aac From 321a4459c406b9fcb332a64bfac43f718f262309 Mon Sep 17 00:00:00 2001 From: whatdoineed2do/Ray Date: Fri, 7 May 2021 17:23:56 +0100 Subject: [PATCH] Fixes mishandling of return code from avcodec_send_frame()  (EOF) when attempting to drain and flush all frames to output file. Signed-off-by: whatdoineed2do/Ray ---  doc/examples/transcode_aac.c | 1 -  1 file changed, 1 deletion(-) -- 2.26.3 diff --git a/doc/examples/transcode_aac.c b/doc/examples/transcode_aac.c index 711076b5a5..c9badaa561 100644 --- a/doc/examples/transcode_aac.c +++ b/doc/examples/transcode_aac.c @@ -685,7 +685,6 @@ static int encode_audio_frame(AVFrame *frame,      /* The encoder signals that it has nothing more to encode. */      if (error == AVERROR_EOF) {          error = 0; -        goto cleanup;      } else if (error < 0) {          fprintf(stderr, "Could not send packet for encoding (error '%s')\n",                  av_err2str(error));