From patchwork Fri Mar 2 06:57:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Patagar, Ravindra" X-Patchwork-Id: 7791 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.181.170 with SMTP id m39csp5921436jaj; Thu, 1 Mar 2018 22:57:55 -0800 (PST) X-Google-Smtp-Source: AG47ELvc9DJZ/j9dMhM6B9XC96+2j2vh9YKW+wBUZvEMihmJc/eKgqwpzc/Z8y8YzKD1Rc5LCCQx X-Received: by 10.223.139.144 with SMTP id o16mr3803127wra.279.1519973875234; Thu, 01 Mar 2018 22:57:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519973875; cv=none; d=google.com; s=arc-20160816; b=o97R/NZXUibFW3zwNIILw+bZ0ijGUVshbtlY8X87FTgYaRbMd38UzdIfJR80Ywud3e ZKHj3N3xKkDaZe5ERQwDG5nvY71SsRLPydfpwe/oM1JqToUCTrWsfjET9sfs4MJ6XDmE F0FLsI7eXbZqDTIUebrmeTakb/BEy5tdmSjTWVF/OSMXlNq0bcVENUidKIG0d3xYZKTb fjbEB7huotFm+wATTil2M+J+eySUKYqrp+tGTiYJi7lUjBxFFk6kCmCPhR/M7/WW34cD 5bHDpeKgWFFpYFicufp+ysHGhf9uQuYIOt1DPv5Fg4ukd6ry/UHxFJuhA6pZ9VVN/rt8 RveQ== 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:message-id:date:to:from :dkim-signature:delivered-to:arc-authentication-results; bh=EDmuIBiJELNSNLh8El6+hHtvbwzs6XlJkgXNxkPIdiA=; b=XpOQD7qSmaNkNnyZq5t2Gzd75aXEyylZmPYxsrY5yQmHTOoJfc73Czjvi21GuHokoZ eLuUOe5DDl4P4/OKfEND4glLrFqQAxfLTCZjUaaRRizYlWdLUKgyLSdtq3qvo0nxAh0R byh4KHr5GN9zQxtOgj/AcTVK/vP8SXiGlj8v7QdqDewMDnK6mHhRIIJgLfvCEDnw+268 LOoU9fqCkbJYdMuGg0u3xyvs5dLp4IdhzeGvRHJwL0FkrWMTD0Vif7ohKlBFfFYOVu5w H7DGWWY25Faye4TM7J69MZSZ+LKzyzDyW5/fYWRTH5+YDy1Qd/dp+LTs+LYYLg1+8yCG nnZw== 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=cD5v3sdI; 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 p17si4055334wrp.6.2018.03.01.22.57.54; Thu, 01 Mar 2018 22:57:55 -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=cD5v3sdI; 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 4FF2C68A503; Fri, 2 Mar 2018 08:57: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 68E4A689FF3 for ; Fri, 2 Mar 2018 08:57:47 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=m78bu0.a1-4.dyn; x=1519974773; h=Feedback-ID: X-Smtpcorp-Track:Message-Id:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe; bh=+G/1/XMOzJthi9jWYIRnAaR+faRlbqNCmAOTrSh/si8=; b=cD5v3sdI u74KJN//aVwBH0d6CWElzCK7QdulX3E8/Eo9vDdIQLRsgl2iiPjkjF+XAdldu1pk3EHrSHHbQIye3 n1o9qjbC4+KXMdUwBoHz4vE2Nypt4PZrGejVnxiCU1oavAcUjGj1sWwGDvoSj8hsntUPhmwq/ojLI v4pCb/ybFj+iAim7X18WieQyEzO18bgnr7D2hB7r3ZIv/ryWozhc0QQ6zpqJ1fi/ou4MmMhQqTwd6 Y3wmmuvglmmvh0mjw6fFPoSA+nI8Uf1+OLOvEd09e0ei5+5v+IrX8SwUSl8MhJGoP9OllYWSfZt7i /hQfpDyUitMdlJqJXqDLvtQetg==; From: rpatagar@akamai.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 2 Mar 2018 12:27:40 +0530 Message-Id: <1519973860-25623-1-git-send-email-rpatagar@akamai.com> X-Mailer: git-send-email 1.9.1 X-Smtpcorp-Track: 1-r-dYRyIQM_Hr.XLbttE6oe Feedback-ID: 337386m:337386asVRLGB:337386s4gL5wGi8-:SMTPCORP X-Report-Abuse: Please forward a copy of this message, including all headers, to Subject: [FFmpeg-devel] [PATCH 1/1] libavformat/dashenc: 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 Patagar MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Ravindra Patagar Signed-off-by: Ravindra --- doc/muxers.texi | 2 ++ libavformat/dashenc.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/doc/muxers.texi b/doc/muxers.texi index e41f8c6..c456a42 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -264,6 +264,8 @@ of the adaptation sets and a,b,c,d and e are the indices of the mapped streams. To map all video (or audio) streams to an AdaptationSet, "v" (or "a") can be used as stream identifier instead of IDs. When no assignment is defined, this defaults to an AdaptationSet for each stream. +@item -timeout @var{timeout} +Set timeout (in microseconds) for socket I/O operations. Applicable only for HTTP output. @end table @anchor{framecrc} diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index 83e0cff..3b4346d 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -117,6 +117,7 @@ typedef struct DASHContext { AVIOContext *mpd_out; AVIOContext *m3u8_out; int streaming; + int timeout; } DASHContext; static struct codec_string { @@ -269,6 +270,8 @@ static void set_http_options(AVDictionary **options, DASHContext *c) 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 get_hls_playlist_name(char *playlist_name, int string_size, @@ -1418,6 +1421,7 @@ static const AVOption options[] = { { "http_persistent", "Use persistent HTTP connections", OFFSET(http_persistent), AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1, E }, { "hls_playlist", "Generate HLS playlist files(master.m3u8, media_%d.m3u8)", OFFSET(hls_playlist), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E }, { "streaming", "Enable/Disable streaming mode of output. Each frame will be moof fragment", OFFSET(streaming), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E }, + { "timeout", "set timeout (in microseconds) for socket I/O operations", OFFSET(timeout), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, .flags = E }, { NULL }, };