From patchwork Fri Dec 8 12:45:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodger Combs X-Patchwork-Id: 6608 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.94 with SMTP id m30csp497426jah; Fri, 8 Dec 2017 04:45:58 -0800 (PST) X-Google-Smtp-Source: AGs4zMbJu6i/AYhEojWfu+6t++M6M5XFkbV7iUru38b0EYHDSsXHxAhf+8BvWy+dZhIsa1DtPez/ X-Received: by 10.223.173.202 with SMTP id w68mr26470115wrc.144.1512737158087; Fri, 08 Dec 2017 04:45:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512737158; cv=none; d=google.com; s=arc-20160816; b=LXuouTDdYwOP5JT4S/Dm16yrPv7EpXQT5d1LxMuKIUruPnIYHfX2Mc3HJYhYxTZTNj 2co/1sSBM02/7nE3WAGC+5prRquL/PQoPdEBBprkxYSOPNSHv6WFAFpWaHKbud6EQMvV 3BfHSFWsVykweX+A66kuWgMTJfMf77CiGh1iWBNKpb2KP0470I+rkYfWXFE9upA23s3V Z/p7yvueY+MMUJA44vnbiJJ8bk9wpdNANCEiZF1W4cZ5Uq5czE2KKUBQaSsEkyXVGhm+ wiWeNCx6PIrvJHp676pRxbnmMIy1mU3IA0FZljqaaPP2zF6hiChqxnvfdSNirgL2zKEM hRFw== 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:dkim-signature :delivered-to:arc-authentication-results; bh=6lpv1u1WRP8mDGymNmNLZcSuzd/oGD6S2/V/t6j5vm4=; b=kNXhySxiBHLficIyZnmlE/dx9/wApYbNNIP+rX1NwTmSArwYCAeCTix6RnJZNAmPiL dbfTC7sVyGVG8EXT9x+J2U0nEq4yIGtARV60bKgf2mItj5AY1+sH3RGYXP/TXwhcFOgT XG8Tt4HMpg7nHYLS3lipX8RW7IHwx/HmKURxtEp79b/2H7AED4g4E/ZFTl94U/vJVYBL bzisaoYK26Aor5sfSs89e8pt7I3IjKRJGjaq5SsKfCa5sy3CejugJOAqnB0WxS91b5Y4 Am8rMy//rpUXGykURDxuDXEjHalUjFGejOn06RZV4y4v507qVUaNH3J7mGXz9NiCmaav l/oQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=G8cpuBND; 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=NONE 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 p4si1087848wmd.264.2017.12.08.04.45.57; Fri, 08 Dec 2017 04:45:58 -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 header.s=20161025 header.b=G8cpuBND; 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=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 A2B8A68A267; Fri, 8 Dec 2017 14:45:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it0-f65.google.com (mail-it0-f65.google.com [209.85.214.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9A69468A1C6 for ; Fri, 8 Dec 2017 14:45:42 +0200 (EET) Received: by mail-it0-f65.google.com with SMTP id t1so4551088ite.5 for ; Fri, 08 Dec 2017 04:45:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=o6Euzr5FJ061BgtpeaNs7Tj+8PmLLXUJufiPv4s3ot8=; b=G8cpuBNDkbVqhy3s3SHKZOKZSqihSGtSZAcRmA9ZoSxGF4jRDpSiWTARQoJyme7f4e ZToNclk8rAL9dRypNP3lkERh8pSjvvfFhTSyZXQnjlbwRMaY3OFRFyQlyGcuw02OpbT9 bWO0hzBCv5veHkcWU3EQ5HAj763JUsR34exi6auwP8Eg1l4qshXeuJ9TA47jIByXcDIs 0aOIn8DVtn4AwlG85kB01HpW61WRz/Pfp5rmwBGA3ZB6gUQkddbRIoX4SVPBO7hCdBmx fkicEqQ+Q5b1dY2aNsIQxg9+sTr6Bj0JqCjB2AA62U7So00rOaBgJbLuLRPpqlBbupBA MYGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=o6Euzr5FJ061BgtpeaNs7Tj+8PmLLXUJufiPv4s3ot8=; b=T9N0BHUOP5wVi0G2ae2QFG+JRe/60kiH7/R8wvqf9VYIqBcN85ebzRGMnDnUuL5kXJ U/g3GdD4cnzKKfUmECvvR07MijEfHTgc2FURKOJpiHB0VDyIIm7v2xqxtamuSfpqghz4 3tunwlSlW3f1ksyvD3q0p0NN/vpoTJL7gpNGog4BtVeDbBi3oZ1QTaywWuKVHmA2T7tK GxcLonZGJ+Cqeie01Ss3cxlbS6l0AQ0DKtY5N+capavrh1dhKvLP/MaSo9t2NZiqV35Q DjhtYVQKiBGYxxzFK5kNv8lGbsB/zImvYsTBQo6yVGRMaFPAttrD3rfrFSNiuemDij7J OFCw== X-Gm-Message-State: AKGB3mIkCJQHuiKaaUmHpROVYMjhLvYxTW5Ya1VWDzYlMbH+PQ2ODumW jY2vBOGb6s2C9ZhaRq9ZTIZoOYy7 X-Received: by 10.36.137.137 with SMTP id s131mr5318619itd.22.1512737147329; Fri, 08 Dec 2017 04:45:47 -0800 (PST) Received: from Rodgers-MacBook-Pro.local.net (c-73-75-100-12.hsd1.il.comcast.net. [73.75.100.12]) by smtp.gmail.com with ESMTPSA id b77sm3567962ioj.42.2017.12.08.04.45.45 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 08 Dec 2017 04:45:46 -0800 (PST) From: Rodger Combs To: ffmpeg-devel@ffmpeg.org Date: Fri, 8 Dec 2017 06:45:34 -0600 Message-Id: <20171208124536.44946-1-rodger.combs@gmail.com> X-Mailer: git-send-email 2.15.1 Subject: [FFmpeg-devel] [PATCH 1/3] lavf/matroskadec: resync if cluster parsing fails while seeking 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" --- libavformat/matroskadec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 496499b553..93a3ec4a07 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -3528,9 +3528,12 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index, SEEK_SET); matroska->current_id = 0; while ((index = av_index_search_timestamp(st, timestamp, flags)) < 0 || index == st->nb_index_entries - 1) { + int64_t pos = avio_tell(matroska->ctx->pb); matroska_clear_queue(matroska); - if (matroska_parse_cluster(matroska) < 0) - break; + if (matroska_parse_cluster(matroska) < 0) { + if (matroska_resync(matroska, pos) < 0) + break; + } } }