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

Don Moir donmoir at comcast.net
Mon Aug 26 21:59:39 CEST 2013


----- Original Message ----- 
From: "Don Moir" <donmoir at comcast.net>
To: "FFmpeg development discussions and patches" <ffmpeg-devel at ffmpeg.org>
Sent: Monday, August 26, 2013 2:21 PM
Subject: Re: [FFmpeg-devel] [PATCH] Work around msvc (c99wrap) build failure


> 
> ----- 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

yeah just thought i would mention it...


More information about the ffmpeg-devel mailing list