From patchwork Tue Nov 14 00:15:33 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sasi Inguva X-Patchwork-Id: 6036 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.94 with SMTP id m30csp2704857jah; Mon, 13 Nov 2017 16:16:24 -0800 (PST) X-Google-Smtp-Source: AGs4zMb2TUJhbxB9L20Vo7OVKt/7uw6xtDCyfMIyca4Sm7Iji4DkMv1YIbD559a7LS6SVWMcNyzK X-Received: by 10.223.187.3 with SMTP id r3mr8051051wrg.34.1510618584349; Mon, 13 Nov 2017 16:16:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510618584; cv=none; d=google.com; s=arc-20160816; b=EJbTdIKkGmbhJj+jRDb/fr7uq2KQqDJWMg+lTZg31kEcX9jfyxUgyOYRgTPw7c2dgi 91BTrdLRbrJCyqQJ0jzVRDFUQ0hHjQecoplrXwF7O45CzrFUjBEmtVLP0POjyG/y/nRU WtSl2iDpUSXd/izk0KTzaB6JpBkw9kWBkPVvNdddEs5/HIFtubv12hukY1Nb4u62SXvV mQCu6c52kN2CY+nu3Az5tRIH4PKSL31Yj/fKSNIFgUah5CIru7Y/Bcq9wHZaXJ7eTLI/ 6mCwJ/xgkJABr8N9d3rj3Fa4CrIa4AxT0DCetjHf8nwaxNq5gUkAFZsUjTP4d3jpN1mS WtLA== 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:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=EXtY4LYJK4VqQSv3cA+i9rfbh39PmzrZS8pQCFOAPrM=; b=L7jLmMrCbZYfckE8KDmm2YWs7bJv3quCA6V/8Xi7pIXZI3msIPhaxbI7vwMY29PYAD /kkiipJCxbRX5+Hso5aWMgAZPyHoc6GzCr1hzPMM1vDqaF6oBGsBZ8/aru0QuFQiK5Tx JfYFYq+slpg8Z0k2curzR2V03uPa/UFB1kRFiJ8hh2xtAfbqKZ6CyRQk07qEoex0luLw CC9b2mFXlso1dh9Z/auY0/4xaqHfVCrM68cJOc50HOgds3ZLv/M0cFKfqbNCyFdBXqyB cw7F42z1U21HJFE1uKZkewOF4kk8lqXCzB8xbwt9Wh+iw8KSy9CqDTgZ9FYbxi52biWu eHjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20161025 header.b=YY4DMyQa; 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 y29si15772045wry.87.2017.11.13.16.16.23; Mon, 13 Nov 2017 16:16:24 -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=@google.com header.s=20161025 header.b=YY4DMyQa; 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 266B4689B7B; Tue, 14 Nov 2017 02:16:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it0-f67.google.com (mail-it0-f67.google.com [209.85.214.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6E06B68972F for ; Tue, 14 Nov 2017 02:16:00 +0200 (EET) Received: by mail-it0-f67.google.com with SMTP id n134so3042115itg.3 for ; Mon, 13 Nov 2017 16:16:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=ZAk8tALu1bEexeMEMv0NOhuY1jfixnxht0a/BNUyijk=; b=YY4DMyQaO/TaRRvzkauMHhRkYwMiySh5oFUJH0iMFseOIFJ2vCw/EdAs9dhoSCGXgz Hbhe94rUdYLBQSxf5zml4ndZMhY2Y0wNF+XL6JGkskGWAifJ4rqgfTXbrCvufVe1SgrO 8yUVvpjUZJjymXt6zqydV8uxobY34jcWaBazIhPQKBSId0vQBj9JkURecdg/TpKBQRUT A2xnDAUN04hBwXwufECsxzbqHLIvrHLtaYbZqCw/MrH2koBb7P4BrVBIfJniKw6OkAQ1 XqfF8vihi5A5bp6GqsehAYMo0Trc0WRE1wCnorbwH8Xckmk/fa5eUnGM/HnQlOwr3OQY sttA== 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=ZAk8tALu1bEexeMEMv0NOhuY1jfixnxht0a/BNUyijk=; b=BoHZgD/480qr/EylUTGuomqYVZCgft0Z9wnQzS85r8Vr2b6t6RqKJajpPEXZP9KD9k LpygaC3beMOVrPPzJ9jRZRFHF/iKpMTC3eVQds03x6JfpHD42tyfsOT62DcO+utu0eu1 YuZVoyuKUh8FDr9+W/0haQD8Z6OUOptjhOeERdQHrRLXgKnwKIhSv/ucBwVUFzjR/GGH GI9mgO4IQoarkorlst4tlaH0gWObhfHrhc9wCSBYqcUEHrrfrXr3FbZ6RaVXMdPzFWrE PGbYOidlLC3Wq4tIAbI8yvO9XyAwqUaUIdpoTYFg5FOnzsH7omraNGfRS8XIZILVxDuU /8GQ== X-Gm-Message-State: AJaThX67WQ5C2TDEFWqMZiDTbePohnDfklSRISbUNCRPyeP0jRRlYHm/ xiCbXwfLB0blKEWvQuPX5f9LJVDqJSU= X-Received: by 10.36.67.149 with SMTP id s143mr11800482itb.64.1510618573588; Mon, 13 Nov 2017 16:16:13 -0800 (PST) Received: from isasi.mtv.corp.google.com ([172.27.82.28]) by smtp.gmail.com with ESMTPSA id b66sm4795730itb.17.2017.11.13.16.16.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 13 Nov 2017 16:16:13 -0800 (PST) From: Sasi Inguva To: ffmpeg-devel@ffmpeg.org Date: Mon, 13 Nov 2017 16:15:33 -0800 Message-Id: <20171114001533.20083-1-isasi@google.com> X-Mailer: git-send-email 2.15.0.448.gf294e3d99a-goog Subject: [FFmpeg-devel] [PATCH] lavf/mov.c: Don't correct edit list start to zero, when we can't find a frame before edit list start. After c2a8f0fcbe57ea9ccaa864130f078af10516c3c1 this can happen on normal edit lists starting on a B-frame. 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: Sasi Inguva MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Sasi Inguva --- libavformat/mov.c | 4 +--- tests/fate/mov.mak | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index fd170baa57..79023ef369 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -3380,13 +3380,11 @@ static void mov_fix_index(MOVContext *mov, AVStream *st) if (find_prev_closest_index(st, e_old, nb_old, ctts_data_old, ctts_count_old, search_timestamp, AVSEEK_FLAG_ANY, &index, &ctts_index_old, &ctts_sample_old) < 0) { av_log(mov->fc, AV_LOG_WARNING, - "st: %d edit list %"PRId64" Cannot find an index entry before timestamp: %"PRId64".\n" - "Rounding edit list media time to zero.\n", + "st: %d edit list %"PRId64" Cannot find an index entry before timestamp: %"PRId64".\n", st->index, edit_list_index, search_timestamp); index = 0; ctts_index_old = 0; ctts_sample_old = 0; - edit_list_media_time = 0; } } current = e_old + index; diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak index 76f66ff498..c1a3d154e0 100644 --- a/tests/fate/mov.mak +++ b/tests/fate/mov.mak @@ -11,6 +11,7 @@ FATE_MOV = fate-mov-3elist \ fate-mov-440hz-10ms \ fate-mov-ibi-elst-starts-b \ fate-mov-elst-ends-betn-b-and-i \ + fate-mov-bbi-elst-starts-b \ FATE_MOV_FFPROBE = fate-mov-aac-2048-priming \ fate-mov-zombie \ @@ -59,6 +60,11 @@ fate-mov-invalid-elst-entry-count: CMD = framemd5 -flags +bitexact -i $(TARGET_S # i.e. Pts Order: I-B-I fate-mov-ibi-elst-starts-b: CMD = framemd5 -flags +bitexact -i $(TARGET_SAMPLES)/mov/mov_ibi_elst_starts_b.mov +# Makes sure that we pick the right frames according to edit list when there is no keyframe with PTS < edit list start. +# For example, when video starts on a B-frame, and edit list starts on that B-frame too. +# GOP structure : B B I in presentation order. +fate-mov-bbi-elst-starts-b: CMD = framemd5 -flags +bitexact -i $(TARGET_SAMPLES)/h264/twofields_packet.mp4 + fate-mov-aac-2048-priming: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_packets -print_format compact $(TARGET_SAMPLES)/mov/aac-2048-priming.mov fate-mov-zombie: CMD = run ffprobe$(PROGSSUF)$(EXESUF) -show_streams -show_packets -show_frames -bitexact -print_format compact $(TARGET_SAMPLES)/mov/white_zombie_scrunch-part.mov