Browse Source

avformat/hlsenc: Modularized audio rendition playlist write to allow reuse

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
tags/n4.0
Karthick Jeyapal Steven Liu 7 years ago
parent
commit
9e25fe4204
3 changed files with 12 additions and 4 deletions
  1. +2
    -4
      libavformat/hlsenc.c
  2. +9
    -0
      libavformat/hlsplaylist.c
  3. +1
    -0
      libavformat/hlsplaylist.h

+ 2
- 4
libavformat/hlsenc.c View File

@@ -1169,10 +1169,8 @@ static int create_master_playlist(AVFormatContext *s,
goto fail;
}

avio_printf(hls->m3u8_out, "#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=\"group_%s\"",
vs->agroup);
avio_printf(hls->m3u8_out, ",NAME=\"audio_0\",DEFAULT=YES,URI=\"%s\"\n",
m3u8_rel_name);
ff_hls_write_audio_rendition(hls->m3u8_out, vs->agroup, m3u8_rel_name);

av_freep(&m3u8_rel_name);
}



+ 9
- 0
libavformat/hlsplaylist.c View File

@@ -35,6 +35,15 @@ void ff_hls_write_playlist_version(AVIOContext *out, int version) {
avio_printf(out, "#EXT-X-VERSION:%d\n", version);
}

void ff_hls_write_audio_rendition(AVIOContext *out, char *agroup,
char *filename) {
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);
}

void ff_hls_write_stream_info(AVStream *st, AVIOContext *out,
int bandwidth, char *filename, char *agroup) {
if (!out || !filename)


+ 1
- 0
libavformat/hlsplaylist.h View File

@@ -37,6 +37,7 @@ 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_stream_info(AVStream *st, AVIOContext *out,
int bandwidth, char *filename, char *agroup);
void ff_hls_write_playlist_header(AVIOContext *out, int version, int allowcache,


Loading…
Cancel
Save