From patchwork Mon Mar 5 09:41:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Patagar, Ravindra" X-Patchwork-Id: 7812 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.181.170 with SMTP id m39csp2339568jaj; Mon, 5 Mar 2018 01:41:19 -0800 (PST) X-Google-Smtp-Source: AG47ELuHc1VMuXqgjL5WYW0WAO5Z0kScCAd7BMO5QZGBTEsDowtw3lDN0yrhHUmC2mQAV+/dPsdi X-Received: by 10.28.170.5 with SMTP id t5mr4501296wme.116.1520242879811; Mon, 05 Mar 2018 01:41:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520242879; cv=none; d=google.com; s=arc-20160816; b=X8z89K/eZ2Ej62TL71k4b2rS246IDsIVteCUAamE5aI01oFaiFFdbrulbHOUd2wLwv aoZNZWMnrHBYF2THSn4zghmZajFX6eF5gzW7LFL+8pAlOzbyvbceHa864gmjcBPh5joh 4nhYg9yszskDNCNMpxKToDlQ4PzWbT3w/wZLR3WP4sEINK8cJele90wurn1roAze8pzT Dv7wVwqlvTr3Z34tXK/C/Ei3tyoO7iZwiPleHSqstOyRMzO/fOQZtsqehb/Aei7ONUya FkhsQEUKcSRIjqRZZzqXamQfXX8cP8tGylB0qM38Cy6LrZaUEMSvwSEccZSE/mEPJT6Z B/dQ== 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=lvjry3gffTf5L/zYMTgB6OZRKuheXNeZcYMo+pAckes=; b=igbbts98i5TBpipevbO0wClKub0JMdJVAKcwoIfrv34Hg+WMeVFspscVAEFquChzss LYPq7AhX4buRPkUDh4tOo8Psyufv4QIM4j7Tv4ngRb3AWjdy6RJ7LcV56OaQ9++6AfAk /ythcVK2hqzEbS+SsxgzTI46SeOQHU0C/8HFHUzmkT1ATkbnvkgZdKZA7KffFSo4o+wX RqAguJXtgB8wT/o5lPcOc2RPCotXeQRWtdsSwyQimFeAAQh0koAy+fK61BzzJu7vWDUW 3CImVL6a+eC45fcpf5XqX+ypUb4uwekokD8ng6zhKC7z/STgIIRJiaNi+zbg2howbkw2 7tXw== 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=twXpXTzh; 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 v195si4298307wmf.169.2018.03.05.01.41.19; Mon, 05 Mar 2018 01:41:19 -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=twXpXTzh; 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 C870368A35B; Mon, 5 Mar 2018 11:41:10 +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 662FE68A27D for ; Mon, 5 Mar 2018 11:41:04 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=m78bu0.a1-4.dyn; x=1520243777; h=Feedback-ID: X-Smtpcorp-Track:Message-Id:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe; bh=FPglUhvqSR2nObcpFcIXLCJVfCMgWZPcihGeiD6NOvA=; b=twXpXTzh ZW2wkR1ytXrs/4dPYxVwnmgqQu7UHjZ5GTjuXQTWd8jpEkEQJrk47HKAujuMhhY9PNizOpWmZs8pj xB5VItPOjReon4ubKJ6qhcJmcbVjrm7vTDTQXZZB3mMXIwfycxEyzBQqAtDOsYxiUa2JIf1LGRENa PiTacQnjLNA59YTTQA8qSbGoLR2N0GR4gEcsvs8RwilmsoQkHVnXx3ZFgmj+RODROfhZKUdUDw1KF qolNiS8KhkS/iSfwYsN1gSQlxzoXiB/H+bcrFiPu5eeHWw511qY3MP2yHKf+w5iIM54f935h65DfI NC9aaXtVhpjauz4hnWHz+/c6Yg==; From: rpatagar@akamai.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 5 Mar 2018 15:11:04 +0530 Message-Id: <1520242864-1380-1-git-send-email-rpatagar@akamai.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <0D3DBCEC-984A-49B5-BE99-33358E6D21BA@chinaffmpeg.org> References: <0D3DBCEC-984A-49B5-BE99-33358E6D21BA@chinaffmpeg.org> X-Smtpcorp-Track: 1-sXcGDII-bHKz.nVC1qM6DU Feedback-ID: 337386m:337386asVRLGB:337386sifjh2RWL4:SMTPCORP X-Report-Abuse: Please forward a copy of this message, including all headers, to Subject: [FFmpeg-devel] [PATCH v2 1/1] libavformat/hlsenc: Option to set timeout for socket I/O operation 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: Ravindra MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Ravindra --- doc/muxers.texi | 3 +++ libavformat/hlsenc.c | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/muxers.texi b/doc/muxers.texi index c156ec0..3a63da7 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -964,6 +964,9 @@ publishing it repeatedly every after 30 segments i.e. every after 60s. @item http_persistent Use persistent HTTP connections. Applicable only for HTTP output. +@item timeout +Set timeout for socket I/O operations. Applicable only for HTTP output. + @end table @anchor{ico} diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 08fe0aa..5d462da 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -224,6 +224,7 @@ typedef struct HLSContext { int http_persistent; AVIOContext *m3u8_out; AVIOContext *sub_m3u8_out; + int64_t timeout; } HLSContext; static int mkdir_p(const char *path) { @@ -305,7 +306,8 @@ static void set_http_options(AVFormatContext *s, AVDictionary **options, HLSCont av_dict_set(options, "user_agent", c->user_agent, 0); if (c->http_persistent) av_dict_set_int(options, "multiple_requests", 1, 0); - + if (c->timeout >= 0) + av_dict_set_int(options, "timeout", c->timeout, 0); } static void write_codec_attr(AVStream *st, VariantStream *vs) { @@ -2792,6 +2794,7 @@ static const AVOption options[] = { {"master_pl_name", "Create HLS master playlist with this name", OFFSET(master_pl_name), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E}, {"master_pl_publish_rate", "Publish master play list every after this many segment intervals", OFFSET(master_publish_rate), AV_OPT_TYPE_INT, {.i64 = 0}, 0, UINT_MAX, E}, {"http_persistent", "Use persistent HTTP connections", OFFSET(http_persistent), AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1, E }, + {"timeout", "set timeout for socket I/O operations", OFFSET(timeout), AV_OPT_TYPE_DURATION, { .i64 = -1 }, -1, INT_MAX, .flags = E }, { NULL }, };