From patchwork Sat Dec 16 19:02:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jeyapal, Karthick" X-Patchwork-Id: 6827 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.94 with SMTP id m30csp898126jah; Sat, 16 Dec 2017 11:02:59 -0800 (PST) X-Google-Smtp-Source: ACJfBovf3ltpyOa8KEkwbx8ShDldbj32sfUpFqtCmFOzv56zdE1lnKmiiYyyk0cwboZLofhWCuvP X-Received: by 10.223.179.26 with SMTP id j26mr14459432wrd.123.1513450979581; Sat, 16 Dec 2017 11:02:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1513450979; cv=none; d=google.com; s=arc-20160816; b=FF8WQlZEiYnfhIq8MbJKayCsH1+3cIb6Ct2KC47tibAQBZC0mavKqBZijY6QDF/pS5 2mozUND3dsgiKM4jdAnPXgGZaG5kgQV8qM/HqKZpvI8myiZ2SL/2YqpFzGhzayqj+gwG 3gyXUJPfGDwJ8SFMqMbvSBOIn0JnDPVLm1yfScJSETtw+hXMakvhrtkCQDqiBmoyCK/0 +XdPptiTlJUKCtMHfAMDnTJJfey4LS4ObAh9E+cplm2zu9+ejjbo0tGCb/1GeVwSz02/ VtUYNU27xoRRQVHvaSIED9f1sQBIKFwx3Q/OniBnwzuW7YZ/rU4h3QB+zRWIoYViyZW9 yWuw== 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:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:feedback-id:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to :arc-authentication-results; bh=LINCCDlqVA/rhADEmrErPyZ7vxFkuM4ojGfbW6ysODI=; b=t6rf90i2nNVDUPkg7zAbERlljGNalIp9enXX3+ZJNjsJHzCf6dc6ZKlMaXnhhRMpbb /aWzKx/jJwZGLtdDaiEmfbKbDuQdgf1YtZBtdMGTMhs9R6Y+1e7flw8LS/6k8Mzx//lQ CCv80f3eCoGlyJP6zlEwvMqlWzb38wwMO8fy96Jx8jn6UpEot1G2H+LnnvDDhNg5x9Jt Sdo7MuxApFSD1YzNOTDCDbYxlSzhFXiJvOAylkpMNxCprZ5vo5qiWjASwxf4PdstjSHy 1BzsBN0yijKAL52pTF3m60CogQ/aHrp0BIxANepcgCw7ZGEv7U/I6XTGwsytusRvM4x5 JslA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@smtpservice.net header.s=m78bu0.a1-4.dyn header.b=MxB1Om6A; 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=QUARANTINE sp=NONE dis=NONE) header.from=akamai.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id d10si7310969wrh.426.2017.12.16.11.02.59; Sat, 16 Dec 2017 11:02:59 -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=@smtpservice.net header.s=m78bu0.a1-4.dyn header.b=MxB1Om6A; 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=QUARANTINE sp=NONE dis=NONE) header.from=akamai.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A2B4E68098D; Sat, 16 Dec 2017 21:02:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from a2i831.smtp2go.com (a2i831.smtp2go.com [103.47.207.63]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 055AE6805A1 for ; Sat, 16 Dec 2017 21:02:42 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=m78bu0.a1-4.dyn; x=1513451877; h=Feedback-ID: X-Smtpcorp-Track:Message-Id:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe; bh=rp6hShat+H4DDl7fArpijqcl9rQNUIhCqe8eM2Rq8oY=; b=MxB1Om6A e3V3hvPqtD8TeKeRcyi2F4VkqrtaHkZ3YvL06cVl64yhcB6ZbB0pNAAp/grlv5MqUTL6TFtTms1+Q +kzdGsZtV242TdapsBJuENS31WfXbyCcv5qP4iNXgtXDMJ3rMwZpYcXFwzb3PvYHzpM/V6sk2Hbqy 0zHIYKh2MOWjLguP0y03X+SSMkT1bumsnjdQQoxKajhxO1nkwJPa9whmBvZq2+srOqX4WV315z3zk KEf2DAJbIeRjzKHYfYBqvYFsreanVkg80QHN14QYl8YjRlDdB+eW65bZchqfvXoS582SQ4cSxB9in D7nk83hT7EJ/8pJgX97Ko+WzbA==; From: Karthick J To: ffmpeg-devel@ffmpeg.org Date: Sun, 17 Dec 2017 00:32:29 +0530 Message-Id: <1513450950-17244-1-git-send-email-kjeyapal@akamai.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <2ad21bf5-22b7-7070-665d-fe8477ac42c3@akamai.com> References: <2ad21bf5-22b7-7070-665d-fe8477ac42c3@akamai.com> X-Smtpcorp-Track: 1-QHMRNmF59aTa.NS3lxjnV- Feedback-ID: 337386m:337386asVRLGB:337386szqGpvmvVO:SMTPCORP X-Report-Abuse: Please forward a copy of this message, including all headers, to Subject: [FFmpeg-devel] [PATCH v2 1/2] avformat/hlsenc, utils: Moved is_http_proto from hlsenc to utils for re-use 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: Karthick Jeyapal MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Karthick Jeyapal --- libavformat/hlsenc.c | 12 +++--------- libavformat/internal.h | 8 ++++++++ libavformat/utils.c | 5 +++++ 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index e3442c3..03d54c7 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -240,15 +240,10 @@ static int mkdir_p(const char *path) { return ret; } -static int is_http_proto(char *filename) { - const char *proto = avio_find_protocol_name(filename); - return proto ? (!av_strcasecmp(proto, "http") || !av_strcasecmp(proto, "https")) : 0; -} - static int hlsenc_io_open(AVFormatContext *s, AVIOContext **pb, char *filename, AVDictionary **options) { HLSContext *hls = s->priv_data; - int http_base_proto = filename ? is_http_proto(filename) : 0; + int http_base_proto = filename ? ff_is_http_proto(filename) : 0; int err = AVERROR_MUXER_NOT_FOUND; if (!*pb || !http_base_proto || !hls->http_persistent) { err = s->io_open(s, pb, filename, AVIO_FLAG_WRITE, options); @@ -264,8 +259,7 @@ static int hlsenc_io_open(AVFormatContext *s, AVIOContext **pb, char *filename, static void hlsenc_io_close(AVFormatContext *s, AVIOContext **pb, char *filename) { HLSContext *hls = s->priv_data; - int http_base_proto = filename ? is_http_proto(filename) : 0; - + int http_base_proto = filename ? ff_is_http_proto(filename) : 0; if (!http_base_proto || !hls->http_persistent || hls->key_info_file || hls->encrypt) { ff_format_io_close(s, pb); } else { @@ -275,7 +269,7 @@ static void hlsenc_io_close(AVFormatContext *s, AVIOContext **pb, char *filename static void set_http_options(AVFormatContext *s, AVDictionary **options, HLSContext *c) { - int http_base_proto = is_http_proto(s->filename); + int http_base_proto = ff_is_http_proto(s->filename); if (c->method) { av_dict_set(options, "method", c->method, 0); diff --git a/libavformat/internal.h b/libavformat/internal.h index 36a5721..8f168c9 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -619,6 +619,14 @@ int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **op void ff_format_io_close(AVFormatContext *s, AVIOContext **pb); /** + * Utility function to check if the file uses http or https protocol + * + * @param s AVFormatContext + * @param filename URL or file name to open for writing + */ +int ff_is_http_proto(char *filename); + +/** * Parse creation_time in AVFormatContext metadata if exists and warn if the * parsing fails. * diff --git a/libavformat/utils.c b/libavformat/utils.c index 84e4920..f18a7c8 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -5459,6 +5459,11 @@ void ff_format_io_close(AVFormatContext *s, AVIOContext **pb) *pb = NULL; } +int ff_is_http_proto(char *filename) { + const char *proto = avio_find_protocol_name(filename); + return proto ? (!av_strcasecmp(proto, "http") || !av_strcasecmp(proto, "https")) : 0; +} + int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t *timestamp, int return_seconds) { AVDictionaryEntry *entry;