Commit 454c89dd authored by Ramiro Polla's avatar Ramiro Polla Committed by Michael Niedermayer

img2enc: add option to use strftime() for filename

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent fc6de70c
...@@ -37,6 +37,7 @@ typedef struct { ...@@ -37,6 +37,7 @@ typedef struct {
int split_planes; /**< use independent file for each Y, U, V plane */ int split_planes; /**< use independent file for each Y, U, V plane */
char path[1024]; char path[1024];
int update; int update;
int use_strftime;
} VideoMuxData; } VideoMuxData;
static int write_header(AVFormatContext *s) static int write_header(AVFormatContext *s)
...@@ -77,6 +78,15 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) ...@@ -77,6 +78,15 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
if (!img->is_pipe) { if (!img->is_pipe) {
if (img->update) { if (img->update) {
av_strlcpy(filename, img->path, sizeof(filename)); av_strlcpy(filename, img->path, sizeof(filename));
} else if (img->use_strftime) {
time_t now0;
struct tm *tm;
time(&now0);
tm = localtime(&now0);
if (!strftime(filename, sizeof(filename), img->path, tm)) {
av_log(s, AV_LOG_ERROR, "Could not get frame filename with strftime\n");
return AVERROR(EINVAL);
}
} else if (av_get_frame_filename(filename, sizeof(filename), img->path, img->img_number) < 0 && } else if (av_get_frame_filename(filename, sizeof(filename), img->path, img->img_number) < 0 &&
img->img_number > 1) { img->img_number > 1) {
av_log(s, AV_LOG_ERROR, av_log(s, AV_LOG_ERROR,
...@@ -133,6 +143,7 @@ static const AVOption muxoptions[] = { ...@@ -133,6 +143,7 @@ static const AVOption muxoptions[] = {
{ "updatefirst", "continuously overwrite one file", OFFSET(update), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, ENC }, { "updatefirst", "continuously overwrite one file", OFFSET(update), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, ENC },
{ "update", "continuously overwrite one file", OFFSET(update), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, ENC }, { "update", "continuously overwrite one file", OFFSET(update), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, ENC },
{ "start_number", "set first number in the sequence", OFFSET(img_number), AV_OPT_TYPE_INT, { .i64 = 1 }, 1, INT_MAX, ENC }, { "start_number", "set first number in the sequence", OFFSET(img_number), AV_OPT_TYPE_INT, { .i64 = 1 }, 1, INT_MAX, ENC },
{ "strftime", "use strftime for filename", OFFSET(use_strftime), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, ENC },
{ NULL }, { NULL },
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment