From patchwork Thu Dec 15 17:19:23 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Koshevoy X-Patchwork-Id: 1807 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.65.86 with SMTP id o83csp867914vsa; Thu, 15 Dec 2016 09:20:05 -0800 (PST) X-Received: by 10.28.227.215 with SMTP id a206mr2612769wmh.84.1481822405054; Thu, 15 Dec 2016 09:20:05 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y6si3090452wjh.73.2016.12.15.09.20.03; Thu, 15 Dec 2016 09:20:04 -0800 (PST) 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 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 0434D689980; Thu, 15 Dec 2016 19:19:55 +0200 (EET) 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 1C4F4689980 for ; Thu, 15 Dec 2016 19:19:48 +0200 (EET) Received: by mail-pg0-f66.google.com with SMTP id p66so6776448pga.2 for ; Thu, 15 Dec 2016 09:19:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=E5V43oPqnPhsL9J6SMQ8QKgvWpAPA3ukv/uTYqjnAV8=; b=abtUCEdHXq2DHJrFKzbRRk+l5p7pvn5aQvlyjkiKZ4VN4AndOSh38QhHMoUDkmQqoT Z4zgqnii6s0m9ZrKxuZTNdGL4K6eMeVGZguHgqBRc9McboPUPeLw+3P60j+3c77cMOLw WHXUSwn1zXzlQ9aWiGwIinFlH4d4bxRtaySLJEpXlHdQRffmUyeQVurLg0nTrSu/+yg6 j0N+oBqovwDfMBoHrNpKBzDmW/Bf8gbbrq2QK7fEv+dXgqWe8EZ5aXDmdZBQtBrAvqxF KL8eJNwbFH0cFpNQvCBdrI9BQyjGumWatp6wBpc2m0gzmZwAPY+ukbQt9IQ4mI5heOMG ncWw== 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:in-reply-to :references; bh=E5V43oPqnPhsL9J6SMQ8QKgvWpAPA3ukv/uTYqjnAV8=; b=khvAGcU8FurEIqGkt8IHIdOPqCGmV9QttlRJaERXyw63vGXc2uPByTbUc5T1J5Ncpm QAzGOx28S7HIqgJleToMlwpqkopT2gb0lEAedvY4BpCLTVOeM2/VBVOmPPJRa3Hh+lAL xGYYSaX5dnq7693HnglbEKW6LXUPydbfCyYEMOfEySZY7T4ecDD8gWXVlGqvy3l8xBee e2iyaxc4DrzvzJ2EdM4fhbLPepS5o8ehXmRaDCLRlWMy1At3odYWXa3ToRs0J2Zdg3w9 KTxKyvgf+qxzhHHd+mEY3zPWshkQ0dNsGjc4wVWqN01aQQVr+nccGhk22znLLXJBd3eV hFGQ== X-Gm-Message-State: AKaTC01VEICI9r/rfJtVi/k6Bhy+PoA7LXcFz39kKsW1EUOOuQLOnhyN2JR9OkTo+oLOnQ== X-Received: by 10.84.210.40 with SMTP id z37mr4648388plh.32.1481822392540; Thu, 15 Dec 2016 09:19:52 -0800 (PST) Received: from homestead.aragog.com ([136.60.170.51]) by smtp.gmail.com with ESMTPSA id q2sm5984216pga.8.2016.12.15.09.19.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 15 Dec 2016 09:19:51 -0800 (PST) From: pkoshevoy@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Thu, 15 Dec 2016 10:19:23 -0700 Message-Id: <1481822363-22231-1-git-send-email-pkoshevoy@gmail.com> X-Mailer: git-send-email 2.6.6 In-Reply-To: <20161215175809.08f8e57e@debian> References: <20161215175809.08f8e57e@debian> Subject: [FFmpeg-devel] [PATCH] lavc: Fix ticket 6024, truncated mode decoding 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: Pavel Koshevoy MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Pavel Koshevoy The assumption that avcodec_send_packet makes regarding decoders consuming the entire packet is not true if the codec supports truncated decoding mode and the truncated flag is turned on. Steps to reproduce: ./ffmpeg_g -flags truncated \ -i "http://samples.ffmpeg.org/MPEG2/test-ebu-422.40000.pakets.ts" \ -c:v ffv1 -c:a copy -y /tmp/truncated.nut --- libavcodec/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 44ecc09..be50459 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -2788,7 +2788,7 @@ static int do_decode(AVCodecContext *avctx, AVPacket *pkt) if (avctx->codec_type == AVMEDIA_TYPE_VIDEO) { ret = avcodec_decode_video2(avctx, avctx->internal->buffer_frame, &got_frame, pkt); - if (ret >= 0) + if (ret >= 0 && !(avctx->flags & AV_CODEC_FLAG_TRUNCATED)) ret = pkt->size; } else if (avctx->codec_type == AVMEDIA_TYPE_AUDIO) { ret = avcodec_decode_audio4(avctx, avctx->internal->buffer_frame,