[FFmpeg-devel] Patch for timestamp pattern in filename
wm4
nfxjfg at googlemail.com
Wed Jan 28 14:24:37 CET 2015
On Wed, 28 Jan 2015 14:03:06 +0100
Matthijs Tempels <matthijs at townsville.nl> wrote:
> From 15952b6cb38ac2f532a2f35d50e9dc4f8320c1c5 Mon Sep 17 00:00:00 2001
> From: Matthijs Tempels <matthijs at townsville.nl>
> Date: Wed, 28 Jan 2015 13:59:54 +0100
> Subject: [PATCH] Added the %t option to the filename pattern to add a
> yyyyMMdd_HHmmssfff pattern to the filename
>
> ---
> libavformat/utils.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/utils.c b/libavformat/utils.c
> index f6df49b..b57136a 100644
> --- a/libavformat/utils.c
> +++ b/libavformat/utils.c
> @@ -3805,11 +3805,13 @@ int av_get_frame_filename(char *buf, int buf_size, const char *path, int number)
> {
> const char *p;
> char *q, buf1[20], c;
> - int nd, len, percentd_found;
> + int nd, len, percentd_found, percentt_found;
> + struct timeval tv;
>
> q = buf;
> p = path;
> percentd_found = 0;
> + percentt_found = 0;
> for (;;) {
> c = *p++;
> if (c == '\0')
> @@ -3836,6 +3838,20 @@ int av_get_frame_filename(char *buf, int buf_size, const char *path, int number)
> memcpy(q, buf1, len);
> q += len;
> break;
> + case 't':
> + if (percentt_found)
> + goto fail;
> + percentt_found = 1;
> + gettimeofday(&tv, NULL);
> + int milli = tv.tv_usec / 1000;
> + strftime(buf1, sizeof(buf1), "%Y%m%d_%H%M%S", localtime(&tv.tv_sec));
> + sprintf(buf1, "%s%03d", buf1, milli);
This line tries to append some stuff to buf1, but:
- you can't use a string both as source and destination for sprintf
- this can actually overflow the buf1, because strftime can fill it
completely
> + len = strlen(buf1);
> + if ((q - buf + len) > buf_size - 1)
> + goto fail;
> + memcpy(q, buf1, len);
> + q += len;
> + break;
> default:
> goto fail;
> }
> --
> 2.1.0
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
More information about the ffmpeg-devel
mailing list