From patchwork Wed Feb 19 00:21:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 17843 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 D513B448ECF for ; Wed, 19 Feb 2020 02:22:06 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B413568AA24; Wed, 19 Feb 2020 02:22:06 +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 CAD8D68A71F 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: Message-Id: Date: Subject: To: From: Sender; bh=7/Teuf/9unElQNf7ir/pKZY+oW942TdQ4Wr4/QMQrVI=; b=louNAtFD98dvfyLqael8x62hC1uHrn1rGJLkvImjRhfW6wnJv1Iix5xqCcd77m+NF/KUQVdb DkAy2qKoVrVZE6aFu0auIl4R/DhoTrZTG2WrWeQDba6Ht2tlac1Pza01yUfbzvi3KmAprTBp eoFPCQelijsTrpnhQbJvrDZ1auo= 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 5e4c7fa1.7f54cf0189b0-smtp-out-n01; Wed, 19 Feb 2020 00:21:53 -0000 (UTC) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Tue, 18 Feb 2020 18:21:48 -0600 Message-Id: <20200219002150.27705-1-rcombs@rcombs.me> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] lavf: add read_flush function to AVInputFormat vtable 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/avformat.h | 6 ++++++ libavformat/utils.c | 4 ++++ libavformat/version.h | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 9b9b634ec3..1412119342 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -780,6 +780,12 @@ typedef struct AVInputFormat { * @see avdevice_capabilities_free() for more details. */ int (*free_device_capabilities)(struct AVFormatContext *s, struct AVDeviceCapabilitiesQuery *caps); + + /** + * Flush demuxer-internal buffers ahead of a discontinuity in the input byte stream. + * @see avformat_flush() for more details. + */ + void (*read_flush)(struct AVFormatContext *s); } AVInputFormat; /** * @} diff --git a/libavformat/utils.c b/libavformat/utils.c index 123d67800b..c5fbe74c54 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2611,6 +2611,10 @@ int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int avformat_flush(AVFormatContext *s) { ff_read_frame_flush(s); + + if (s->iformat->read_flush) + s->iformat->read_flush(s); + return 0; } diff --git a/libavformat/version.h b/libavformat/version.h index 94fa57614d..741f2e30c5 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -32,8 +32,8 @@ // Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium) // Also please add any ticket numbers that you believe might be affected here #define LIBAVFORMAT_VERSION_MAJOR 58 -#define LIBAVFORMAT_VERSION_MINOR 38 -#define LIBAVFORMAT_VERSION_MICRO 101 +#define LIBAVFORMAT_VERSION_MINOR 39 +#define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \ From patchwork Wed Feb 19 00:21:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 17842 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 EF188448ECF for ; Wed, 19 Feb 2020 02:22:03 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D2B2F68A927; Wed, 19 Feb 2020 02:22:03 +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 C419C680CA3 for ; Wed, 19 Feb 2020 02:21:56 +0200 (EET) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=rcombs.me; q=dns/txt; s=mx; t=1582071717; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-Id: Date: Subject: To: From: Sender; bh=MfspcCqF+NQTD8bSO+A2NHQjdiW4vNJlHd6aC0y5n+A=; b=lthtAXIHH9ePmUcbhy0mr6Q6QoDlXCkGKbUJ4EAdceAAh/ykO3XaGpBlLm1CeTdG9lxN0uu6 NKwWWFbLeY2b9pPPuV6MSZoTJiLMwzNA/uHgCELfLLWLrVjQ1T3fee9QmJNXdAik+oukuHFM ewEKsjhnF1DA6AJunDLFuQ3RAO8= 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 5e4c7fa2.7f54cf0189b0-smtp-out-n01; Wed, 19 Feb 2020 00:21:54 -0000 (UTC) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Tue, 18 Feb 2020 18:21:49 -0600 Message-Id: <20200219002150.27705-2-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 2/3] lavf/hlsdec: use public avformat_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/hls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/hls.c b/libavformat/hls.c index 1f58e745a7..8181a631b6 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -2295,7 +2295,7 @@ static int hls_read_seek(AVFormatContext *s, int stream_index, /* Reset the pos, to let the mpegts demuxer know we've seeked. */ pls->pb.pos = 0; /* Flush the packet queue of the subdemuxer. */ - ff_read_frame_flush(pls->ctx); + avformat_flush(pls->ctx); pls->seek_timestamp = seek_timestamp; pls->seek_flags = flags; 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" };