[FFmpeg-devel] [PATCH] lavc/aacenc: use isfinite to simplify isnan/isinf logic

Ganesh Ajjanagadde gajjanagadde at gmail.com
Fri Jan 15 00:30:53 CET 2016


On Thu, Jan 14, 2016 at 6:14 PM, Claudio Freire <klaussfreire at gmail.com> wrote:
> On Thu, Jan 14, 2016 at 7:57 PM, Ganesh Ajjanagadde
> <gajjanagadde at gmail.com> wrote:
>> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
>> ---
>>  libavcodec/aacenc.c | 17 +++++++++--------
>>  1 file changed, 9 insertions(+), 8 deletions(-)
>>
>> diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
>> index 9a7d3a8..2e0db7d 100644
>> --- a/libavcodec/aacenc.c
>> +++ b/libavcodec/aacenc.c
>> @@ -29,6 +29,7 @@
>>   * add sane pulse detection
>>   ***********************************/
>>
>> +#include "libavutil/libm.h"
>>  #include "libavutil/thread.h"
>>  #include "libavutil/float_dsp.h"
>>  #include "libavutil/opt.h"
>> @@ -606,14 +607,14 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
>>                  s->mdct1024.mdct_calc(&s->mdct1024, sce->lcoeffs, sce->ret_buf);
>>              }
>>
>> -            if (isnan(cpe->ch->coeffs[    0]) || isinf(cpe->ch->coeffs[    0]) ||
>> -                isnan(cpe->ch->coeffs[  128]) || isinf(cpe->ch->coeffs[  128]) ||
>> -                isnan(cpe->ch->coeffs[2*128]) || isinf(cpe->ch->coeffs[2*128]) ||
>> -                isnan(cpe->ch->coeffs[3*128]) || isinf(cpe->ch->coeffs[3*128]) ||
>> -                isnan(cpe->ch->coeffs[4*128]) || isinf(cpe->ch->coeffs[4*128]) ||
>> -                isnan(cpe->ch->coeffs[5*128]) || isinf(cpe->ch->coeffs[5*128]) ||
>> -                isnan(cpe->ch->coeffs[6*128]) || isinf(cpe->ch->coeffs[6*128]) ||
>> -                isnan(cpe->ch->coeffs[7*128]) || isinf(cpe->ch->coeffs[7*128])
>> +            if (!(isfinite(cpe->ch->coeffs[    0]) &&
>> +                  isfinite(cpe->ch->coeffs[  128]) &&
>> +                  isfinite(cpe->ch->coeffs[2*128]) &&
>> +                  isfinite(cpe->ch->coeffs[3*128]) &&
>> +                  isfinite(cpe->ch->coeffs[4*128]) &&
>> +                  isfinite(cpe->ch->coeffs[5*128]) &&
>> +                  isfinite(cpe->ch->coeffs[6*128]) &&
>> +                  isfinite(cpe->ch->coeffs[7*128]))
>>              ) {
>>                  av_log(avctx, AV_LOG_ERROR, "Input contains NaN/+-Inf\n");
>>                  return AVERROR(EINVAL);
>
>
> lgtm

pushed, thanks


More information about the ffmpeg-devel mailing list