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, \