X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavutil%2Finteger.h;h=f539125d149860cb942c7e7990821e4ace53821e;hb=17acc63a32b4842dc1e9d578bfafd2bd98a273b4;hp=12edfff9968f8825013319513e0d75e2fdbc0778;hpb=115329f16062074e11ccf3b89ead6176606c9696;p=ffmpeg diff --git a/libavutil/integer.h b/libavutil/integer.h index 12edfff9968..f539125d149 100644 --- a/libavutil/integer.h +++ b/libavutil/integer.h @@ -2,20 +2,21 @@ * arbitrary precision integers * Copyright (c) 2004 Michael Niedermayer * - * This library is free software; you can redistribute it and/or + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. + * version 2.1 of the License, or (at your option) any later version. * - * This library is distributed in the hope that it will be useful, + * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /** @@ -24,8 +25,10 @@ * @author Michael Niedermayer */ -#ifndef INTEGER_H -#define INTEGER_H +#ifndef FFMPEG_INTEGER_H +#define FFMPEG_INTEGER_H + +#include #define AV_INTEGER_SIZE 8 @@ -35,13 +38,46 @@ typedef struct AVInteger{ AVInteger av_add_i(AVInteger a, AVInteger b); AVInteger av_sub_i(AVInteger a, AVInteger b); + +/** + * returns the rounded down value of the logarithm of base 2 of the given AVInteger. + * this is simply the index of the most significant bit which is 1. Or 0 of all bits are 0 + */ int av_log2_i(AVInteger a); AVInteger av_mul_i(AVInteger a, AVInteger b); + +/** + * returns 0 if a==b, 1 if a>b and -1 if a