aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2016-08-03 20:34:20 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2016-08-04 23:22:54 +0200
commit82a33c8d858498fc4e0b8ab93ad323a05dfd5168 (patch)
treea6b3a17bbf86daec3abc146544a9889a64ec1e3c
parentbe63ef3c4e6399a3ef8d22cc25e9cb3575cf74ae (diff)
downloadffmpeg-82a33c8d858498fc4e0b8ab93ad323a05dfd5168.tar.gz
avformat: Add av_get_frame_filename2() and AV_FRAME_FILENAME_FLAGS_MULTIPLE
This will be used to allow writing file sequences using the tee output onto multiple places in parallel Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--doc/APIchanges3
-rw-r--r--libavformat/avformat.h7
-rw-r--r--libavformat/utils.c9
-rw-r--r--libavformat/version.h2
4 files changed, 18 insertions, 3 deletions
diff --git a/doc/APIchanges b/doc/APIchanges
index bcd329fe0c..209ab41822 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,9 @@ libavutil: 2015-08-28
API changes, most recent first:
+2016-08-04 - xxxxxxx - lavf 57.46.100 - avformat.h
+ Add av_get_frame_filename2()
+
2016-07-09 - xxxxxxx / 90f469a - lavc 57.50.100 / 57.20.0 - avcodec.h
Add FF_PROFILE_H264_MULTIVIEW_HIGH and FF_PROFILE_H264_STEREO_HIGH.
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index b9fbb06560..d8a6cf3392 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -2720,6 +2720,9 @@ void av_dump_format(AVFormatContext *ic,
const char *url,
int is_output);
+
+#define AV_FRAME_FILENAME_FLAGS_MULTIPLE 1 ///< Allow multiple %d
+
/**
* Return in 'buf' the path with '%d' replaced by a number.
*
@@ -2730,8 +2733,12 @@ void av_dump_format(AVFormatContext *ic,
* @param buf_size destination buffer size
* @param path numbered sequence string
* @param number frame number
+ * @param flags AV_FRAME_FILENAME_FLAGS_*
* @return 0 if OK, -1 on format error
*/
+int av_get_frame_filename2(char *buf, int buf_size,
+ const char *path, int number, int flags);
+
int av_get_frame_filename(char *buf, int buf_size,
const char *path, int number);
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 5a902ea8b0..6b7609ecd2 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -4315,7 +4315,7 @@ uint64_t ff_ntp_time(void)
return (av_gettime() / 1000) * 1000 + NTP_OFFSET_US;
}
-int av_get_frame_filename(char *buf, int buf_size, const char *path, int number)
+int av_get_frame_filename2(char *buf, int buf_size, const char *path, int number, int flags)
{
const char *p;
char *q, buf1[20], c;
@@ -4340,7 +4340,7 @@ int av_get_frame_filename(char *buf, int buf_size, const char *path, int number)
case '%':
goto addchar;
case 'd':
- if (percentd_found)
+ if (!(flags & AV_FRAME_FILENAME_FLAGS_MULTIPLE) && percentd_found)
goto fail;
percentd_found = 1;
if (number < 0)
@@ -4370,6 +4370,11 @@ fail:
return -1;
}
+int av_get_frame_filename(char *buf, int buf_size, const char *path, int number)
+{
+ return av_get_frame_filename2(buf, buf_size, path, number, 0);
+}
+
void av_url_split(char *proto, int proto_size,
char *authorization, int authorization_size,
char *hostname, int hostname_size,
diff --git a/libavformat/version.h b/libavformat/version.h
index 8899bfde0c..07df4072c5 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -32,7 +32,7 @@
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium)
// Also please add any ticket numbers that you belive might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 57
-#define LIBAVFORMAT_VERSION_MINOR 45
+#define LIBAVFORMAT_VERSION_MINOR 46
#define LIBAVFORMAT_VERSION_MICRO 100
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \