From patchwork Mon Jul 3 18:57:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Reimar_D=C3=B6ffinger?= X-Patchwork-Id: 4206 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp129009vsb; Mon, 3 Jul 2017 11:57:32 -0700 (PDT) X-Received: by 10.223.164.218 with SMTP id h26mr37557211wrb.100.1499108252600; Mon, 03 Jul 2017 11:57:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1499108252; cv=none; d=google.com; s=arc-20160816; b=dgbyhgnMz6/1uHcFzKfjxGgNKF9qDze5aYxg42vCu5GpFaoo1IzSLjVBoVspHER8Ch q548C6A6ixrirA3gl2+J57CcjS59BBEz3O1xlChi++2dn3fvTyR0xiqA4dMPQDKzFHaG /DaLXX6WEWODnD2nd1a02SzqcyKGoquE0prccv1MaRBXseL045eV3LYxc2ujQIXKc9hT aR0PaMBsKKavHYTfwAPXH3OTxr9gGtlUua988gomK2WeRqzT2w3ADR4KKdR4yEhJLwMF vxOm5sNmVegshIFh6YgJZ8jdyZqOxjiHyD/Qiw+pYGl7aBz2P1Z3mE+5K4aVDG2BbZHu f8aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:delivered-to :arc-authentication-results; bh=ik6+/3YDbiyAig18TU7MuubmOVNxYyPAaE1epj0/48s=; b=tGD+HhVkOiF/iLux3s8BeMWRnHiePewzIGis7so5W/F6WDJr2JAtjrD37T45sYMuTa g1IFOGu71LRuaLu1iTRGa1qDNr4WybF0yv8CIbZwLzSHLtwKtFfBKGZ8SVEQuKCWNTcy qC0rqYdbY7iqLJpknOgQE9g8yqLpyHWf0UWGYwjPPtZHJfEbjHt9bJi3ZMunbua2OxzX wyBWE4Mtoc2Y+bjjNHA1g3JAjJDtKKNJRBIFIqQI/KzxQrnZlsfWr8YT09z1b+fXtxy0 AA+JzBZUc/8kD/QFibiHsouVYpjiNfwitey/ua1ymeslHWyAiH8AtbP0BA2klGQBYm5w D8iw== ARC-Authentication-Results: i=1; mx.google.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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h130si11367897wmh.195.2017.07.03.11.57.32; Mon, 03 Jul 2017 11:57:32 -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; 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 4BD47688294; Mon, 3 Jul 2017 21:57:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EC47B68065F for ; Mon, 3 Jul 2017 21:57:20 +0300 (EEST) Received: from localhost ([81.170.136.231]) by mail.gmx.com (mrgmx001 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MMCFR-1dMsGq3fu1-007z0k for ; Mon, 03 Jul 2017 20:57:21 +0200 From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= To: ffmpeg-devel@ffmpeg.org Date: Mon, 3 Jul 2017 20:57:21 +0200 Message-Id: <20170703185721.9520-1-Reimar.Doeffinger@gmx.de> X-Mailer: git-send-email 2.13.2 X-Provags-ID: V03:K0:y0XRV2gHRpKzUXQboqICQAz80Ua7RmhW9w5SHYjgVnAThutGG3y REzUaIX+xWJ2sQkoy7PpKMGAd9a2mfahZvMgokhh5oSewlbYhzJzqA2dEfJFGRn4QCitJ3q mbtvcrqsNwaKTLxoKOrxiCOhrqKUc+a3eY4i8Zd+Vfss1HKRNeTMIJgqRADl681ag7Ka+Du KnzY89fBZ858gBvUnUSwg== X-UI-Out-Filterresults: notjunk:1; V01:K0:lu0WDpzOr0k=:ogi+FdlCmW42pXJCJtX6ws C3Lc7FDB9/fb/BiXxKnYfgW7wTpdpjBP8x2tcITkPEZLhvUuzmB5iAwkY1l9MIRvhBpP2ll/n a6Kp624iQBr327QeYqRzd58TD3+FRHcenXuZZF72Hk8LfYfG6O2s9Bm/yK86uAc1IfLywaI9e dSh2Mv073XQr3dBJWAIB/7NwIrikUEDfOUQ8jxit1oOXwnfsmTi4NTmgWwEqAn679utYLiAzf REFMf6zcYURIywZi2/m4ElZwtmx4a4tuElhLYgMn/vEjjsRz7A3hiEujamOLeSEurfAiq0koG F2Rc9NCT/X/lSPOtcxOYlczMg3D90vE1y16izK4ZjXPlyAHQ18tPPpqx9v6rLNHSrWRTq0HfA zL7TrM+cvt+T64QL/+m1ccSgkvsJa6avqCFW6aOwkhoRgTpTJgtTRUlc4ifosiKZQUj4VMxms Tq0Aet3yqtsu3OgPQpu3/H26H7wkdIlyf8MEpf9YDbVQRWrKNfexWQxonOHd6KSq48zAsmAE8 42FANC8mLC8E3s2JupytB6cq+Uev+eoUB1ZDQqZnZhhQ8Lr2Mj8Ll7H7jiaPZwzreWcRCZ7t9 oDfrllvhBYzl065oKkwBlX63y1eADXLSsNXmC4jDsZw8fX//qO8NnGmtDDNgvX/7gVgXjprGM zuR0DPhJ0SPnbYT11xr78hPxLid1LJfLgEdh2AyuAfYkkh8rhTDWZUWyJdZNzmwCjfs2qhl5f sVekM2lkXp6Zl0805fWFuvCmAkdbgJBXNy4bTFutFztrUwUPx3D5tsejz0w= Subject: [FFmpeg-devel] [PATCH] decode.c: Handle 0-size packets in compat_decode 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The old API did that just fine, and if we provide a compatibility layer it should at least be compatible. For the test-case (feeding AVParser output directly to decoder, failing to discard 0-size packets) just discarding 0-size packets at the start works, but not sure if in some cases we might want to pass them on to e.g. allow retrieving additional pending frames. --- libavcodec/decode.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 052f93d82f..c63090f137 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -842,6 +842,7 @@ static int compat_decode(AVCodecContext *avctx, AVFrame *frame, avci->compat_decode = 1; if (avci->compat_decode_partial_size > 0 && + pkt->size && avci->compat_decode_partial_size != pkt->size) { av_log(avctx, AV_LOG_ERROR, "Got unexpected packet size after a partial decode\n"); @@ -902,7 +903,10 @@ finish: ret = FFMIN(avci->compat_decode_consumed, pkt->size); } avci->compat_decode_consumed = 0; - avci->compat_decode_partial_size = (ret >= 0) ? pkt->size - ret : 0; + // for compatibility with old API behaviour handle + // 0-size specially + if (pkt->size) + avci->compat_decode_partial_size = (ret >= 0) ? pkt->size - ret : 0; return ret; }