mirror of https://git.ffmpeg.org/ffmpeg.git
lavf/avio: Extend API with avio_move() and avio_delete()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
8fb672b50a
commit
80e18bb486
|
@ -15,6 +15,10 @@ libavutil: 2014-08-09
|
|||
|
||||
API changes, most recent first:
|
||||
|
||||
2015-xx-xx - xxxxxxx - lavf 56.38.100 - avio.h url.h
|
||||
Add avio_move(), avio_delete().
|
||||
Extend URLProtocol with url_move(), url_delete().
|
||||
|
||||
-------- 8< --------- FFmpeg 2.7 was cut here -------- 8< ---------
|
||||
|
||||
2015-06-04 - cc17b43 - lswr 1.2.100
|
||||
|
|
|
@ -421,6 +421,44 @@ int avio_check(const char *url, int flags)
|
|||
return ret;
|
||||
}
|
||||
|
||||
int avio_move(const char *url_src, const char *url_dst)
|
||||
{
|
||||
URLContext *h_src, *h_dst;
|
||||
int ret = ffurl_alloc(&h_src, url_src, AVIO_FLAG_READ_WRITE, NULL);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = ffurl_alloc(&h_dst, url_dst, AVIO_FLAG_WRITE, NULL);
|
||||
if (ret < 0) {
|
||||
ffurl_close(h_src);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (h_src->prot == h_dst->prot && h_src->prot->url_move)
|
||||
ret = h_src->prot->url_move(h_src, h_dst);
|
||||
else
|
||||
ret = AVERROR(ENOSYS);
|
||||
|
||||
ffurl_close(h_src);
|
||||
ffurl_close(h_dst);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int avio_delete(const char *url)
|
||||
{
|
||||
URLContext *h;
|
||||
int ret = ffurl_alloc(&h, url, AVIO_FLAG_WRITE, NULL);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (h->prot->url_delete)
|
||||
ret = h->prot->url_delete(h);
|
||||
else
|
||||
ret = AVERROR(ENOSYS);
|
||||
|
||||
ffurl_close(h);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options)
|
||||
{
|
||||
URLContext *h = NULL;
|
||||
|
|
|
@ -229,6 +229,25 @@ const char *avio_find_protocol_name(const char *url);
|
|||
*/
|
||||
int avio_check(const char *url, int flags);
|
||||
|
||||
/**
|
||||
* Move or rename a resource.
|
||||
*
|
||||
* @note url_src and url_dst should share the same protocol and authority.
|
||||
*
|
||||
* @param url_src url to resource to be moved
|
||||
* @param url_dst new url to resource if the operation succeeded
|
||||
* @return >=0 on success or negative on error.
|
||||
*/
|
||||
int avio_move(const char *url_src, const char *url_dst);
|
||||
|
||||
/**
|
||||
* Delete a resource.
|
||||
*
|
||||
* @param url resource to be deleted.
|
||||
* @return >=0 on success or negative on error.
|
||||
*/
|
||||
int avio_delete(const char *url);
|
||||
|
||||
/**
|
||||
* Open directory for reading.
|
||||
*
|
||||
|
|
|
@ -90,6 +90,8 @@ typedef struct URLProtocol {
|
|||
int (*url_open_dir)(URLContext *h);
|
||||
int (*url_read_dir)(URLContext *h, AVIODirEntry **next);
|
||||
int (*url_close_dir)(URLContext *h);
|
||||
int (*url_delete)(URLContext *h);
|
||||
int (*url_move)(URLContext *h_src, URLContext *h_dst);
|
||||
} URLProtocol;
|
||||
|
||||
/**
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#include "libavutil/version.h"
|
||||
|
||||
#define LIBAVFORMAT_VERSION_MAJOR 56
|
||||
#define LIBAVFORMAT_VERSION_MINOR 37
|
||||
#define LIBAVFORMAT_VERSION_MINOR 38
|
||||
#define LIBAVFORMAT_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||
|
|
Loading…
Reference in New Issue