Re: [FFmpeg-devel] [PATCH] hlsenc: don't use %s for strftime on msvc
2017-02-21 21:31 GMT+08:00 Steven Liu : > > > 2017-02-21 15:26 GMT+08:00 Hendrik Leppkes : > >> On Tue, Feb 21, 2017 at 8:24 AM, Hendrik Leppkes >> wrote: >> > 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. >> > --- >> > libavformat/hlsenc.c | 3 ++- >> > 1 file changed, 2 insertions(+), 1 deletion(-) >> > >> > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c >> > index e673f59710..cf2e3381c4 100644 >> > --- a/libavformat/hlsenc.c >> > +++ b/libavformat/hlsenc.c >> > @@ -1025,7 +1025,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) >> > -- >> > 2.11.0.windows.1 >> > >> >> An alternative would be testing for %s support in configure somehow >> and setting a config variable for that, instead of probing at runtime >> here. >> >> Yes, Agreed! > >> - Hendrik >> ___ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > > > LGTM > Applied! Thanks ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] hlsenc: don't use %s for strftime on msvc
2017-02-21 15:26 GMT+08:00 Hendrik Leppkes : > On Tue, Feb 21, 2017 at 8:24 AM, Hendrik Leppkes > wrote: > > 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. > > --- > > libavformat/hlsenc.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c > > index e673f59710..cf2e3381c4 100644 > > --- a/libavformat/hlsenc.c > > +++ b/libavformat/hlsenc.c > > @@ -1025,7 +1025,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) > > -- > > 2.11.0.windows.1 > > > > An alternative would be testing for %s support in configure somehow > and setting a config variable for that, instead of probing at runtime > here. > > Yes, Agreed! > - Hendrik > ___ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > LGTM ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH] hlsenc: don't use %s for strftime on msvc
On Tue, Feb 21, 2017 at 8:24 AM, Hendrik Leppkes wrote: > 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. > --- > libavformat/hlsenc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c > index e673f59710..cf2e3381c4 100644 > --- a/libavformat/hlsenc.c > +++ b/libavformat/hlsenc.c > @@ -1025,7 +1025,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) > -- > 2.11.0.windows.1 > An alternative would be testing for %s support in configure somehow and setting a config variable for that, instead of probing at runtime here. - Hendrik ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH] 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. --- libavformat/hlsenc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index e673f59710..cf2e3381c4 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -1025,7 +1025,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) -- 2.11.0.windows.1 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel