[FFmpeg-cvslog] ffmpeg_opt: Fix handling of creation_time now

Michael Niedermayer git at videolan.org
Sun Jun 21 05:08:32 CEST 2015


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Jun 21 04:52:08 2015 +0200| [54649cbda890b54dad0e76ae8886cb291be58a03] | committer: Michael Niedermayer

ffmpeg_opt: Fix handling of creation_time now

Fixes Ticket4495

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=54649cbda890b54dad0e76ae8886cb291be58a03
---

 ffmpeg_opt.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
index 69222de..a746405 100644
--- a/ffmpeg_opt.c
+++ b/ffmpeg_opt.c
@@ -40,6 +40,7 @@
 #include "libavutil/parseutils.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/pixfmt.h"
+#include "libavutil/time_internal.h"
 
 #define MATCH_PER_STREAM_OPT(name, type, outvar, fmtctx, st)\
 {\
@@ -2237,6 +2238,7 @@ loop_end:
         char type, *val;
         const char *stream_spec;
         int index = 0, j, ret = 0;
+        char now_time[256];
 
         val = strchr(o->metadata[i].u.str, '=');
         if (!val) {
@@ -2246,6 +2248,17 @@ loop_end:
         }
         *val++ = 0;
 
+        if (!strcmp(o->metadata[i].u.str, "creation_time") &&
+            !strcmp(val, "now")) {
+            time_t now = time(0);
+            struct tm *ptm, tmbuf;
+            ptm = localtime_r(&now, &tmbuf);
+            if (ptm) {
+                if (strftime(now_time, sizeof(now_time), "%Y-%m-%d %H:%M:%S", ptm))
+                    val = now_time;
+            }
+        }
+
         parse_meta_type(o->metadata[i].specifier, &type, &index, &stream_spec);
         if (type == 's') {
             for (j = 0; j < oc->nb_streams; j++) {



More information about the ffmpeg-cvslog mailing list