Make av_cmp_q() work with infinities and NAN.

Originally committed as revision 25338 to svn://svn.ffmpeg.org/ffmpeg/trunk
oldabi
Michael Niedermayer 14 years ago
parent cfa5a81ea6
commit dec1126915
  1. 2
      libavutil/avutil.h
  2. 5
      libavutil/rational.h

@ -41,7 +41,7 @@
#define LIBAVUTIL_VERSION_MAJOR 50 #define LIBAVUTIL_VERSION_MAJOR 50
#define LIBAVUTIL_VERSION_MINOR 32 #define LIBAVUTIL_VERSION_MINOR 32
#define LIBAVUTIL_VERSION_MICRO 1 #define LIBAVUTIL_VERSION_MICRO 2
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \ LIBAVUTIL_VERSION_MINOR, \

@ -29,6 +29,7 @@
#define AVUTIL_RATIONAL_H #define AVUTIL_RATIONAL_H
#include <stdint.h> #include <stdint.h>
#include <limits.h>
#include "attributes.h" #include "attributes.h"
/** /**
@ -49,7 +50,9 @@ static inline int av_cmp_q(AVRational a, AVRational b){
const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den; const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den;
if(tmp) return ((tmp ^ a.den ^ b.den)>>63)|1; if(tmp) return ((tmp ^ a.den ^ b.den)>>63)|1;
else return 0; else if(b.den && a.den) return 0;
else if(a.num && b.num) return (a.num>>31) - (b.num>>31);
else return INT_MIN;
} }
/** /**

Loading…
Cancel
Save