From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id B34BF4D10D for <ffmpegdev@gitmailbox.com>; Wed, 16 Apr 2025 05:07:39 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D810B687CCC; Wed, 16 Apr 2025 08:07:34 +0300 (EEST) Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03olkn2044.outbound.protection.outlook.com [40.92.57.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2CEAA687BAE for <ffmpeg-devel@ffmpeg.org>; Wed, 16 Apr 2025 08:07:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jJQzEi0FPltXFkGXXKi0On+G7dl8Hq7NG3fHkySZM4sVCRmkwZRFTkkMWh74shE2cA9VMddJXmehBs/GBJQxbpiZUyICDmpXLOLbDYzUTwOQ0qG94ateIPUXwCB/Z9/TuestUDjI9k1bLgV2OE8W6BqyjpSNGs73dKfxNx4LemYQ3A+DIEvnD0wA9rhzBz3T2hB8Q8afjmTod0bkDT5dBOHe0BngxO/PMe1rVJvG9qkA4RcXI2WccUhXcfA5LNxXZu80fVuGdx3u3gZCjXl93WgCWlnAljVHtmX+EShBf4iPDC8VhCdpr0W6B6owBy6L/En1PP2fyLUqkwuWFcuW9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=opEblsSVJ3drwauCrC/m9xIExWwqQQoBNLHj8vIDSL8=; b=BW6vISiZ3v1f7orcXfeZux0eJoSpnGJA7UV8aHbhfBzRbeviu/oP5jDjzJHc7dcPvyUCXeopWqgR0zg1xbAeNY2JsMvlceeDGAsiJSuV0+DIMgUpiCX6p80DMLijxzqnXy2qqzfoBIzTlD9uarQOvkbxlmqJpKBU35NscEAcyhS8tyt90LMThwELcvhV/udrSpQ4vEOwcqKGqzo7FJZJj7mm7Kp3hlzj7L0KWT24IREAYsP0K3sr7bHr+Dun2TjLwVO4Ua7istmxtarc0+S1vEplvpVM1VNC2W4RBzSu0Z5KG7eGA0WqGYpXJrT7T5eo3z7rUzPQkgCb8XJrN/tGCw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=opEblsSVJ3drwauCrC/m9xIExWwqQQoBNLHj8vIDSL8=; b=p583OD8ys9keVG2jxUl7d6vr3WYzvKqRlfIs5dUE39H7S0tLC8YWOqAbUt4NvJg6OvNAhn2SwV1iOSV0iuZvBcisTCNToJm0fWdEdC1Ivoj5Uji0J5zsYGwEWXcOqtNnkOUOs3Wu1uJVAr/UE2LgoouSB7MMEDY27pfUzwvGZIci4r7FBa4a0VnfHXyUEss0A6TwNjRPUMoS9ssq2Vclo7vQ9ZonnwVboOZDGVmOoIUcK+QAJW9bxS3S3CKpHHl8P4tnjsiPYv+0cjU4CukrAwzNSnAaTncLtVdUbt9IPmuj8bJwJsgsoQPNjBpblrTwphcM12qQCKAD+psGKQte2g== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PR3P250MB0257.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.19; Wed, 16 Apr 2025 05:07:26 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%5]) with mapi id 15.20.8655.012; Wed, 16 Apr 2025 05:07:26 +0000 Message-ID: <GV1P250MB0737A24C4C3EDFE7588D73B48FBD2@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> Date: Wed, 16 Apr 2025 07:07:25 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20250415104439.13431-1-ffmpeg@gyani.pro> Content-Language: en-US From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> In-Reply-To: <20250415104439.13431-1-ffmpeg@gyani.pro> X-ClientProxiedBy: FR2P281CA0162.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:99::12) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <2886b970-afde-42c5-8e52-9e53043ab566@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PR3P250MB0257:EE_ X-MS-Office365-Filtering-Correlation-Id: 75c7db48-3ab9-48e6-9b71-08dd7ca4945d X-Microsoft-Antispam: BCL:0; ARA:14566002|7092599003|6090799003|15080799006|461199028|5072599009|19110799003|8060799006|56899033|440099028|3412199025|41001999003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?KzY4eG9VSEt2TTVkSGJBcHlSTUNGSEhjSWRiKzZQd3RSbWNMTml2NVRKWVhH?= =?utf-8?B?YjRiWmZRYTJqYVJrMmFCQ0p0Z3FBQlMwRjlFZ3pjeFE1RUdqQVIzZFBPUmhs?= =?utf-8?B?aE1CUUpuTEZJU0ZKQStLaWlENXBDV0FsUVlQeXRvMXJ3SFJEek1TcDFlSjYy?= =?utf-8?B?Qlg1NVRDMHgxakh2RjhQcks5V2Q0SVpoajJiY3hWbmoyNlE2Q3hIQzM1K1Fn?= =?utf-8?B?b1RHeVFLN0dncXQxUHFrM1NLQU5BTHlTWWdXeDdpU0lCVHJUOXQyOEdvUDcr?= =?utf-8?B?bjJQREJaMGlaSktKcUpLVFRSd0xrWjFBeUVlRkEwdkVPTUtsNUE4Y3FOOCt0?= =?utf-8?B?Nk1pWU9IanNEZGgxRjN4YnpvWUxuaFZBczRGM0xNczNQYk8vUjZhcEFJREdB?= =?utf-8?B?SlFHMzBvUm9kTm4vMXRQekV4YkdoTzE0YVI4aHpBcmRSMFNXaXlML09iNFFw?= =?utf-8?B?RjhGVG1NT2IzS0ZtczZOL1ZONGFYYVFkOG52OXA4Qzd1WjVNRTlrZldSRTBU?= =?utf-8?B?R21MNkMwSVlZc3h6emNkY3NPWXRvUkhXbVZLUkNCdjNVRE1xekJmZ2dmbnVs?= =?utf-8?B?aW5RNDgzalV4cnZodTdaTCs2d3JaaGV1bmJHZE1JcDZsUmVKRXhabTU4NkdT?= =?utf-8?B?b3Z5Y1JnU001TGpNbURXUXQ4NVJxdjN5OE1Hbyt6MU9HS3JSenVIUlRjT21L?= =?utf-8?B?MHJiSWlFY0cxNGI0VW9Rc29uUWFEQTZSaVZ2YjVEdmFvbEhNTVFqL1NwSHJo?= =?utf-8?B?YjVSSzhBNHhMb3prRHVsbi9BVzJEUEZqdlowcnpKZ2JTUTMrV3NRT281Tlg5?= =?utf-8?B?czhZaCtXSHg2cVFuQmxsbzU5MXNUNDI3dGY1TXR4WmpmN3FTSmlTK05UMk5H?= =?utf-8?B?UUR0T0xOZnJKTDE5cUdGQnc2d2hySTNOakV3Vnh0RVZSRU5odE9qUW03MCtu?= =?utf-8?B?QTlDWHBYSDg0elRjK3F0RDVEc3k4UTVyM3VTUkZucWNxSmJMdWFwZmJoSVA5?= =?utf-8?B?Q1lUa0JERXFyeDd6ZEtFZUZVelhoOXRFNHI1c24rY2dRa0ZpWU11QlJGSmdX?= =?utf-8?B?UmJJaWVXbWpBR1VtOFNUbUYwVEY2NTVsc29RbDhSN0JlT05vR2FsZzFleXJm?= =?utf-8?B?TVNoUDVvMk03dnNqOVQ2czJObnlYSU5OR1JjRzZaWFhjVkp2amJxTGRqY3Vm?= =?utf-8?B?eFNKc090QmlHMkRSci9HK3YyRE4vTXVMNzNwK25RVjhxRlNETWtnUlg2dFVR?= =?utf-8?B?RDNIMzl6enFPakR2TjN0ZDRvYkpObmVDeVZ2R0N6MVZSQTNaRUR3cWVQeDU4?= =?utf-8?B?clVHZFNjL3kwSzh4bENMalNVdk1SbFhaNmM5c3R5QnFzQU4zNzZ4K2g5bCt3?= =?utf-8?B?eHM1Sk5yQ01pUjhaeE0xS1dtelB0TDZ5SUsrOWhuWFlzWXRHTUN5cnFTRXgz?= =?utf-8?B?RjkxcXMvUUNubDZla294K1dWQ1c5U3RjZGE5UThMZFhJcmlPRDM1dlBZa2dZ?= =?utf-8?B?RkhqWVFPZUNGYnZvZXYxbTRaV21MYkl4bS9ObUxOdzA4d0dCcElYbEF0ZG0z?= =?utf-8?Q?tgmQWBlNILXFtcNmmOHl+iHA4=3D?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?enNTcTBBb29RTTV0OHNqcFora0I5K3VuejVwZVZ1R3ZCcUtaTlFBNC9hTk5r?= =?utf-8?B?N0tzQUNmNHNsSVpiaGZJY0d6dlV4Q0ZOb3Y1WlhiL2FVYWVLRlNPV3Y2RTNF?= =?utf-8?B?enA3SWY5TThsUVpnNDc5REx1b2hoTzI4ZXRsQ29VSkRiSllMR0tvYmt1dnI4?= =?utf-8?B?TG5vdHlnYkl2NzdnZ0dyVUp1UGp5bkZHNTJDbjJBdUVFQjUxVjNoTVZ6T0c4?= =?utf-8?B?MFp3NHlpSEpSZjljS25WT0pFNFBydDdHU0RUcXVZckEvN05CR1pWdHo4VlpC?= =?utf-8?B?Ynp2RnN0QTdNQnI5UkxSaTRXOU85M1BqYk82akZqaFVxbVg0d3BsMEV0cmxQ?= =?utf-8?B?OGcwRVZmKzc3RklRSFJTdXZ4aE8wL0I5ZkMrc3FrU0t5RzgzbzhnenFwaWhh?= =?utf-8?B?dk8yMEIxYXVHMC9LRVlOMXhCcjZqU3VwVTJBRE14aURQSkl1MmxIOW1ad0pG?= =?utf-8?B?cUh4cFRvSnVkS0o2L1lKQ2hNR0pWempraEQ5SVRrUUIvb1hMdi96NWxMMGJv?= =?utf-8?B?OS9EQm5MSDBtMzNpTEluVUlqbGZLUjFDaDBsTTNpYVZQVmlGcDdTck1xdU5W?= =?utf-8?B?OFJwZUkvZkQ0U2gwZzhpeFZ4Y040ZkJvczZsaXM5Q3BJVjM5Zzl2elZPay9R?= =?utf-8?B?ZWFRRWFOdUN0NjJXcW5pRmRBeWxZT1pveGFoek9ick45WGNrdkx4OXFESVhM?= =?utf-8?B?cFcyK3hWUUVVczBVSi9IbmtFSkVZcFJqMEplNEQ1RFFkOXk3d0YrL01CcGVl?= =?utf-8?B?N1VIeE41Q0hUczMzUkt3eDJhdnlkWWpJYXYwdXZ3cnhxTXgyU0xZcGdxZFZF?= =?utf-8?B?SFJ0Wi9BUVEvR2pDRkd6OGNOS0tzWVFMang3SlZYSjJWT0NhWEJFOGFDTDEx?= =?utf-8?B?d08zanhDcFkxaTZONWNNR3pFWnF1RXZjSE9ZeUpWY1BXSnAwYk1Gd0F1WVJD?= =?utf-8?B?N2pPaE9mUWdNUWxEOGU5SU85Z2l6KzZwemtNYnBjSnhqdm4yY2lmNE4vY3Zh?= =?utf-8?B?RlVaWlB0b2VocmhwU05OSUVNOFMxTXBXYk9GcWgxaFFxeXVsNkY2ZzkwWk5k?= =?utf-8?B?c2RvYWNBZ1lkemlVWUVqajB1WWY2SlJsT29oaDNrSGpIb0VjR2tUTEJVRUZ2?= =?utf-8?B?UkkrOHNaSnU1bEx0bVVQaW1QSXBQeDN6OUtCQ2RsdVRsZ1Vua0VtNmNrS1E0?= =?utf-8?B?S2JONGt2dFJlenhpdlVzNzFzN0lQSERDSGRJb0x2cW9BRGtKaW93Y3hwTklX?= =?utf-8?B?ZTUxYTRHY3JUMWxUSldrMXV2RmdudkUwTXVrbHNjMVQvdEh3NWhxaWlWSVcx?= =?utf-8?B?bWJ1TXpiWEtRdXVScmU1R1M0cXIwN2loYlkvMWk4MHVSRi9zMWZzTTRvSmkr?= =?utf-8?B?aTdLaU95NnlJVWFNYjFVNHlscHFRK2lWQlFYK01UZnJIUEczZ21OSlVhTWRy?= =?utf-8?B?SHRZUndVK2toeTdiWE8rZGVmY1B3M0RHenBsS1hQNXdXcm53UzB5bkU2LzJy?= =?utf-8?B?azdjaUFTaEtEbGYzNEU0Y1hUOENFTkF4K3Y1cVZNdzJ0Q3paUEgzZ3MxaEZ6?= =?utf-8?B?VEJTdS9nTmMrbXFXZ1hjZ09qRzkrd3MyWUc0ejFtdTg4OVhYNzhLSGJucmxW?= =?utf-8?B?STN4NE5WUTZhVEpDcm9XMzVEL3RVQUdaZ3VlYzJyNDQ0bE1SNkYyT0Fod0dm?= =?utf-8?B?M3J2bVk2Z2pBYlRYUHlXWWJHSmh4MFNoaDJ5U1dsRzNYMFpmeGwyWWR3eEZx?= =?utf-8?Q?w1dyxLh2zGD6+9wvxgCScQuzLfwr+kvY4M2Wx5+?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75c7db48-3ab9-48e6-9b71-08dd7ca4945d X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2025 05:07:26.5418 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3P250MB0257 Subject: Re: [FFmpeg-devel] [PATCH v2 1/2] avformat: add avformat_query_seekable X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/GV1P250MB0737A24C4C3EDFE7588D73B48FBD2@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> Gyan Doshi: > Utility function to report seekability features for a given input. > > Useful for ffprobe and to extend seek possibilities in fftools. > --- > v2: > made constants more descriptive > add exception for rtsp false negative seekability > > doc/APIchanges | 3 +++ > libavformat/avformat.h | 22 ++++++++++++++++++ > libavformat/seek.c | 53 ++++++++++++++++++++++++++++++++++++++++++ > libavformat/version.h | 2 +- > 4 files changed, 79 insertions(+), 1 deletion(-) > > diff --git a/doc/APIchanges b/doc/APIchanges > index 65bf5a9419..879f56b572 100644 > --- a/doc/APIchanges > +++ b/doc/APIchanges > @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2025-03-28 > > API changes, most recent first: > > +2025-04-xx - xxxxxxxxxx - lavf 62.1.100 - avformat.h > + Add avformat_query_seekable(). > + > 2025-04-07 - 19e9a203b7 - lavu 60.01.100 - dict.h > Add AV_DICT_DEDUP. > > diff --git a/libavformat/avformat.h b/libavformat/avformat.h > index 498c3020a5..f9da5e9e79 100644 > --- a/libavformat/avformat.h > +++ b/libavformat/avformat.h > @@ -2338,6 +2338,28 @@ int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, > */ > int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags); > > +#define AVSEEKABLE_IO_NORMAL 0x00000001 ///< I/O is seekable like a local file > +#define AVSEEKABLE_IO_PROTOCOL 0x00000002 ///< I/O seek is through protocol request via avio_seek_time > +#define AVSEEKABLE_VIA_DEMUXER 0x00000004 ///< demuxer has a seek function > +#define AVSEEKABLE_VIA_PKTSCAN 0x00000008 ///< seek is performed by consuming and scanning packet timestamps > +#define AVSEEKABLE_BY_TIME 0x00000100 ///< seek target can be a timestamp > +#define AVSEEKABLE_BY_BYTE 0x00000200 ///< seek target can be in bytes > +#define AVSEEKABLE_BY_FRAME 0x00000400 ///< seek target can be a frame index > +#define AVSEEKABLE_PROP_PTS 0x00010000 ///< seek target timestamp is expected to be PTS > +#define AVSEEKABLE_PROP_FAST 0x00020000 ///< demuxer allows fast but inaccurate seeking > +#define AVSEEKABLE_PROP_FWDONLY 0x00040000 ///< set seek will be equal or forward of specified seek point > + > +/** > + * Report if and how a seek can be performed in a given input. > + * > + * @param s media file handle > + * > + * @return 0 if no seek can be performed on input, > + * -1 if the fmt ctx is NULL or is not an input > + * else return AVSEEKABLE_ bitflags indicating seekability features. > + */ > +int avformat_query_seekable(AVFormatContext *s); > + > /** > * Discard all internally buffered data. This can be useful when dealing with > * discontinuities in the byte stream. Generally works only with formats that > diff --git a/libavformat/seek.c b/libavformat/seek.c > index c0d94371e6..8be1bdec30 100644 > --- a/libavformat/seek.c > +++ b/libavformat/seek.c > @@ -712,6 +712,59 @@ int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, > return ret; > } > > +int avformat_query_seekable(AVFormatContext *s) > +{ > + int ret = 0; > + > + if (!s || !s->iformat) > + return -1; > + > + if ( strcmp(s->iformat->name, "rtsp") && (!(s->pb && s->pb->seekable) || s->ctx_flags & AVFMTCTX_UNSEEKABLE) ) > + return 0; > + > + if (s->pb->seekable & AVIO_SEEKABLE_NORMAL) > + ret |= AVSEEKABLE_IO_NORMAL; > + > + if (s->pb->seekable & AVIO_SEEKABLE_TIME) > + ret |= AVSEEKABLE_IO_PROTOCOL; > + > + if (ffifmt(s->iformat)->read_seek || ffifmt(s->iformat)->read_seek2) > + ret |= AVSEEKABLE_VIA_DEMUXER; The existence of these functions does not imply that a given input is seekable: E.g. some read_seek functions rely on an index being present in the file and are useless/not better than reading linearly in case the index is absent. > + > + if (ffifmt(s->iformat)->read_timestamp && !(s->iformat->flags & AVFMT_NOBINSEARCH)) > + ret |= AVSEEKABLE_VIA_PKTSCAN; > + > + if (!(s->iformat->flags & AVFMT_NOTIMESTAMPS)) > + ret |= AVSEEKABLE_BY_TIME; > + > + // TODO: incomplete, a few demuxers don't set flag but error out on byte seek > + if (!(s->iformat->flags & AVFMT_NO_BYTE_SEEK)) > + ret |= AVSEEKABLE_BY_BYTE; > + > + // TODO: no flag for frame seeking. Add flag and enable this check > + if (s->iformat->flags & 0) > + ret |= AVSEEKABLE_BY_FRAME; > + > + if (s->iformat->flags & AVFMT_SEEK_TO_PTS) > + ret |= AVSEEKABLE_PROP_PTS; > + > + // TODO: flag exists but not added to the demuxers which support it > + if (s->iformat->flags & AVFMT_FLAG_FAST_SEEK) > + ret |= AVSEEKABLE_PROP_FAST; > + > + if (!(ret & AVSEEKABLE_VIA_DEMUXER) && ret & AVSEEKABLE_VIA_PKTSCAN) > + ret |= AVSEEKABLE_PROP_FWDONLY; > + > + if ( !(ret & AVSEEKABLE_VIA_DEMUXER) && > + !(ret & AVSEEKABLE_VIA_PKTSCAN) && > + !(ret & AVSEEKABLE_BY_BYTE) && > + !(ret & AVSEEKABLE_IO_PROTOCOL) && > + (s->iformat->flags & AVFMT_NOGENSEARCH) ) > + ret = 0; > + > + return ret; > +} > + > /** Flush the frame reader. */ > void ff_read_frame_flush(AVFormatContext *s) > { > diff --git a/libavformat/version.h b/libavformat/version.h > index 752aac16f7..a7c80dc564 100644 > --- a/libavformat/version.h > +++ b/libavformat/version.h > @@ -31,7 +31,7 @@ > > #include "version_major.h" > > -#define LIBAVFORMAT_VERSION_MINOR 0 > +#define LIBAVFORMAT_VERSION_MINOR 1 > #define LIBAVFORMAT_VERSION_MICRO 100 > > #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".