[FFmpeg-cvslog] r21735 - trunk/libavutil/internal.h

Måns Rullgård mans
Fri Feb 19 20:44:04 CET 2010


Michael Kostylev <michael.kostylev at gmail.com> writes:

> On Fri Feb 19 18:30:08 2010
> M?ns Rullg?rd wrote:
>
>>>>> On Tue Feb  9 23:55:16 2010
>>>>> mru wrote:
>>>>>
>>>>>> Define missing llrint() as macro instead of inline function
>>>>>> 
>>>>>> This fixes building on some broken systems.
>>>>>> 
>>>>>> Modified:
>>>>>>    trunk/libavutil/internal.h
>>>>>> 
>>>>>> Modified: trunk/libavutil/internal.h
>>>>>> ==============================================================================
>>>>>> --- trunk/libavutil/internal.h	Tue Feb  9 23:55:13 2010	(r21734)
>>>>>> +++ trunk/libavutil/internal.h	Tue Feb  9 23:55:16 2010	(r21735)
>>>>>> @@ -225,10 +225,8 @@ static inline av_const unsigned int ff_s
>>>>>>  #endif /* HAVE_EXP2F */
>>>>>>  
>>>>>>  #if !HAVE_LLRINT
>>>>>> -static av_always_inline av_const long long llrint(double x)
>>>>>> -{
>>>>>> -    return rint(x);
>>>>>> -}
>>>>>> +#undef llrint
>>>>>> +#define llrint(x) rint(x)
>>>>>
>>>>> The dos machine is unhappy with this macro.
>>>> 
>>>> Please elaborate.
>>>
>>> A bunch of tests from the regression suite and the idroq-video-encode
>>> test no longer pass since r21735 (reverting it or applying a quick
>>> hack attached in the previous message make them pass again).
>> 
>> Weird.  Which call to llrint() is causing the trouble?
>
> libavcodec/opt.c, line 67:
>     case FF_OPT_TYPE_INT:   *(int       *)dst= llrint(num/den)*intnum; break;

Applying your cast to that expression should have no effect at all
since the usual arithmetic conversions already specify that action.

Do I smell a broken compiler?

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-cvslog mailing list