changeset 2127:2c2f738772b7 libavcodec

more comments
author michael
date Thu, 15 Jul 2004 14:06:39 +0000
parents 181cb6785f6b
children 87aaf3c351f5
files integer.c rational.c rational.h
diffstat 3 files changed, 51 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/integer.c	Wed Jul 14 20:23:35 2004 +0000
+++ b/integer.c	Thu Jul 15 14:06:39 2004 +0000
@@ -47,6 +47,10 @@
     return a;
 }
 
+/**
+ * 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){
     int i;
 
@@ -78,6 +82,9 @@
     return out;
 }
 
+/**
+ * returns 0 if a==b, 1 if a>b and -1 if a<b.
+ */
 int av_cmp_i(AVInteger a, AVInteger b){
     int i; 
     int v= (int16_t)a.v[AV_INTEGER_SIZE-1] - (int16_t)b.v[AV_INTEGER_SIZE-1];
@@ -90,6 +97,10 @@
     return 0;
 }
 
+/**
+ * bitwise shift.
+ * @param s the number of bits by which the value should be shifted right, may be negative for shifting left
+ */
 AVInteger av_shr_i(AVInteger a, int s){
     AVInteger out;
     int i;
@@ -104,6 +115,10 @@
     return out;
 }
 
+/**
+ * returns a % b.
+ * @param quot a/b will be stored here
+ */
 AVInteger av_mod_i(AVInteger *quot, AVInteger a, AVInteger b){
     int i= av_log2_i(a) - av_log2_i(b);
     AVInteger quot_temp;
@@ -128,12 +143,18 @@
     return a;
 }
 
+/**
+ * returns a/b.
+ */
 AVInteger av_div_i(AVInteger a, AVInteger b){
     AVInteger quot;
     av_mod_i(&quot, a, b);
     return quot;
 }
 
+/**
+ * converts the given int64_t to an AVInteger.
+ */
 AVInteger av_int2i(int64_t a){
     AVInteger out;
     int i;
@@ -145,6 +166,11 @@
     return out;
 }
 
+/**
+ * converts the given AVInteger to an int64_t.
+ * if the AVInteger is too large to fit into an int64_t, 
+ * then only the least significant 64bit will be used
+ */
 int64_t av_i2int(AVInteger a){
     int i;
     int64_t out=(int8_t)a.v[AV_INTEGER_SIZE-1];
--- a/rational.c	Wed Jul 14 20:23:35 2004 +0000
+++ b/rational.c	Thu Jul 15 14:06:39 2004 +0000
@@ -31,21 +31,33 @@
 #include "avcodec.h"
 #include "rational.h"
 
+/**
+ * returns b*c.
+ */
 AVRational av_mul_q(AVRational b, AVRational c){
     av_reduce(&b.num, &b.den, b.num * (int64_t)c.num, b.den * (int64_t)c.den, INT_MAX);
     return b;
 }
 
+/**
+ * returns b/c.
+ */
 AVRational av_div_q(AVRational b, AVRational c){
     av_reduce(&b.num, &b.den, b.num * (int64_t)c.den, b.den * (int64_t)c.num, INT_MAX);
     return b;
 }
 
+/**
+ * returns b+c.
+ */
 AVRational av_add_q(AVRational b, AVRational c){
     av_reduce(&b.num, &b.den, b.num * (int64_t)c.den + c.num * (int64_t)b.den, b.den * (int64_t)c.den, INT_MAX);
     return b;
 }
 
+/**
+ * returns b-c.
+ */
 AVRational av_sub_q(AVRational b, AVRational c){
     av_reduce(&b.num, &b.den, b.num * (int64_t)c.den - c.num * (int64_t)b.den, b.den * (int64_t)c.den, INT_MAX);
     return b;
--- a/rational.h	Wed Jul 14 20:23:35 2004 +0000
+++ b/rational.h	Thu Jul 15 14:06:39 2004 +0000
@@ -27,19 +27,27 @@
 #ifndef RATIONAL_H
 #define RATIONAL_H
 
+/**
+ * Rational number num/den.
+ */
 typedef struct AVRational{
-    int num; 
-    int den;
+    int num; ///< numerator
+    int den; ///< denominator
 } AVRational;
 
+/**
+ * returns 0 if a==b, 1 if a>b and -1 if a<b.
+ */
 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;
 
-    if     (tmp <  0) return -1;
-    else if(tmp == 0) return  0;
-    else              return  1;
+    if(tmp) return (tmp>>63)|1;
+    else    return 0;
 }
 
+/**
+ * converts the given AVRational to a double.
+ */
 static inline double av_q2d(AVRational a){
     return a.num / (double) a.den;
 }