From patchwork Thu Jan 18 09:09:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brendan McGrath X-Patchwork-Id: 7326 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.78.2 with SMTP id r2csp6642129jaa; Thu, 18 Jan 2018 01:10:11 -0800 (PST) X-Google-Smtp-Source: ACJfBou8tIQPzI3PSKkYqDCHSLYhJSF+dBQlsIDb1G71jC/TcvThXzJ/WJvr/OhKKgBko57BOFAT X-Received: by 10.223.160.55 with SMTP id k52mr5229068wrk.5.1516266611027; Thu, 18 Jan 2018 01:10:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516266610; cv=none; d=google.com; s=arc-20160816; b=MeMMw8IDUwIyquwi2s1SI87Bl9ZEQniqWGcg1/S5usgU+ObC+fAf5eTCcRVmZ3jke7 TkLS09zzOHOzflIsQKo/SAs1EjafcxNyXJiDTBzTsmHbarf9QGII/bO7AnFKC6JNLU6x Vy0cx4VVBPk4dxrG49cY3vfKLTGtV5uz9xUZAMUcNeUNnKrA2RDm1oZ6ADO6xSq6U4KC koS8zpKiZdSm6TvKhdrnMDNscX3rBa61PLREQKBks3PHLfnWrQ5mKP+ZcOniDjq/TFVr piVG2I32DYWV3gkD48EWzntCZ73oNPW2ksfC9LLK1XNXIX0pnd3EY/4je3VW5fldqawa HH5w== 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:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=HsQKyKqK8JoqVy92w5nJnwar2XupISKOXN+BIYnyCsQ=; b=ad8l7WoYA+1rHEOKa+EC4pPa9du0Ea4s37Wioohx9bvhixYadjvyFS739nw56c5YR+ 6RGNlk6m0rcKUfVFYk7Br6cbEOxfv0hv3miiok/v9w74tJMz8FhLTEfIPO0E7aNNBDI0 K2q9M7idWZCHdPEpztE0LeJUvioxFAyTEWSoczRKdD1yASdADjSGCAJ0bGP/3swQOaqG C9wKnJ/hdVbUu+cfnZcq58tqFEVKAudjki6LkMXKFAkfC7Q1oFaDYstrzg4GHxSRz/k7 vlS62dQFPg/AT9KuhP3++ZiK0Ky1h4n8AwHAngnUGbewM5Uoa6JAS6twaHFbwz5oySg0 OrMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@hermana.com.au header.s=2016 header.b=b1FJ6+Rl; 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 a18si6002216wrg.175.2018.01.18.01.10.10; Thu, 18 Jan 2018 01:10:10 -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=@hermana.com.au header.s=2016 header.b=b1FJ6+Rl; 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 BA6FE68A1B2; Thu, 18 Jan 2018 11:10:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.hermana.com.au (ec2-13-54-119-68.ap-southeast-2.compute.amazonaws.com [13.54.119.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 67911689FBB for ; Thu, 18 Jan 2018 11:10:01 +0200 (EET) Received: from brendan-desktop.localdomain (2001-44b8-412c-1c00-8524-484e-83b2-89c0.static.ipv6.internode.on.net [IPv6:2001:44b8:412c:1c00:8524:484e:83b2:89c0]) by mail.hermana.com.au (Postfix) with ESMTPSA id B432C19B; Thu, 18 Jan 2018 09:09:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hermana.com.au; s=2016; t=1516266597; bh=xBNCqSzJZTcY2FY0+FtlkUF9++QtCEIelnQ7J6XyE7U=; h=From:To:Cc:Subject:Date:From; b=b1FJ6+RlZW1Fa1yhnCClf5LPHmRFn7xvluwXYTdfHNPhCFqlYcS1jixtK7uj0ar5k jCa/MsVyo3OpWplMAMkajTv0JIdVsXwbBKX63jCRMOvYcAMwE6yGsAo89Oe5SDu67p r1O+Th4myP4Ldiw8uNZ9THShV6hYdEvEwxZbzvLM= From: Brendan McGrath To: ffmpeg-devel@ffmpeg.org, Steven Liu , Christian Suloway , Vishwanath Dixit , Karthick Jeyapal Date: Thu, 18 Jan 2018 20:09:47 +1100 Message-Id: <1516266587-4368-1-git-send-email-redmcg@redmandi.dyndns.org> X-Mailer: git-send-email 2.7.4 Subject: [FFmpeg-devel] [PATCH] avformat/hlsenc: Dont write stream info for agroup 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: Brendan McGrath MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" When using an 'agroup' within var_stream_map - the audio stream is being added to the master playlist file as both an audio rendition and an individual stream (with an AUDIO reference back to itself). This patch ensures an audio rendition does not also appear within the stream info list. What follows is an example of the command to create this issue and the contents of the master playlist before and after this patch is applied: ffmpeg -i in.ts -b:a:0 128k -b:v:0 1800k -b:v:1 1024k -map 0:a \ -map 0:v -map 0:v -f hls -var_stream_map "a:0,agroup:audio_0 "\ "v:0,agroup:audio_0 v:1,agroup:audio_0" -master_pl_name \ tv_hls.m3u8 tv_hls_%v.m3u8 Before: #EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_audio_0",NAME="audio_0",DEFAULT=YES,URI="tv_hls_0.m3u8" #EXT-X-STREAM-INF:BANDWIDTH=140800,AUDIO="group_audio_0" tv_hls_0.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2120800,RESOLUTION=1920x1080,AUDIO="group_audio_0" tv_hls_1.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1267200,RESOLUTION=1920x1080,AUDIO="group_audio_0" tv_hls_2.m3u8 After: #EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="group_audio_0",NAME="audio_0",DEFAULT=YES,URI="tv_hls_0.m3u8" #EXT-X-STREAM-INF:BANDWIDTH=2120800,RESOLUTION=1920x1080,AUDIO="group_audio_0" tv_hls_1.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1267200,RESOLUTION=1920x1080,AUDIO="group_audio_0" tv_hls_2.m3u8 Signed-off-by: Brendan McGrath --- Pre-patch - the hls stream I was testing would not play on the iOS devices I was testing with. With the patch applied - they now play the stream libavformat/hlsenc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index e36120c..a75853b 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -1172,6 +1172,9 @@ static int create_master_playlist(AVFormatContext *s, for (i = 0; i < hls->nb_varstreams; i++) { vs = &(hls->var_streams[i]); + if (!vs->has_video && !vs->has_subtitle && vs->agroup) + continue; + m3u8_name_size = strlen(vs->m3u8_name) + 1; m3u8_rel_name = av_malloc(m3u8_name_size); if (!m3u8_rel_name) {