From patchwork Fri Nov 22 08:56:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Steven X-Patchwork-Id: 16390 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 B00BB44AD80 for ; Fri, 22 Nov 2019 10:57:02 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8DE1F68AE29; Fri, 22 Nov 2019 10:57:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from qq.com (smtpbg566.qq.com [183.3.255.187]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3794668AD66 for ; Fri, 22 Nov 2019 10:56:54 +0200 (EET) X-QQ-mid: bizesmtp19t1574412982tnkw2izw Received: from localhost (unknown [47.90.47.25]) by esmtp10.qq.com (ESMTP) with id ; Fri, 22 Nov 2019 16:56:22 +0800 (CST) X-QQ-SSF: 01100000008000K0ZSF1B00A0000000 X-QQ-FEAT: 0abLp1D7a8JOt1udmQ4TrunD/hbRhSZzKMij0b53BF7QRtMWf6rsUxEFHwZJi gYQsUi+0Td69vlTqlZYC1YXph+N5AWgtVyqBJXkOYiSYaYH2IVdt/MTwlwNdLPcc+CSA4r0 lN48y+IEPl36Dip9Gj6E1oSiD+4IYiWbkCvRItIDXJ1DBTJIj9EPF2nvKNt1OM9kQQmYAsb rUUjbJMmffb7sFPnPqnOb8hq6LpOJTxz4UzQcfT77SKkxWH/2AgUTToe2d/9cVzVTFv4hsX Ouv3sFhlSKR1k7YpvR1WV1UTew8rPqzu4xTobKAvWrRvEncf+bpnspV4s= X-QQ-GoodBg: 0 From: Steven Liu To: ffmpeg-devel@ffmpeg.org Date: Fri, 22 Nov 2019 16:56:20 +0800 Message-Id: <20191122085620.14296-1-lq@chinaffmpeg.org> X-Mailer: git-send-email 2.10.1.382.ga23ca1b.dirty X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:chinaffmpeg.org:qybgforeign:qybgforeign7 X-QQ-Bgrelay: 1 Subject: [FFmpeg-devel] [PATCH 1/2] avformat/url.h add av_find_protocol_by_name for find URLProtocol by name 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: Steven Liu MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Steven Liu --- doc/APIchanges | 3 +++ libavformat/protocols.c | 16 ++++++++++++++++ libavformat/url.h | 9 +++++++++ libavformat/version.h | 2 +- 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index 401c65a753..804a57de41 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,9 @@ libavutil: 2017-10-21 API changes, most recent first: +2019-11-22 - xxxxxxxxxx - lavf 58.35.101 - url.h + Add av_find_protocol_by_name(). + 2019-11-17 - 1c23abc88f - lavu 56.36.100 - eval API Add av_expr_count_vars(). diff --git a/libavformat/protocols.c b/libavformat/protocols.c index face5b29b5..d4dee23a8e 100644 --- a/libavformat/protocols.c +++ b/libavformat/protocols.c @@ -107,6 +107,22 @@ const char *avio_enum_protocols(void **opaque, int output) return avio_enum_protocols(opaque, output); } +const URLProtocol *av_find_protocol_by_name(const char *name) +{ + int i = 0; + const URLProtocol **protocols; + protocols = ffurl_get_protocols(NULL, NULL); + for (i = 0; protocols[i]; i++) { + const URLProtocol *proto = protocols[i]; + if (!strcmp(proto->name, name)) { + av_freep(&protocols); + return proto; + } + } + av_freep(&protocols); + return NULL; +} + const URLProtocol **ffurl_get_protocols(const char *whitelist, const char *blacklist) { diff --git a/libavformat/url.h b/libavformat/url.h index 4750bfff82..fe0aa10b27 100644 --- a/libavformat/url.h +++ b/libavformat/url.h @@ -322,6 +322,15 @@ void ff_make_absolute_url(char *buf, int size, const char *base, */ AVIODirEntry *ff_alloc_dir_entry(void); +/** + * Return the URLProtocol of the protocol that will handle the passed name. + * + * NULL is returned if no protocol could be found for the name. + * + * @return URLProtocol of the protocol or NULL. + */ +const URLProtocol *av_find_protocol_by_name(const char *name); + const AVClass *ff_urlcontext_child_class_next(const AVClass *prev); /** diff --git a/libavformat/version.h b/libavformat/version.h index bac54aed9d..213b66b45f 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -33,7 +33,7 @@ // Also please add any ticket numbers that you believe might be affected here #define LIBAVFORMAT_VERSION_MAJOR 58 #define LIBAVFORMAT_VERSION_MINOR 35 -#define LIBAVFORMAT_VERSION_MICRO 100 +#define LIBAVFORMAT_VERSION_MICRO 101 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \