[FFmpeg-devel] [PATCH] Work around msvc (c99wrap) build failure

Michael Niedermayer michaelni at gmx.at
Mon Aug 26 21:44:06 CEST 2013


On Mon, Aug 26, 2013 at 02:21:42PM -0400, Don Moir wrote:
> 
> ----- Original Message ----- From: "Pavel Koshevoy"
> <pkoshevoy at gmail.com>
> To: <ffmpeg-devel at ffmpeg.org>
> Sent: Monday, August 26, 2013 12:59 AM
> Subject: Re: [FFmpeg-devel] [PATCH] Work around msvc (c99wrap) build failure
> 
> 
> >On 8/25/13 10:16 PM, Michael Niedermayer wrote:
> >>On Sun, Aug 25, 2013 at 09:57:45PM -0600, Pavel Koshevoy wrote:
> >>>On 8/25/13 9:13 PM, Michael Niedermayer wrote:
> >>>>On Sun, Aug 25, 2013 at 06:30:35PM -0600, pkoshevoy at gmail.com wrote:
> >>>>>From: Pavel Koshevoy <pkoshevoy at gmail.com>
> >>>>>
> >>>>>c99wrap choked on initialization of .dbl start_time option with
> >>>>>AV_NOPTS_VALUE: Unable to parse int64_t as expression primary
> >>>>>
> >>>>>Signed-off-by: Pavel Koshevoy <pkoshevoy at gmail.com>
> >>>>>---
> >>>>>  libavfilter/vf_fps.c |    6 ++++--
> >>>>>  1 file changed, 4 insertions(+), 2 deletions(-)
> >>>>>
> >>>>>diff --git a/libavfilter/vf_fps.c b/libavfilter/vf_fps.c
> >>>>>index e30e90b..219bcd1 100644
> >>>>>--- a/libavfilter/vf_fps.c
> >>>>>+++ b/libavfilter/vf_fps.c
> >>>>>@@ -25,6 +25,8 @@
> >>>>>   * a filter enforcing given constant framerate
> >>>>>   */
> >>>>>+#include <float.h>
> >>>>>+
> >>>>>  #include "libavutil/common.h"
> >>>>>  #include "libavutil/fifo.h"
> >>>>>  #include "libavutil/mathematics.h"
> >>>>>@@ -61,7 +63,7 @@ typedef struct FPSContext {
> >>>>>  #define F AV_OPT_FLAG_FILTERING_PARAM
> >>>>>  static const AVOption fps_options[] = {
> >>>>>      { "fps", "A string describing desired output
> >>>>>framerate", OFFSET(framerate), AV_OPT_TYPE_VIDEO_RATE, {
> >>>>>.str = "25" }, .flags = V|F },
> >>>>>-    { "start_time", "Assume the first PTS should be this
> >>>>>value.", OFFSET(start_time), AV_OPT_TYPE_DOUBLE, { .dbl =
> >>>>>AV_NOPTS_VALUE}, INT64_MIN, INT64_MAX, V },
> >>>>>+    { "start_time", "Assume the first PTS should be this
> >>>>>value.", OFFSET(start_time), AV_OPT_TYPE_DOUBLE, { .dbl =
> >>>>>DBL_MAX }, -DBL_MAX, DBL_MAX, V },
> >>>>does INT64_MIN work as well ?
> >>>>if so i think its preferable as it has the same nummeric value as
> >>>>AV_NOPTS_VALUE, introducing no change except the fix/workaround
> >>>>(vf_fps.c could check by assert that the 2 match)
> >>>>
> >>>No, INT64_MIN triggers the same error from c99wrap: Unable to parse
> >>>int64_t as expression primary
> >>>
> >>>I suspect c99wrap chokes on the typecast statement.
> >>>
> >>>If I change it to { .dbl = 0 } it compiles fine.
> >>>If I change it to { .dbl = (double)0 } it complains:  Unable to
> >>>parse double as expression primary
> >>next try:
> >>-9223372036854775808.0
> >>
> >>
> >>>I don't see why there is any particular attachment to AV_NOPTS_VALUE
> >>>as initial value for start_time.  It's appears to be just that -- an
> >>its the "not set" value throughout the codebase, also some user
> >>app could be setting that intentionally or unintenionally
> >
> >changing { .dbl = AV_NOPTS_VALUE} to { .dbl = -9223372036854775808.0 } compiles successfully.
> >
> >    Pavel.
> 
> double no_value = -9223372036854775808.0;
> 
> no_value == -9223372036854775800.0

-9223372036854775808.0 == -9223372036854775800.0

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Freedom in capitalist society always remains about the same as it was in
ancient Greek republics: Freedom for slave owners. -- Vladimir Lenin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130826/134c792c/attachment.asc>


More information about the ffmpeg-devel mailing list