[FFmpeg-devel] [PATCH 2/3] avformat/hlsplaylist: Audio rendition's name and defaultness made configurable

Karthick J kjeyapal at akamai.com
Tue Dec 26 13:11:39 EET 2017


From: Karthick Jeyapal <kjeyapal at akamai.com>

---
 libavformat/hlsenc.c      | 2 +-
 libavformat/hlsplaylist.c | 5 +++--
 libavformat/hlsplaylist.h | 3 ++-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index fe531fb..5cff3b4 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -1169,7 +1169,7 @@ static int create_master_playlist(AVFormatContext *s,
             goto fail;
         }
 
-        ff_hls_write_audio_rendition(hls->m3u8_out, vs->agroup, m3u8_rel_name);
+        ff_hls_write_audio_rendition(hls->m3u8_out, vs->agroup, m3u8_rel_name, 0, 1);
 
         av_freep(&m3u8_rel_name);
     }
diff --git a/libavformat/hlsplaylist.c b/libavformat/hlsplaylist.c
index a065eda..098dc89 100644
--- a/libavformat/hlsplaylist.c
+++ b/libavformat/hlsplaylist.c
@@ -36,12 +36,13 @@ void ff_hls_write_playlist_version(AVIOContext *out, int version) {
 }
 
 void ff_hls_write_audio_rendition(AVIOContext *out, char *agroup,
-                                  char *filename) {
+                                  char *filename, int name_id, int is_default) {
     if (!out || !agroup || !filename)
         return;
 
     avio_printf(out, "#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=\"group_%s\"", agroup);
-    avio_printf(out, ",NAME=\"audio_0\",DEFAULT=YES,URI=\"%s\"\n", filename);
+    avio_printf(out, ",NAME=\"audio_%d\",DEFAULT=%s,URI=\"%s\"\n", name_id,
+                     is_default ? "YES" : "NO", filename);
 }
 
 void ff_hls_write_stream_info(AVStream *st, AVIOContext *out,
diff --git a/libavformat/hlsplaylist.h b/libavformat/hlsplaylist.h
index 518cfc2..9969315 100644
--- a/libavformat/hlsplaylist.h
+++ b/libavformat/hlsplaylist.h
@@ -37,7 +37,8 @@ typedef enum {
 } PlaylistType;
 
 void ff_hls_write_playlist_version(AVIOContext *out, int version);
-void ff_hls_write_audio_rendition(AVIOContext *out, char *agroup, char *filename);
+void ff_hls_write_audio_rendition(AVIOContext *out, char *agroup,
+                                  char *filename, int name_id, int is_default);
 void ff_hls_write_stream_info(AVStream *st, AVIOContext *out,
                               int bandwidth, char *filename, char *agroup);
 void ff_hls_write_playlist_header(AVIOContext *out, int version, int allowcache,
-- 
1.9.1



More information about the ffmpeg-devel mailing list