From patchwork Tue Dec 26 05:23:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aman Karmani X-Patchwork-Id: 6970 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.79.195 with SMTP id r64csp6451141jad; Mon, 25 Dec 2017 21:23:37 -0800 (PST) X-Google-Smtp-Source: ACJfBotMFkTPAJBRuptws5RWRa3Q0Nueu/GaB87mvsoQt+/fNp55AdgEonUZALvxP0cik9h9b1t6 X-Received: by 10.223.174.174 with SMTP id y43mr23726067wrc.196.1514265817343; Mon, 25 Dec 2017 21:23:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1514265817; cv=none; d=google.com; s=arc-20160816; b=UqR5TDJAI4CF1lXerNXce7jhlTMD6bKoj1qXyJ4l1eRYKlEkN5rhjeOFdx3HKbVzqH oMLHI39PYmDYE65UDMj5eTSFXSYpVqB9kIwx4F8u7b3omZVJrcJorZuUOQaOl+C3Rv4K +SeTrwilaO05p/ujxaG4Cz0o+AmtQmYVjDI3qc45L0cK7buNWcup/kQel2EYKQVhbT3W wkk0pS4HS4cP7mcTZVljqQ54iUGcHvrjVzErpIoL4ujW5qa2Kk8lfSIuaARAO1t09Zmi S+BU0PNMh4UIP5LyWiLVwAJCz1et7ew16GX6S+wE5rH4H2Nta2FdQNY+1Bk+gxQQCczE CR4A== 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:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=7u+FQK+VWvDvFWxEndwuXZVb5gRdoy8obFl6pn4Bca4=; b=xLc5LbPXWyDo59Usj5bXMuRSKNRTJcz6TltCCEU5dDH0UtTXn7BxFpHJzcI4FpkBZr TD38twMGr2os9Jp1k4YHIOmNwghJQdkOq/I4D6/eucjsqw3JBJn1HMUiOTEUdCCW5aa0 hD+5cW4nCy2iNV9Wz21gqwwtI+k5NCgl6DJUVO/4+iDP0L7UOjgs0n6E1FXO+RpAkOyS gdJIMHgOsgFwB4jASpgkfDFeQLpuRM8UQBjflC+uT9OA+F0E5oOJ1aODr7X2GM7BSawS qIYDPaz3B41osxvs/kl+y6DGBpht/mbPOE1NePYQ3t8J7L6FU51n9aAgJZlLUe5rLEw+ Lmwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=lNQZ2wdg; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id e2si13137119wrc.555.2017.12.25.21.23.36; Mon, 25 Dec 2017 21:23:37 -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=@tmm1-net.20150623.gappssmtp.com header.s=20150623 header.b=lNQZ2wdg; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B958C6882BF; Tue, 26 Dec 2017 07:23:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl0-f67.google.com (mail-pl0-f67.google.com [209.85.160.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3619C680C29 for ; Tue, 26 Dec 2017 07:23:01 +0200 (EET) Received: by mail-pl0-f67.google.com with SMTP id 1so15951738plv.0 for ; Mon, 25 Dec 2017 21:23:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tmm1-net.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=+68Y9d+B61IYbOwcVLWl9ENoN2gCWJeYzu8MqBuISJM=; b=lNQZ2wdgB5JuMRuIn8vSAh/ohFwkhXN5MxPZDlcY3jZ0wk5Kb4Y5MRpUjQj6QooX7s CvN8sMNw8Xp5tMqJLjaAK1k/XImoz6QLK5tzqMRtnGJo2/jIGFwXtptTjjb9w9lUq6FE 8uoLmu3nWGDcJJVdCA7BEVZZBlnZIWQKCpQQmQ13kQ41TA4eqC70Ty5A9+N8QBOR27/c JpcalVTPQnliZtxc0seNd5XTRff24QCLmgeNQxY7G95jzv9R5ACv4siyrIQJuSJitGyk mCrXxqHGKR+k6FQGivVxi/gKC7iTBPeYb3p7Tx+fdKjEP+lv0pFiUXWLLFFepQ0ijbZl k+ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=+68Y9d+B61IYbOwcVLWl9ENoN2gCWJeYzu8MqBuISJM=; b=S+myO2fgr8yjkm4ue/2H31gwOT2HVfN8QgNILHuNBF7GT6qSKCU8UykLSlGy3lT8qP 2clKl3+Mgj9i/dQ6b3c9Mcjoe/FMexzQH4qDWPUUcrxMC74oS2djP7IwwAYFulKcQg+a PtTI9Ww5xVfywM075qmxbL6WtL7+gEuJqgqrFuV/NiBIoKOMK0FrSqVLnijxXleiudkl OF0foFd/EcX1+vee/FX/lWgccOmWnbO2C62Q3HVyuVX7oG2UFPd27P2oiVLHKTHABhe7 4Is9GV5J3GnQTDeeHXBtVeLoABlPHRXAO47PDhsgTjhK57uY+LRLwIDZwuBBnbtUxaER I8bA== X-Gm-Message-State: AKGB3mL8REZxjQIieEf3B25rwHI0rgsTQIdpRHhAo7Z3qGnHKGYPB1Ay svzOZRYzaI7n5DFtfOqgfypcxRCQ X-Received: by 10.84.174.4 with SMTP id q4mr24430909plb.207.1514265792786; Mon, 25 Dec 2017 21:23:12 -0800 (PST) Received: from localhost.localdomain (c-69-181-54-242.hsd1.ca.comcast.net. [69.181.54.242]) by smtp.gmail.com with ESMTPSA id s5sm15540784pgp.91.2017.12.25.21.23.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 25 Dec 2017 21:23:12 -0800 (PST) From: Aman Gupta To: ffmpeg-devel@ffmpeg.org Date: Mon, 25 Dec 2017 21:23:01 -0800 Message-Id: <20171226052301.17509-4-ffmpeg@tmm1.net> X-Mailer: git-send-email 2.14.2 In-Reply-To: <20171226052301.17509-1-ffmpeg@tmm1.net> References: <20171226052301.17509-1-ffmpeg@tmm1.net> Subject: [FFmpeg-devel] [PATCH v2 4/4] avformat/hls: enable http_multiple only for http/1.1 servers 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: Aman Gupta MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Aman Gupta Signed-off-by: Aman Gupta --- doc/demuxers.texi | 2 +- libavformat/hls.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/demuxers.texi b/doc/demuxers.texi index 81ab399cdc..6080167233 100644 --- a/doc/demuxers.texi +++ b/doc/demuxers.texi @@ -323,7 +323,7 @@ Enabled by default. @item http_multiple Use multiple HTTP connections for downloading HTTP segments. -Enabled by default. +Enabled by default for HTTP/1.1 servers. @end table @section image2 diff --git a/libavformat/hls.c b/libavformat/hls.c index c30d71a477..d2cca2ea97 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -1451,7 +1451,7 @@ reload: if (ret) return ret; - if (c->http_multiple && av_strstart(seg->url, "http", NULL) && v->input_next_requested) { + if (c->http_multiple && v->input_next_requested) { FFSWAP(AVIOContext *, v->input, v->input_next); v->input_next_requested = 0; ret = 0; @@ -1470,8 +1470,15 @@ reload: just_opened = 1; } + if (c->http_multiple == -1) { + uint8_t *http_version_opt = NULL; + av_opt_get(v->input, "http_version", AV_OPT_SEARCH_CHILDREN, &http_version_opt); + c->http_multiple = strncmp((const char *)http_version_opt, "1.1", 3) == 0; + } + seg = next_segment(v); - if (c->http_multiple && !v->input_next_requested && seg) { + if (c->http_multiple == 1 && !v->input_next_requested && + seg && av_strstart(seg->url, "http", NULL)) { ret = open_input(c, v, seg, &v->input_next); if (ret < 0) { if (ff_check_interrupt(c->interrupt_callback)) @@ -2305,7 +2312,7 @@ static const AVOption hls_options[] = { {"http_persistent", "Use persistent HTTP connections", OFFSET(http_persistent), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, FLAGS }, {"http_multiple", "Use multiple HTTP connections for fetching segments", - OFFSET(http_multiple), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, FLAGS}, + OFFSET(http_multiple), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 1, FLAGS}, {NULL} };