From 9ce6c1387988bf3cdb631f3844e99a0c9bea43f2 Mon Sep 17 00:00:00 2001 From: Aurelien Jacobs Date: Sat, 17 Jan 2009 11:13:33 +0000 Subject: [PATCH] export gcd function as av_gcd() Originally committed as revision 16653 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/h263.c | 2 +- libavcodec/libxvidff.c | 4 ++-- libavcodec/mpegvideo_enc.c | 2 +- libavcodec/snow.c | 2 +- libavcodec/utils.c | 2 +- libavformat/mov.c | 4 ++-- libavformat/nutdec.c | 2 +- libavformat/riff.c | 2 +- libavformat/utils.c | 4 ++-- libavutil/avutil.h | 2 +- libavutil/common.h | 3 --- libavutil/mathematics.c | 4 ++-- libavutil/mathematics.h | 2 ++ libavutil/rational.c | 4 ++-- 14 files changed, 19 insertions(+), 20 deletions(-) diff --git a/libavcodec/h263.c b/libavcodec/h263.c index 7b401a42f0..41b4f11eff 100644 --- a/libavcodec/h263.c +++ b/libavcodec/h263.c @@ -5156,7 +5156,7 @@ int h263_decode_picture_header(MpegEncContext *s) av_log(s, AV_LOG_ERROR, "zero framerate\n"); return -1; } - gcd= ff_gcd(s->avctx->time_base.den, s->avctx->time_base.num); + gcd= av_gcd(s->avctx->time_base.den, s->avctx->time_base.num); s->avctx->time_base.den /= gcd; s->avctx->time_base.num /= gcd; // av_log(s->avctx, AV_LOG_DEBUG, "%d/%d\n", s->avctx->time_base.den, s->avctx->time_base.num); diff --git a/libavcodec/libxvidff.c b/libavcodec/libxvidff.c index ac1553f2a8..35104c37cd 100644 --- a/libavcodec/libxvidff.c +++ b/libavcodec/libxvidff.c @@ -557,7 +557,7 @@ void xvid_correct_framerate(AVCodecContext *avctx) { frate = avctx->time_base.den; fbase = avctx->time_base.num; - gcd = ff_gcd(frate, fbase); + gcd = av_gcd(frate, fbase); if( gcd > 1 ) { frate /= gcd; fbase /= gcd; @@ -579,7 +579,7 @@ void xvid_correct_framerate(AVCodecContext *avctx) { } else est_fbase = 1; - gcd = ff_gcd(est_frate, est_fbase); + gcd = av_gcd(est_frate, est_fbase); if( gcd > 1 ) { est_frate /= gcd; est_fbase /= gcd; diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index dc8dd74778..e381598c22 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -464,7 +464,7 @@ av_cold int MPV_encode_init(AVCodecContext *avctx) avctx->b_frame_strategy = 0; } - i= ff_gcd(avctx->time_base.den, avctx->time_base.num); + i= av_gcd(avctx->time_base.den, avctx->time_base.num); if(i > 1){ av_log(avctx, AV_LOG_INFO, "removing common factors from framerate\n"); avctx->time_base.den /= i; diff --git a/libavcodec/snow.c b/libavcodec/snow.c index 0e60d49a01..3f8783be02 100644 --- a/libavcodec/snow.c +++ b/libavcodec/snow.c @@ -4773,7 +4773,7 @@ int main(void){ } error= (int)(sqrt(error)+0.5); errors[level][orientation]= error; - if(g) g=ff_gcd(g, error); + if(g) g=av_gcd(g, error); else g= error; } } diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 0a3773e5ea..74999570da 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -694,7 +694,7 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) display_aspect_ratio.num, display_aspect_ratio.den); } if(av_log_get_level() >= AV_LOG_DEBUG){ - int g= ff_gcd(enc->time_base.num, enc->time_base.den); + int g= av_gcd(enc->time_base.num, enc->time_base.den); snprintf(buf + strlen(buf), buf_size - strlen(buf), ", %d/%d", enc->time_base.num/g, enc->time_base.den/g); diff --git a/libavformat/mov.c b/libavformat/mov.c index 5638d34f80..b510d7cab3 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1172,7 +1172,7 @@ static int mov_read_stts(MOVContext *c, ByteIOContext *pb, MOVAtom atom) sc->stts_data[i].count= sample_count; sc->stts_data[i].duration= sample_duration; - sc->time_rate= ff_gcd(sc->time_rate, sample_duration); + sc->time_rate= av_gcd(sc->time_rate, sample_duration); dprintf(c->fc, "sample_count=%d, sample_duration=%d\n",sample_count,sample_duration); @@ -1215,7 +1215,7 @@ static int mov_read_ctts(MOVContext *c, ByteIOContext *pb, MOVAtom atom) sc->ctts_data[i].count = count; sc->ctts_data[i].duration= duration; - sc->time_rate= ff_gcd(sc->time_rate, FFABS(duration)); + sc->time_rate= av_gcd(sc->time_rate, FFABS(duration)); } return 0; } diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c index 4d838a5e95..02d828a67e 100644 --- a/libavformat/nutdec.c +++ b/libavformat/nutdec.c @@ -206,7 +206,7 @@ static int decode_main_header(NUTContext *nut){ for(i=0; itime_base_count; i++){ GET_V(nut->time_base[i].num, tmp>0 && tmp<(1ULL<<31)) GET_V(nut->time_base[i].den, tmp>0 && tmp<(1ULL<<31)) - if(ff_gcd(nut->time_base[i].num, nut->time_base[i].den) != 1){ + if(av_gcd(nut->time_base[i].num, nut->time_base[i].den) != 1){ av_log(s, AV_LOG_ERROR, "time base invalid\n"); return -1; } diff --git a/libavformat/riff.c b/libavformat/riff.c index ed92187b56..73ebc91e09 100644 --- a/libavformat/riff.c +++ b/libavformat/riff.c @@ -466,7 +466,7 @@ void ff_parse_specific_params(AVCodecContext *stream, int *au_rate, int *au_ssiz *au_scale= stream->block_align ? stream->block_align*8 : 8; *au_rate = stream->bit_rate ? stream->bit_rate : 8*stream->sample_rate; } - gcd= ff_gcd(*au_scale, *au_rate); + gcd= av_gcd(*au_scale, *au_rate); *au_scale /= gcd; *au_rate /= gcd; } diff --git a/libavformat/utils.c b/libavformat/utils.c index a675048744..1778bba973 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2727,7 +2727,7 @@ static void dump_stream_format(AVFormatContext *ic, int i, int index, int is_out char buf[256]; int flags = (is_output ? ic->oformat->flags : ic->iformat->flags); AVStream *st = ic->streams[i]; - int g = ff_gcd(st->time_base.num, st->time_base.den); + int g = av_gcd(st->time_base.num, st->time_base.den); avcodec_string(buf, sizeof(buf), st->codec, is_output); av_log(NULL, AV_LOG_INFO, " Stream #%d.%d", index, i); /* the pid is an important information, so we display it */ @@ -3192,7 +3192,7 @@ char *ff_data_to_hex(char *buff, const uint8_t *src, int s) void av_set_pts_info(AVStream *s, int pts_wrap_bits, int pts_num, int pts_den) { - unsigned int gcd= ff_gcd(pts_num, pts_den); + unsigned int gcd= av_gcd(pts_num, pts_den); s->pts_wrap_bits = pts_wrap_bits; s->time_base.num = pts_num/gcd; s->time_base.den = pts_den/gcd; diff --git a/libavutil/avutil.h b/libavutil/avutil.h index ad5af25703..68a780e8b9 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -35,7 +35,7 @@ #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) #define LIBAVUTIL_VERSION_MAJOR 49 -#define LIBAVUTIL_VERSION_MINOR 12 +#define LIBAVUTIL_VERSION_MINOR 13 #define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ diff --git a/libavutil/common.h b/libavutil/common.h index ed295cfce3..e583101189 100644 --- a/libavutil/common.h +++ b/libavutil/common.h @@ -242,9 +242,6 @@ static inline av_const float av_clipf(float a, float amin, float amax) else return a; } -/* math */ -int64_t av_const ff_gcd(int64_t a, int64_t b); - /** * converts fourcc string to int */ diff --git a/libavutil/mathematics.c b/libavutil/mathematics.c index ef93ba4a1c..eed2241471 100644 --- a/libavutil/mathematics.c +++ b/libavutil/mathematics.c @@ -48,8 +48,8 @@ const uint8_t ff_log2_tab[256]={ 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 }; -int64_t ff_gcd(int64_t a, int64_t b){ - if(b) return ff_gcd(b, a%b); +int64_t av_gcd(int64_t a, int64_t b){ + if(b) return av_gcd(b, a%b); else return a; } diff --git a/libavutil/mathematics.h b/libavutil/mathematics.h index 74385274b3..3098862364 100644 --- a/libavutil/mathematics.h +++ b/libavutil/mathematics.h @@ -49,6 +49,8 @@ enum AVRounding { AV_ROUND_NEAR_INF = 5, ///< round to nearest and halfway cases away from zero }; +int64_t av_const av_gcd(int64_t a, int64_t b); + /** * rescale a 64bit integer with rounding to nearest. * a simple a*b/c isn't possible as it can overflow diff --git a/libavutil/rational.c b/libavutil/rational.c index cac3ff5a99..4c0216e60f 100644 --- a/libavutil/rational.c +++ b/libavutil/rational.c @@ -35,7 +35,7 @@ int av_reduce(int *dst_nom, int *dst_den, int64_t nom, int64_t den, int64_t max){ AVRational a0={0,1}, a1={1,0}; int sign= (nom<0) ^ (den<0); - int64_t gcd= ff_gcd(FFABS(nom), FFABS(den)); + int64_t gcd= av_gcd(FFABS(nom), FFABS(den)); if(gcd){ nom = FFABS(nom)/gcd; @@ -66,7 +66,7 @@ int av_reduce(int *dst_nom, int *dst_den, int64_t nom, int64_t den, int64_t max) nom= den; den= next_den; } - assert(ff_gcd(a1.num, a1.den) <= 1U); + assert(av_gcd(a1.num, a1.den) <= 1U); *dst_nom = sign ? -a1.num : a1.num; *dst_den = a1.den;