[FFmpeg-cvslog] avformat/hlsenc: don't use %s for strftime on msvc

Hendrik Leppkes git at videolan.org
Sat Feb 25 05:28:38 EET 2017


ffmpeg | branch: master | Hendrik Leppkes <h.leppkes at gmail.com> | Sat Feb 25 11:23:50 2017 +0800| [3aef2fceff3205605aed19f8a81b56db56496631] | committer: Steven Liu

avformat/hlsenc: don't use %s for strftime on msvc

MSVC doesn't support the %s time format, and instead of returning an
error the invalid parameter handler is invoked which (by default)
terminates the process.

Reviewed-by:Steven Liu <lq at chinaffmpeg.org>
Signed-off-by: Hendrik Leppkes <h.leppkes at gmail.com>

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

 libavformat/hlsenc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 0238705..9cf6211 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -1027,7 +1027,8 @@ static const char * get_default_pattern_localtime_fmt(void)
     struct tm *p, tmbuf;
     p = localtime_r(&t, &tmbuf);
     // no %s support when strftime returned error or left format string unchanged
-    return (!strftime(b, sizeof(b), "%s", p) || !strcmp(b, "%s")) ? "-%Y%m%d%H%M%S.ts" : "-%s.ts";
+    // also no %s support on MSVC, which invokes the invalid parameter handler on unsupported format strings, instead of returning an error
+    return (HAVE_LIBC_MSVCRT || !strftime(b, sizeof(b), "%s", p) || !strcmp(b, "%s")) ? "-%Y%m%d%H%M%S.ts" : "-%s.ts";
 }
 
 static int hls_write_header(AVFormatContext *s)



More information about the ffmpeg-cvslog mailing list