summaryrefslogtreecommitdiff
path: root/libavformat/hdsenc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/hdsenc.c')
-rw-r--r--libavformat/hdsenc.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/libavformat/hdsenc.c b/libavformat/hdsenc.c
index 33d7c3a3a8..b2d82e9925 100644
--- a/libavformat/hdsenc.c
+++ b/libavformat/hdsenc.c
@@ -163,6 +163,7 @@ static int write_manifest(AVFormatContext *s, int final)
HDSContext *c = s->priv_data;
AVIOContext *out;
char filename[1024], temp_filename[1024];
+ const char *write_filename;
int ret, i;
float duration = 0;
@@ -171,10 +172,11 @@ static int write_manifest(AVFormatContext *s, int final)
snprintf(filename, sizeof(filename), "%s/index.f4m", s->filename);
snprintf(temp_filename, sizeof(temp_filename), "%s/index.f4m.tmp", s->filename);
- ret = avio_open2(&out, temp_filename, AVIO_FLAG_WRITE,
+ write_filename = USE_RENAME_REPLACE ? temp_filename : filename;
+ ret = avio_open2(&out, write_filename, AVIO_FLAG_WRITE,
&s->interrupt_callback, NULL);
if (ret < 0) {
- av_log(s, AV_LOG_ERROR, "Unable to open %s for writing\n", temp_filename);
+ av_log(s, AV_LOG_ERROR, "Unable to open %s for writing\n", write_filename);
return ret;
}
avio_printf(out, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
@@ -204,7 +206,7 @@ static int write_manifest(AVFormatContext *s, int final)
avio_printf(out, "</manifest>\n");
avio_flush(out);
avio_close(out);
- return ff_rename(temp_filename, filename, s);
+ return USE_RENAME_REPLACE ? ff_rename(temp_filename, filename, s) : 0;
}
static void update_size(AVIOContext *out, int64_t pos)
@@ -223,6 +225,7 @@ static int write_abst(AVFormatContext *s, OutputStream *os, int final)
HDSContext *c = s->priv_data;
AVIOContext *out;
char filename[1024], temp_filename[1024];
+ const char *write_filename;
int i, ret;
int64_t asrt_pos, afrt_pos;
int start = 0, fragments;
@@ -240,10 +243,11 @@ static int write_abst(AVFormatContext *s, OutputStream *os, int final)
"%s/stream%d.abst", s->filename, index);
snprintf(temp_filename, sizeof(temp_filename),
"%s/stream%d.abst.tmp", s->filename, index);
- ret = avio_open2(&out, temp_filename, AVIO_FLAG_WRITE,
+ write_filename = USE_RENAME_REPLACE ? temp_filename : filename;
+ ret = avio_open2(&out, write_filename, AVIO_FLAG_WRITE,
&s->interrupt_callback, NULL);
if (ret < 0) {
- av_log(s, AV_LOG_ERROR, "Unable to open %s for writing\n", temp_filename);
+ av_log(s, AV_LOG_ERROR, "Unable to open %s for writing\n", write_filename);
return ret;
}
avio_wb32(out, 0); // abst size
@@ -285,7 +289,7 @@ static int write_abst(AVFormatContext *s, OutputStream *os, int final)
update_size(out, afrt_pos);
update_size(out, 0);
avio_close(out);
- return ff_rename(temp_filename, filename, s);
+ return USE_RENAME_REPLACE ? ff_rename(temp_filename, filename, s) : 0;
}
static int init_file(AVFormatContext *s, OutputStream *os, int64_t start_ts)