From patchwork Tue Aug 8 00:51:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 4650 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.46.211 with SMTP id u202csp3563099vsu; Mon, 7 Aug 2017 17:51:34 -0700 (PDT) X-Received: by 10.223.161.195 with SMTP id v3mr1435741wrv.125.1502153494910; Mon, 07 Aug 2017 17:51:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1502153494; cv=none; d=google.com; s=arc-20160816; b=wgp82tEeP06uX4cpuXWLh6T01n4VhMd4HbrKnJzxb+NsK+s98V/LmKu1liTBQlTbBA 7cvsBkPxDwBYwu6sO+zTpxLe+rQ255Og8nikGZGPFwuCDVXlujHwudTnC2jAtvsHSX6d rgBt2UQ2akVbdiU4lHynCqAF1EDJROfsdZpzCNe825FRR4xT4wMXDnnIiIvMWQMEw6G3 ZAbhxUGPdrw7G/iRVJiBm2qCdldT5ISZoPkABZ4XHTGz26JAdwrpUlPznquyLoxk+ppm PcetlZan0t0KtSQXRWeuW6zqNaJWgtNMVeIQkruA52fOzF2rd0J7+FulQDO5N8jBmQmA fgjA== 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=dd0OoAEAWJ9lRiCpU11tYbEYY214TFcWYIhPBw5a6Xw=; b=S5IyCmGhCc+cfBmWOmaLtNPSA8u8HqOTvpZHMmH9Ia6tKzcSkm0wNP+H3E8mhJHTMf UA8qz9qaTg1sT2rnasA/K0pq25dWXYUjpTtLCWKQ38XsrB1Pmbz17k32I537T3NljQYf KEDO4B24h3kfwhp8lxyiVnbX7AMJjSNFuwRQNEhm4RS2roMs9ZoTo7ow5AeX4aoRdWYR 9+e/0zg6SbTqBK2VwFQyxNkY96Y/+u5TdUF3b9cCP3cBmZehF1eM9gT2KOn3P1/6U+2P m/qEWe48C8AbdrGfAO9goTyCnjnr0GHKxD0jNoo9AZ6LEs41zPUi1g8V3Usur26SKIQI br5g== 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 88si67087wrp.222.2017.08.07.17.51.33; Mon, 07 Aug 2017 17:51:34 -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 35F09689A06; Tue, 8 Aug 2017 03:51:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-qmta-pe02-2.mx.upcmail.net (vie01a-qmta-pe02-2.mx.upcmail.net [62.179.121.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 75715689934 for ; Tue, 8 Aug 2017 03:51:22 +0300 (EEST) Received: from [172.31.218.36] (helo=vie01a-dmta-pe02-3.mx.upcmail.net) by vie01a-pqmta-pe02.mx.upcmail.net with esmtp (Exim 4.88) (envelope-from ) id 1desjz-00056M-IH for ffmpeg-devel@ffmpeg.org; Tue, 08 Aug 2017 02:51:23 +0200 Received: from [172.31.216.43] (helo=vie01a-pemc-psmtp-pe01) by vie01a-dmta-pe02.mx.upcmail.net with esmtp (Exim 4.88) (envelope-from ) id 1desjt-00077Z-Hy for ffmpeg-devel@ffmpeg.org; Tue, 08 Aug 2017 02:51:17 +0200 Received: from localhost ([213.47.41.20]) by vie01a-pemc-psmtp-pe01 with SMTP @ mailcloud.upcmail.net id uQr81v00X0S5wYM01Qr9V3; Tue, 08 Aug 2017 02:51:09 +0200 X-SourceIP: 213.47.41.20 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Tue, 8 Aug 2017 02:51:07 +0200 Message-Id: <20170808005107.3574-1-michael@niedermayer.cc> X-Mailer: git-send-email 2.13.0 Subject: [FFmpeg-devel] [PATCH] avformat/avidec: Move packet skip after prefix and related checks 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" This fixes loosing packets Fixes: big.avi Signed-off-by: Michael Niedermayer --- libavformat/avidec.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/libavformat/avidec.c b/libavformat/avidec.c index df52092067..9816a1dfac 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -1265,19 +1265,6 @@ start_sync: } } - if (!avi->dv_demux && - ((st->discard >= AVDISCARD_DEFAULT && size == 0) /* || - // FIXME: needs a little reordering - (st->discard >= AVDISCARD_NONKEY && - !(pkt->flags & AV_PKT_FLAG_KEY)) */ - || st->discard >= AVDISCARD_ALL)) { - if (!exit_early) { - ast->frame_offset += get_duration(ast, size); - avio_skip(pb, size); - goto start_sync; - } - } - if (d[2] == 'p' && d[3] == 'c' && size <= 4 * 256 + 4) { int k = avio_r8(pb); int last = (k + avio_r8(pb) - 1) & 0xFF; @@ -1304,6 +1291,18 @@ start_sync: ast->prefix_count = 0; } + if (!avi->dv_demux && + ((st->discard >= AVDISCARD_DEFAULT && size == 0) /* || + // FIXME: needs a little reordering + (st->discard >= AVDISCARD_NONKEY && + !(pkt->flags & AV_PKT_FLAG_KEY)) */ + || st->discard >= AVDISCARD_ALL)) { + + ast->frame_offset += get_duration(ast, size); + avio_skip(pb, size); + goto start_sync; + } + avi->stream_index = n; ast->packet_size = size + 8; ast->remaining = size;