|
|
|
@ -878,14 +878,14 @@ static int write_manifest(AVFormatContext *s, int final) |
|
|
|
|
snprintf(temp_filename, sizeof(temp_filename), use_rename ? "%s.tmp" : "%s", filename_hls); |
|
|
|
|
|
|
|
|
|
set_http_options(&opts, c); |
|
|
|
|
ret = avio_open2(&out, temp_filename, AVIO_FLAG_WRITE, NULL, &opts); |
|
|
|
|
ret = dashenc_io_open(s, &c->m3u8_out, temp_filename, &opts); |
|
|
|
|
if (ret < 0) { |
|
|
|
|
av_log(s, AV_LOG_ERROR, "Unable to open %s for writing\n", temp_filename); |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
av_dict_free(&opts); |
|
|
|
|
|
|
|
|
|
ff_hls_write_playlist_version(out, 7); |
|
|
|
|
ff_hls_write_playlist_version(c->m3u8_out, 7); |
|
|
|
|
|
|
|
|
|
for (i = 0; i < s->nb_streams; i++) { |
|
|
|
|
char playlist_file[64]; |
|
|
|
@ -894,7 +894,7 @@ static int write_manifest(AVFormatContext *s, int final) |
|
|
|
|
if (st->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) |
|
|
|
|
continue; |
|
|
|
|
get_hls_playlist_name(playlist_file, sizeof(playlist_file), NULL, i); |
|
|
|
|
ff_hls_write_audio_rendition(out, (char *)audio_group, |
|
|
|
|
ff_hls_write_audio_rendition(c->m3u8_out, (char *)audio_group, |
|
|
|
|
playlist_file, i, is_default); |
|
|
|
|
max_audio_bitrate = FFMAX(st->codecpar->bit_rate + |
|
|
|
|
os->muxer_overhead, max_audio_bitrate); |
|
|
|
@ -923,10 +923,11 @@ static int write_manifest(AVFormatContext *s, int final) |
|
|
|
|
av_strlcat(codec_str, audio_codec_str, sizeof(codec_str)); |
|
|
|
|
} |
|
|
|
|
get_hls_playlist_name(playlist_file, sizeof(playlist_file), NULL, i); |
|
|
|
|
ff_hls_write_stream_info(st, out, stream_bitrate, playlist_file, agroup, |
|
|
|
|
ff_hls_write_stream_info(st, c->m3u8_out, stream_bitrate, |
|
|
|
|
playlist_file, agroup, |
|
|
|
|
codec_str, NULL); |
|
|
|
|
} |
|
|
|
|
avio_close(out); |
|
|
|
|
dashenc_io_close(s, &c->m3u8_out, temp_filename); |
|
|
|
|
if (use_rename) |
|
|
|
|
if ((ret = avpriv_io_move(temp_filename, filename_hls)) < 0) |
|
|
|
|
return ret; |
|
|
|
|