Browse Source

swr: unroll audioconvert core C function

36k->32k decicycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n0.11
Michael Niedermayer 13 years ago
parent
commit
bbd3dc49ff
1 changed files with 9 additions and 2 deletions
  1. +9
    -2
      libswresample/audioconvert.c

+ 9
- 2
libswresample/audioconvert.c View File

@@ -47,9 +47,16 @@ struct AudioConvert {
#define CONV_FUNC(ofmt, otype, ifmt, expr)\
static void CONV_FUNC_NAME(ofmt, ifmt)(uint8_t *po, const uint8_t *pi, int is, int os, uint8_t *end)\
{\
do{\
uint8_t *end2 = end - 3*os;\
while(po < end2){\
*(otype*)po = expr; pi += is; po += os;\
}while(po < end);\
*(otype*)po = expr; pi += is; po += os;\
*(otype*)po = expr; pi += is; po += os;\
*(otype*)po = expr; pi += is; po += os;\
}\
while(po < end){\
*(otype*)po = expr; pi += is; po += os;\
}\
}

//FIXME put things below under ifdefs so we do not waste space for cases no codec will need


Loading…
Cancel
Save