[FFmpeg-devel] [PATCH 1/2] libavutil/softfloat: Change order of fields in SoftFloat structure.

Nedeljko Babic nedeljko.babic at imgtec.com
Wed Apr 15 15:14:06 CEST 2015


Softfloat will be used in implementation of AAC fixed point decoder.
This change is needed in order to more easily integrate ffmpegs softfloat in
already developed algorithm for AAC.

Signed-off-by: Nedeljko Babic <nedeljko.babic at imgtec.com>
---
 libavutil/softfloat.h | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/libavutil/softfloat.h b/libavutil/softfloat.h
index 8647e6a..654a31f 100644
--- a/libavutil/softfloat.h
+++ b/libavutil/softfloat.h
@@ -31,8 +31,8 @@
 #define ONE_BITS 29
 
 typedef struct SoftFloat{
-    int32_t  exp;
     int32_t mant;
+    int32_t  exp;
 }SoftFloat;
 
 static av_const SoftFloat av_normalize_sf(SoftFloat a){
@@ -67,10 +67,10 @@ static inline av_const SoftFloat av_normalize1_sf(SoftFloat a){
     return a;
 #elif 1
     int t= a.mant + 0x40000000 < 0;
-    return (SoftFloat){a.exp+t, a.mant>>t};
+    return (SoftFloat){ a.mant>>t, a.exp+t};
 #else
     int t= (a.mant + 0x40000000U)>>31;
-    return (SoftFloat){a.exp+t, a.mant>>t};
+    return (SoftFloat){a.mant>>t, a.exp+t};
 #endif
 }
 
@@ -105,19 +105,19 @@ static inline av_const int av_cmp_sf(SoftFloat a, SoftFloat b){
 static inline av_const SoftFloat av_add_sf(SoftFloat a, SoftFloat b){
     int t= a.exp - b.exp;
     if      (t <-31) return b;
-    else if (t <  0) return av_normalize1_sf((SoftFloat){b.exp, b.mant + (a.mant >> (-t))});
-    else if (t < 32) return av_normalize1_sf((SoftFloat){a.exp, a.mant + (b.mant >>   t )});
+    else if (t <  0) return av_normalize1_sf((SoftFloat){b.mant + (a.mant >> (-t)), b.exp});
+    else if (t < 32) return av_normalize1_sf((SoftFloat){a.mant + (b.mant >>   t ), a.exp});
     else             return a;
 }
 
 static inline av_const SoftFloat av_sub_sf(SoftFloat a, SoftFloat b){
-    return av_add_sf(a, (SoftFloat){b.exp, -b.mant});
+    return av_add_sf(a, (SoftFloat){ -b.mant, b.exp});
 }
 
 //FIXME sqrt, log, exp, pow, sin, cos
 
 static inline av_const SoftFloat av_int2sf(int v, int frac_bits){
-    return av_normalize_sf((SoftFloat){ONE_BITS-frac_bits, v});
+    return av_normalize_sf((SoftFloat){v, ONE_BITS-frac_bits});
 }
 
 /**
-- 
1.8.2.1



More information about the ffmpeg-devel mailing list