avformat/dashenc: Support HTTP Persistent for master.m3u8 as well
authorkjeyapal@akamai.com <kjeyapal@akamai.com>
Thu, 18 Oct 2018 06:19:51 +0000 (11:49 +0530)
committerKarthick J <kjeyapal@akamai.com>
Sun, 21 Oct 2018 10:56:32 +0000 (16:26 +0530)
libavformat/dashenc.c

index 3f5f290..15b84a0 100644 (file)
@@ -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;