[FFmpeg-cvslog] avformat: Accept the ISO8601 separate format as input, too
Martin Storsjö
git at videolan.org
Thu Nov 17 03:01:33 CET 2011
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Tue Nov 8 00:12:09 2011 +0200| [18579f08e73d8b072952b7e388c55ab407db0ec7] | committer: Martin Storsjö
avformat: Accept the ISO8601 separate format as input, too
This makes the function accept the format of creation_time
as output by demuxers (e.g. the mov demuxer), making the
creation timestamp stay intact if transcoding.
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=18579f08e73d8b072952b7e388c55ab407db0ec7
---
libavformat/utils.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index dfcac20..b8262ec 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -3943,9 +3943,14 @@ void ff_make_absolute_url(char *buf, int size, const char *base,
int64_t ff_iso8601_to_unix_time(const char *datestr)
{
#if HAVE_STRPTIME
- struct tm time = {0};
- strptime(datestr, "%Y - %m - %dT%T", &time);
- return av_timegm(&time);
+ struct tm time1 = {0}, time2 = {0};
+ char *ret1, *ret2;
+ ret1 = strptime(datestr, "%Y - %m - %d %T", &time1);
+ ret2 = strptime(datestr, "%Y - %m - %dT%T", &time2);
+ if (ret2 && !ret1)
+ return av_timegm(&time2);
+ else
+ return av_timegm(&time1);
#else
av_log(NULL, AV_LOG_WARNING, "strptime() unavailable on this system, cannot convert "
"the date string.\n");
More information about the ffmpeg-cvslog
mailing list