From patchwork Fri Dec 8 09:17:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dixit, Vishwanath" X-Patchwork-Id: 6600 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.94 with SMTP id m30csp307002jah; Fri, 8 Dec 2017 01:17:34 -0800 (PST) X-Google-Smtp-Source: AGs4zMZKg4qiRJWV9ljPyVyY3G6oKdoqoesADNCQS9z0M3DPY3A8g1mb5BqG0v4/Sc2sul0Fzlf2 X-Received: by 10.28.45.151 with SMTP id t145mr3162979wmt.108.1512724654696; Fri, 08 Dec 2017 01:17:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512724654; cv=none; d=google.com; s=arc-20160816; b=qPioAPZtbW8TZGefrBSaZqQiMzq05COg5zWkSJGrnmzkOYfpUkgrOCrT+Qdku3wMIF n9AE/QQOX7KwKCnpC2zY7cFL+oNw/dGKrEbDEQwfUeRgHLXVREyQVc0SAyyTgamDMm4B hLDblkcszLrww/osu6unC95hNfhnWv6rqzYciCaknAg7zQDdiCI/zyTbJuk4jO1DbYS8 RQqbMz2mSkSJfuH4NOKum3f9uYv9nfAG1nGT5tP+ijSfFY/DNw71aCoKh+lS+fQSeImM 5HydoMIyIjQGuGMhU8axCLq7YlQXjXaM2lr62jG0i6MTmNVazOPnA4Y0M6boMtIZoMDJ l9sw== 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=SPKQBc4ibLKUswcEgtya9F+LjrUgXSwiSOlU3FHVrAk=; b=kjua9AGvzVx9YJ0dmppseoDRtslV5wQ31tuAZ9G+wYB2DAVFlH+qL6N5SvA3uJEW19 FKzCrcUGC0vrNSYBRtIxVc6e70wHdf6DFx/us+AL5ZWIyo9vYX00ysyUcg1S/QN8MiJP 0d6wyiLweR/1AUL8NvFvhyz8d0tJSX/WH5FO6+Rg9hvEXCLtVViHy0uI+VUXaSDSTIuj Cd0fDztoyh1c91pY45BJQAxCCyFTg0QgPAKBjDameoBkRdYuHMDpkGRobBE6Uhj8Dxjs 5CjBLGtsh7aJLYR29hzFeqdLJNvRin8yWjXnEqFGGbqKtv6SV5xdzVeuZffvV7u614C8 aR0g== 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=M4SYXvuF; 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 d16si5604342wrb.312.2017.12.08.01.17.34; Fri, 08 Dec 2017 01:17:34 -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=M4SYXvuF; 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 AA8AA68A4A2; Fri, 8 Dec 2017 11:17:19 +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 2C7C268A42A for ; Fri, 8 Dec 2017 11:17:11 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=m78bu0.a1-4.dyn; x=1512725542; h=Feedback-ID: X-Smtpcorp-Track:Message-Id:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe; bh=fele896/2TURBrLgD9oULfOMrkYFLXlaLWzu2ctT6gU=; b=M4SYXvuF wRwVptla+c9Uq5tBSwXDf+AFq7N4xHW/Ajewu7RHMSt5tgNH3VHr2eb/Gp8rsx8uXmzF4AZvglBZl HQN0jMABIp44v1b9OrnVwW5ED62MOUfpO2XUAfIq3+tfGKYDVgNFz73f8SM+kKXNBe3st2jy2xk5p E4KdzX30lrItybPhfBOyBBLUeI2GUEKY4TGAf3z6vwMkbHh0W/Mbvf8LcBfNN3y2zftPDQwAeglNT RYhJHlynhHeE150ItQaBWShxuspa/iQpbWSIXhGnDonKhbW/tUJ0WdmLk5Nm1bGpOIXS5RImir24x +AmR0Fc8zpMTHffO7aH/yKJtAA==; From: vdixit@akamai.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 8 Dec 2017 14:47:03 +0530 Message-Id: <1512724625-7671-1-git-send-email-vdixit@akamai.com> X-Mailer: git-send-email 1.9.1 X-Smtpcorp-Track: 1-NEXeRyIeCH4G.KhiY8Yrmd Feedback-ID: 337386m:337386asVRLGB:337386sTQJtvv-5-:SMTPCORP X-Report-Abuse: Please forward a copy of this message, including all headers, to Subject: [FFmpeg-devel] [PATCH 1/3] avformat/hlsenc: revamped master playlist url creation logic 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: Vishwanath Dixit MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Vishwanath Dixit --- libavformat/hlsenc.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 7dc8f42..fa44760 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -1612,28 +1612,30 @@ static int update_variant_stream_info(AVFormatContext *s) { static int update_master_pl_info(AVFormatContext *s) { HLSContext *hls = s->priv_data; - int m3u8_name_size, ret; - char *p; + const char *dir; + char *fn; + int ret = 0; - m3u8_name_size = strlen(s->filename) + strlen(hls->master_pl_name) + 1; - hls->master_m3u8_url = av_malloc(m3u8_name_size); - if (!hls->master_m3u8_url) { + fn = av_strdup(s->filename); + if (!fn) { ret = AVERROR(ENOMEM); - return ret; + goto fail; } - av_strlcpy(hls->master_m3u8_url, s->filename, m3u8_name_size); - p = strrchr(hls->master_m3u8_url, '/') ? - strrchr(hls->master_m3u8_url, '/') : - strrchr(hls->master_m3u8_url, '\\'); - if (p) { - *(p + 1) = '\0'; - av_strlcat(hls->master_m3u8_url, hls->master_pl_name, m3u8_name_size); - } else { - av_strlcpy(hls->master_m3u8_url, hls->master_pl_name, m3u8_name_size); + dir = av_dirname(fn); + if (dir && strcmp(dir, ".")) + hls->master_m3u8_url = av_append_path_component(dir, hls->master_pl_name); + else + hls->master_m3u8_url = av_strdup(hls->master_pl_name); + + if (!hls->master_m3u8_url) { + ret = AVERROR(ENOMEM); + goto fail; } - return 0; +fail: + av_freep(&fn); + return ret; } static int hls_write_header(AVFormatContext *s)