From patchwork Thu Mar 15 10:01:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gyan X-Patchwork-Id: 7999 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp1113300jad; Thu, 15 Mar 2018 03:07:34 -0700 (PDT) X-Google-Smtp-Source: AG47ELuJXQiJk5A2Ovli4WcTCsNAS4f08GYL0/aBoekRuVapd6IJvh9Y/9hPATf9s7gT5GrgZF00 X-Received: by 10.223.143.7 with SMTP id p7mr6315369wrb.207.1521108453932; Thu, 15 Mar 2018 03:07:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521108453; cv=none; d=google.com; s=arc-20160816; b=ZjzGxRQsjwYEdzoQebqykYJbjBg0gpt1B+Eh4WPZoPgUvOZcoNqfxjX+EYlxUo8498 tcYF38UMi+vwM5yCjIJdnkvVEKMFFDso7AqVYech3kWqZiyxfBVn6lG94d1e8vnSocr3 dIDZ270U6ldJLTeunmVoc6VEfLJ0UYSJpN0CflJLl0oYU88myaqIfGRkSzOlhvTcedlI KjNdtsMYeZBAb1A2/qSAPTSaTxgnn7XksxQvugpQf5tI/4g3PiFh9LSzpmCQKHPu5dQ3 1pzfiAztICwECc318lifCDzzQ8hPb7hwNXLUPzX3eBRuDjdmF/69Hn1O4QQ738XwCKMh UWXw== 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 :content-language:mime-version:user-agent:date:message-id:from:to :dkim-signature:delivered-to:arc-authentication-results; bh=g9TaHBPJkgMn9TTXlpZXly0DBd3sS6JDag2R6cH0s4Y=; b=UFlMViAWdwWdJZENNzaDW+JCdm1zeEtqCl51P2ZE7c8FTtbHc9KAHQl9pOW8NcYlqV kJxYN5Hn2hinssl4Z1ugtuXmwr/F1O2o+PeFdiFVngGlXP3MGtXkkUUKnq7RHL2p0Lqh rQY8WqrNmL76dzBSOIM9KvPy+8w1r2tz256MZmpMmbkIz08PaVowuGsVtew00a8NeXtu PwmlgZLzC7v/hhDipEc8dJzlUokUY28pgclDAGuW+I9+C50ajB5NpG8l+uom7oS1U4so c7y0+fXv1LcjRfsWw2exXWkzIwhlI2jfxjf8eykqKTRs8y2nwA6t0cct8yFjDO1bf8nN MJLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=HFgUduSl; 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 o204si2273657wme.129.2018.03.15.03.07.33; Thu, 15 Mar 2018 03:07:33 -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=HFgUduSl; 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 E257A689CAC; Thu, 15 Mar 2018 12:07:19 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it0-f49.google.com (mail-it0-f49.google.com [209.85.214.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3003C689A7B for ; Thu, 15 Mar 2018 12:07:13 +0200 (EET) Received: by mail-it0-f49.google.com with SMTP id g7-v6so2554214itf.1 for ; Thu, 15 Mar 2018 03:07:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:message-id:date:user-agent:mime-version :content-language; bh=qsnWws2+CM6nvcFEhv7XiR8XdhEZ/lbyE8o6iGi6xpQ=; b=HFgUduSlr0JcTB0Jb49AEOWVlRZI6cW+ybIlUcrjjZ5m96jCXMHnT5sXNHJcCpP8ja W82sOCaOtrczNNh5Myqws9cZtT5bVK/8jwH0PycbIZnhg9doLg+CTXJgAPWzdELW2hPe R0jEQm40oNw5f3tK/xcUp5Ao3E1p05uup60jZ4rwekqKLfNct1eP/IbxOpVykPqrbxAA /9uf85k//QF46GTCExGlBZEc/7yN5+Bn+7jDzuPGBkWbe7xHO7n7F8PARnHFJPc2Y0J/ ZPG43pINCr6hTcv+pDSih6AXC0Us9KCQY5J+g6n4HE6gKRvD+SkhcT0bWsnFFldIAxPl 0wrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-language; bh=qsnWws2+CM6nvcFEhv7XiR8XdhEZ/lbyE8o6iGi6xpQ=; b=K0YLPB1R9obAsmfn0ISStTXoMIJ8ISSnpO7C2pDPDkJZ2CeXmqfcbhGlejFDrQNo9M quc6U4IJFcAU6ho/WtSqcnuO9kE2HnDNUmtWrsRJLCZvb3yaTF+Jv5z07oFmIvIB8lcx +un0xohbqAFsdBzDXlcvrbiPBmNa+XY5lTiKbezLiYNgISYIxamjeMK9oPFm8fG2KM+u rdvl0AI1DbnkC8Awe0yqgPC9syzfPHd/HxkYeCREgGIhccykcpef/erRKBMKzBMj3CIt ee4e7c36TkhErO4RgOAzgVLcuR9z3Zt5rQGB8MBRMvKOwxA6xoQpZkz2++R0yfrItn7z P5oA== X-Gm-Message-State: AElRT7FWy2K4sYmiAYex5mlrGL6ymDLN+BXJtA46PwS4xh7xt7cTT8v5 XubM8JvQ5t+TMsbuX4aWz688eLZN X-Received: by 2002:a24:6b93:: with SMTP id v141-v6mr5374252itc.38.1521108102601; Thu, 15 Mar 2018 03:01:42 -0700 (PDT) Received: from [192.168.1.215] ([27.106.122.58]) by smtp.gmail.com with ESMTPSA id 79-v6sm1185362itm.11.2018.03.15.03.01.40 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 15 Mar 2018 03:01:41 -0700 (PDT) To: ffmpeg-devel@ffmpeg.org From: Gyan Doshi Message-ID: <31c527c8-a202-663a-744f-53e7f36e1046@gmail.com> Date: Thu, 15 Mar 2018 15:31:38 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 Content-Language: en-US Subject: [FFmpeg-devel] [PATCH] ffmpeg.c - drain all decoded frames during stream_loop flush 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" Fixes a bug with flushing decoders during stream_loop. Note that the issue is also averted if we skip flushing altogether. From 2d3f9b06092d1a0ac09d9b2d1b86fbf6692282e4 Mon Sep 17 00:00:00 2001 From: Gyan Doshi Date: Thu, 15 Mar 2018 15:01:53 +0530 Subject: [PATCH] ffmpeg.c - drain all decoded frames during stream_loop flush When a decoded stream is being looped, after each post-EOF rewind, decoders are flushed in seek_to_start(). This only drains 1 frame, and thus the output has a few frames missing at the tail of each iteration except the last. With patch, when process_input_packet is called with no_eof=1, decoding is looped till EOF is returned. Fixes #7081 --- fftools/ffmpeg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index ee7258fcd1..503af6b483 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -2694,7 +2694,7 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo // Decode only 1 frame per call on EOF to appease these FATE tests. // The ideal solution would be to rewrite decoding to use the new // decoding API in a better way. - if (!pkt) + if (!pkt && !no_eof) break; repeating = 1;