From patchwork Wed Feb 19 00:21:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 17844 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id F1838448ECF for ; Wed, 19 Feb 2020 02:22:07 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D7C0C68AA74; Wed, 19 Feb 2020 02:22:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from so254-54.mailgun.net (so254-54.mailgun.net [198.61.254.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0A27A68A97C for ; Wed, 19 Feb 2020 02:21:59 +0200 (EET) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=rcombs.me; q=dns/txt; s=mx; t=1582071721; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-Id: Date: Subject: To: From: Sender; bh=Yor1193sPX4XRLRxHTn4Mg1w7BQZz26aEl86cpfyXK4=; b=hkuiXKFDimJOizhZ+3fWNyr4c1h0C4Rkd/sZbQ7Oq7QFq+il8pRf6SG7wDsMhzkvswKPKfuL wuzlvvddJMmK/bLTz67pi//G+ipLjvdV0O8KoSVcIFipnHy3J0XW1iqAN2XfmXcOa8P3gySY dTB++VMuHCAS8Soy0+BhI1GuJVk= X-Mailgun-Sending-Ip: 198.61.254.54 X-Mailgun-Sid: WyJiZDU1MSIsICJmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZyIsICJiMGJhIl0= Received: from MacBook-Pro.localdomain (Unknown [24.14.135.13]) by mxa.mailgun.org with ESMTP id 5e4c7fa3.7f54cf0189b0-smtp-out-n01; Wed, 19 Feb 2020 00:21:55 -0000 (UTC) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Tue, 18 Feb 2020 18:21:50 -0600 Message-Id: <20200219002150.27705-3-rcombs@rcombs.me> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200219002150.27705-1-rcombs@rcombs.me> References: <20200219002150.27705-1-rcombs@rcombs.me> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] lavf/matroskadec: add read_flush function 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavformat/matroskadec.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 4d7fdab99f..68e424992a 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -3703,6 +3703,21 @@ static int matroska_read_packet(AVFormatContext *s, AVPacket *pkt) return 0; } +static void matroska_read_flush(AVFormatContext *s) +{ + MatroskaDemuxContext *matroska = s->priv_data; + int i; + + matroska_reset_status(matroska, 0, -1); + matroska->resync_pos = -1; + matroska_clear_queue(matroska); + matroska->skip_to_keyframe = 0; + matroska->done = 0; + + for (i = 0; i < s->nb_streams; i++) + s->streams[i]->skip_to_keyframe = 0; +} + static int matroska_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags) { @@ -3758,12 +3773,7 @@ static int matroska_read_seek(AVFormatContext *s, int stream_index, err: // slightly hackish but allows proper fallback to // the generic seeking code. - matroska_reset_status(matroska, 0, -1); - matroska->resync_pos = -1; - matroska_clear_queue(matroska); - st->skip_to_keyframe = - matroska->skip_to_keyframe = 0; - matroska->done = 0; + matroska_read_flush(s); return -1; } @@ -4200,6 +4210,7 @@ AVInputFormat ff_matroska_demuxer = { .read_packet = matroska_read_packet, .read_close = matroska_read_close, .read_seek = matroska_read_seek, + .read_flush = matroska_read_flush, .mime_type = "audio/webm,audio/x-matroska,video/webm,video/x-matroska" };