From patchwork Sun Apr 30 05:50:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Muhammad Faiz X-Patchwork-Id: 3514 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.3.129 with SMTP id 123csp927170vsd; Sat, 29 Apr 2017 23:16:22 -0700 (PDT) X-Received: by 10.223.135.50 with SMTP id a47mr12518252wra.138.1493532982890; Sat, 29 Apr 2017 23:16:22 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 50si4710206wrx.3.2017.04.29.23.16.22; Sat, 29 Apr 2017 23:16:22 -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; 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 BF560689211; Sun, 30 Apr 2017 09:16:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg0-f66.google.com (mail-pg0-f66.google.com [74.125.83.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6E50F6883CE for ; Sun, 30 Apr 2017 09:16:08 +0300 (EEST) Received: by mail-pg0-f66.google.com with SMTP id v20so9156163pgn.0 for ; Sat, 29 Apr 2017 23:16:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=Ppjiz0gq6P3hphR4h/aJ9TKntG6Grorv+q1KfqzSiRM=; b=TfNtXtHxS4sQCxlMeslZfNzPnAv7SgwkggEnfjMoIDgMOSBbrl0D+Nq/y9DYSnSlKh DBvY03WjgqMPA6dWCyb/F+sx9ZhKQRlwrzZFG1YBA0CGie1rBbEiRJ5JynJUOtowYpqg cqJHvZKhSsmyeEb02TfFgNj92AUnP4RwoRb4LI718DPEPUAGemnvyAWZNwly6W/c6XrL dwue/atFf95UbIU4Llj6THqNFSlZJl4+2QP6PsExFwFRGvaqHKh6MLcgOl3bfoOxLoE7 zNG3f0wJcukHMJ5Dz1uiF27s+CzQkPdTJEooz+mqN/a/4bGwFLlGxqCYujadnjxh5JpD Voqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Ppjiz0gq6P3hphR4h/aJ9TKntG6Grorv+q1KfqzSiRM=; b=OoYKdLFqsiAeodHJsUWVVqj13K6UEoA6Cjyqg1MOe3AGtKbeeJGLIa92MjZwdpmLNx w33Uor3GjVeNqjrINJHsksAT3tgFO6xTw5ge+oZyuHSzGqzl7nChni/KN6t7gdA7FtT0 1JOA07eZNgY2rTV5gu5GUv951BI/LjlrbHGgFUrWW2zh1oimYsLDVPU4nT0KqdiMYCpD EExH2L5+D1rLV0uhI6HAnmORxmiGeYLLe1U4KCWcB19T0g8XDydvoKFebYqB9KjrFSPC oN9VdrqjnGqMcZuE2pxrzwehhlwTWWVxc+K4pN6uJt3PY2OtWcGc7TZTae4OSm48/Nxb IdtQ== X-Gm-Message-State: AN3rC/7LVxYOooOtDCMqLnWkGJmoWaOXG3Re0lRwBsunihnDwvQVRs5A IHeV4eKJ7Gp0JA== X-Received: by 10.84.224.70 with SMTP id a6mr659270plt.57.1493531433323; Sat, 29 Apr 2017 22:50:33 -0700 (PDT) Received: from localhost.localdomain ([114.121.235.94]) by smtp.gmail.com with ESMTPSA id d76sm17354193pfj.68.2017.04.29.22.50.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 29 Apr 2017 22:50:32 -0700 (PDT) From: Muhammad Faiz To: ffmpeg-devel@ffmpeg.org Date: Sun, 30 Apr 2017 12:50:12 +0700 Message-Id: <20170430055012.22743-1-mfcc64@gmail.com> X-Mailer: git-send-email 2.9.3 Subject: [FFmpeg-devel] [PATCH] avfilter/decode: do not treat discarded frames as eof when draining 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 Cc: Muhammad Faiz MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Fix fate failures: make fate-mov THREADS=32 Signed-off-by: Muhammad Faiz --- libavcodec/decode.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index edfae55..6ec423b 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -557,9 +557,6 @@ FF_ENABLE_DEPRECATION_WARNINGS avci->showed_multi_packet_warning = 1; } - if (!got_frame) - av_frame_unref(frame); - if (ret >= 0 && avctx->codec->type == AVMEDIA_TYPE_VIDEO && !(avctx->flags & AV_CODEC_FLAG_TRUNCATED)) ret = pkt->size; @@ -568,8 +565,9 @@ FF_ENABLE_DEPRECATION_WARNINGS avctx->time_base = av_inv_q(av_mul_q(avctx->framerate, (AVRational){avctx->ticks_per_frame, 1})); #endif - /* do not stop draining when got_frame != 0 or ret < 0 */ - if (avctx->internal->draining && !got_frame) { + /* do not stop draining when frame->buf[0] != NULL or ret < 0 */ + /* at this point, got_frame == 0 when discarding frame */ + if (avctx->internal->draining && !frame->buf[0]) { if (ret < 0) { /* prevent infinite loop if a decoder wrongly always return error on draining */ /* reasonable nb_errors_max = maximum b frames + thread count */ @@ -603,7 +601,9 @@ FF_ENABLE_DEPRECATION_WARNINGS avci->last_pkt_props->dts = AV_NOPTS_VALUE; } - if (got_frame) + if (!got_frame) + av_frame_unref(frame); + else av_assert0(frame->buf[0]); return ret < 0 ? ret : 0;