diff options
author | Marton Balint <cus@passwd.hu> | 2020-01-05 16:32:51 +0100 |
---|---|---|
committer | Marton Balint <cus@passwd.hu> | 2020-01-19 22:17:04 +0100 |
commit | 19b9f8996e1a6a17830123b4bc22dbc735c1570e (patch) | |
tree | d342365ed6e117ed70298fed04acc2741fe101ec /libavformat/avio.c | |
parent | df993269ecb970502a0ecdbe21f35e376fc9194c (diff) | |
download | ffmpeg-19b9f8996e1a6a17830123b4bc22dbc735c1570e.tar.gz |
avformat/avio: fix ff_rename to respect used protocol
Also simplify it and make it always log the error.
This fixes for example the image2 muxer when used with an URL which also
contains the protocol:
ffmpeg -f lavfi -i testsrc -vframes 10 -atomic_writing 1 file:out%d.png
Signed-off-by: Marton Balint <cus@passwd.hu>
Diffstat (limited to 'libavformat/avio.c')
-rw-r--r-- | libavformat/avio.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/libavformat/avio.c b/libavformat/avio.c index 8c2c85f171..65cfc0f4bb 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -667,16 +667,10 @@ int ff_check_interrupt(AVIOInterruptCB *cb) return 0; } -int ff_rename(const char *oldpath, const char *newpath, void *logctx) +int ff_rename(const char *url_src, const char *url_dst, void *logctx) { - int ret = 0; - if (rename(oldpath, newpath) == -1) { - ret = AVERROR(errno); - if (logctx) { - char err[AV_ERROR_MAX_STRING_SIZE] = {0}; - av_make_error_string(err, AV_ERROR_MAX_STRING_SIZE, ret); - av_log(logctx, AV_LOG_ERROR, "failed to rename file %s to %s: %s\n", oldpath, newpath, err); - } - } + int ret = avpriv_io_move(url_src, url_dst); + if (ret < 0) + av_log(logctx, AV_LOG_ERROR, "failed to rename file %s to %s: %s\n", url_src, url_dst, av_err2str(ret)); return ret; } |