X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=libavformat%2Fhlsplaylist.c;h=0537049a978515dac3cf5bc48ffa36cd35f01e63;hb=8161ac2902836032b6f6684aa48275325f8ca9ef;hp=3349eb7ee33eedbc86de247e406ddad8b7acb568;hpb=7a10541109cc04ffddc15f0749139aab80f56ebf;p=ffmpeg diff --git a/libavformat/hlsplaylist.c b/libavformat/hlsplaylist.c index 3349eb7ee33..0537049a978 100644 --- a/libavformat/hlsplaylist.c +++ b/libavformat/hlsplaylist.c @@ -35,8 +35,23 @@ 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, char *language, 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_%d\",DEFAULT=%s,", name_id, is_default ? "YES" : "NO"); + if (language) { + avio_printf(out, "LANGUAGE=\"%s\",", language); + } + avio_printf(out, "URI=\"%s\"\n", filename); +} + void ff_hls_write_stream_info(AVStream *st, AVIOContext *out, - int bandwidth, char *filename) { + int bandwidth, char *filename, char *agroup, + char *codecs, char *ccgroup) { + if (!out || !filename) return; @@ -50,6 +65,12 @@ void ff_hls_write_stream_info(AVStream *st, AVIOContext *out, if (st && st->codecpar->width > 0 && st->codecpar->height > 0) avio_printf(out, ",RESOLUTION=%dx%d", st->codecpar->width, st->codecpar->height); + if (codecs && strlen(codecs) > 0) + avio_printf(out, ",CODECS=\"%s\"", codecs); + if (agroup && strlen(agroup) > 0) + avio_printf(out, ",AUDIO=\"group_%s\"", agroup); + if (ccgroup && strlen(ccgroup) > 0) + avio_printf(out, ",CLOSED-CAPTIONS=\"%s\"", ccgroup); avio_printf(out, "\n%s\n\n", filename); }