[MPlayer-dev-eng] [PATCH] avoid some casts in af_scaletempo

Reimar Döffinger Reimar.Doeffinger at stud.uni-karlsruhe.de
Thu Nov 15 21:21:13 CET 2007


Hello,
attached patch makes some types void* where this is easily possible to
avoid loads of cast that IMO clutter the code.
Ok to apply?

Greetings,
Reimar Döffinger
-------------- next part --------------
Index: /debian/home/reimar/MPlayer-compile/libaf/af_scaletempo.c
===================================================================
--- /debian/home/reimar/MPlayer-compile/libaf/af_scaletempo.c	(revision 25054)
+++ /debian/home/reimar/MPlayer-compile/libaf/af_scaletempo.c	(working copy)
@@ -60,14 +60,14 @@
   int     samples_standing;
   int     bytes_overlap;
   int     bytes_standing;
-  int8_t* buf_overlap;
-  int8_t* table_blend;
-  void    (*output_overlap)(struct af_scaletempo_s* s, int8_t* out_buf, int bytes_off);
+  void*   buf_overlap;
+  void*   table_blend;
+  void    (*output_overlap)(struct af_scaletempo_s* s, void* out_buf, int bytes_off);
   // best overlap
   int     frames_search;
   int     num_channels;
-  int8_t* buf_pre_corr;
-  int8_t* table_window;
+  void*   buf_pre_corr;
+  void*   table_window;
   int     (*best_overlap_offset)(struct af_scaletempo_s* s);
   short   shift_corr;
   // command line
@@ -123,9 +123,10 @@
   int best_off = 0;
   int i, off;
 
-  pw  = (float*)s->table_window;
-  po  = (float*)s->buf_overlap + s->num_channels;
-  ppc = (float*)s->buf_pre_corr;
+  pw  = s->table_window;
+  po  = s->buf_overlap;
+  po += s->num_channels;
+  ppc = s->buf_pre_corr;
   for (i=s->num_channels; i<s->samples_overlap; i++) {
     *ppc++ = *pw++ * *po++;
   }
@@ -134,7 +135,7 @@
   for (off=0; off<s->frames_search; off++) {
     float corr = 0;
     float* ps = search_start;
-    ppc = (float*)s->buf_pre_corr;
+    ppc = s->buf_pre_corr;
     for (i=s->num_channels; i<s->samples_overlap; i++) {
       corr += *ppc++ * *ps++;
     }
@@ -156,9 +157,10 @@
   int best_off = 0;
   int i, off;
 
-  pw  = (int32_t*)s->table_window;
-  po  = (int16_t*)s->buf_overlap + s->num_channels;
-  ppc = (int32_t*)s->buf_pre_corr;
+  pw  = s->table_window;
+  po  = s->buf_overlap;
+  po += s->num_channels;
+  ppc = s->buf_pre_corr;
   for (i=s->num_channels; i<s->samples_overlap; i++) {
     *ppc++ = ( *pw++ * *po++ ) >> 15;
   }
@@ -167,7 +169,7 @@
   for (off=0; off<s->frames_search; off++) {
     int32_t corr = 0;
     int16_t* ps = search_start;
-    ppc = (int32_t*)s->buf_pre_corr;
+    ppc = s->buf_pre_corr;
     for (i=s->num_channels; i<s->samples_overlap; i++) {
       corr += ( *ppc++ * *ps++ ) >> s->shift_corr;
     }
@@ -181,24 +183,24 @@
   return best_off * 2 * s->num_channels;
 }
 
-static void output_overlap_float(af_scaletempo_t* s, int8_t* buf_out,
+static void output_overlap_float(af_scaletempo_t* s, void* buf_out,
 				  int bytes_off)
 {
-  float* pout = (float*)buf_out;
-  float* pb   = (float*)s->table_blend;
-  float* po   = (float*)s->buf_overlap;
+  float* pout = buf_out;
+  float* pb   = s->table_blend;
+  float* po   = s->buf_overlap;
   float* pin  = (float*)(s->buf_queue + bytes_off);
   int i;
   for (i=0; i<s->samples_overlap; i++) {
     *pout++ = *po - *pb++ * ( *po - *pin++ ); po++;
   }
 }
-static void output_overlap_s16(af_scaletempo_t* s, int8_t* buf_out,
+static void output_overlap_s16(af_scaletempo_t* s, void* buf_out,
 			       int bytes_off)
 {
-  int16_t* pout = (int16_t*)buf_out;
-  int32_t* pb   = (int32_t*)s->table_blend;
-  int16_t* po   = (int16_t*)s->buf_overlap;
+  int16_t* pout = buf_out;
+  int32_t* pb   = s->table_blend;
+  int16_t* po   = s->buf_overlap;
   int16_t* pin  = (int16_t*)(s->buf_queue + bytes_off);
   int i;
   for (i=0; i<s->samples_overlap; i++) {
@@ -333,7 +335,7 @@
       }
       bzero(s->buf_overlap, s->bytes_overlap);
       if (use_int) {
-        int32_t* pb = (int32_t*)s->table_blend;
+        int32_t* pb = s->table_blend;
         int64_t blend = 0;
         for (i=0; i<frames_overlap; i++) {
           int32_t v = blend / frames_overlap;
@@ -344,7 +346,7 @@
         }
         s->output_overlap = output_overlap_s16;
       } else {
-        float* pb = (float*)s->table_blend;
+        float* pb = s->table_blend;
         for (i=0; i<frames_overlap; i++) {
           float v = i / (float)frames_overlap;
           for (j=0; j<nch; j++) {
@@ -369,7 +371,7 @@
           af_msg(AF_MSG_FATAL, "[scaletempo] Out of memory\n");
           return AF_ERROR;
         }
-        pw = (int32_t*)s->table_window;
+        pw = s->table_window;
         for (i=1; i<frames_overlap; i++) {
           int32_t v = ( i * (t - i) * n ) >> 15;
           for (j=0; j<nch; j++) {
@@ -386,7 +388,7 @@
           af_msg(AF_MSG_FATAL, "[scaletempo] Out of memory\n");
           return AF_ERROR;
         }
-        pw = (float*)s->table_window;
+        pw = s->table_window;
         for (i=1; i<frames_overlap; i++) {
           float v = i * (frames_overlap - i);
           for (j=0; j<nch; j++) {


More information about the MPlayer-dev-eng mailing list