diff options
author | S. Davilla <davilla@4pi.com> | 2013-07-14 09:06:48 -0400 |
---|---|---|
committer | S. Davilla <davilla@4pi.com> | 2013-07-14 09:06:48 -0400 |
commit | 37b8fb75af29c071a47d1557fe7dfff0b0812dc4 (patch) | |
tree | 2716aa63ffddcfb4682c72bb35c8ec35da560736 | |
parent | 647cf55a028ac8934b2001894c31e383ff1de807 (diff) |
fixed, add float to float convert with a copy so we do not have to check convertFn for null all over the place
-rw-r--r-- | xbmc/cores/AudioEngine/Utils/AEConvert.cpp | 16 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/Utils/AEConvert.h | 2 |
2 files changed, 18 insertions, 0 deletions
diff --git a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp index 0b0b646eb7..0a643a235e 100644 --- a/xbmc/cores/AudioEngine/Utils/AEConvert.cpp +++ b/xbmc/cores/AudioEngine/Utils/AEConvert.cpp @@ -95,6 +95,7 @@ CAEConvert::AEConvertToFn CAEConvert::ToFloat(enum AEDataFormat dataFormat) case AE_FMT_S32LE : return &S32LE_Float; case AE_FMT_S32BE : return &S32BE_Float; #endif + case AE_FMT_FLOAT : return &Float_Float; case AE_FMT_DOUBLE: return &DOUBLE_Float; default: return NULL; @@ -125,6 +126,7 @@ CAEConvert::AEConvertFrFn CAEConvert::FrFloat(enum AEDataFormat dataFormat) case AE_FMT_S32LE : return &Float_S32LE; case AE_FMT_S32BE : return &Float_S32BE; #endif + case AE_FMT_FLOAT : return &Float_Float; case AE_FMT_DOUBLE: return &Float_DOUBLE; default: return NULL; @@ -371,6 +373,13 @@ unsigned int CAEConvert::S32BE_Float_Neon(uint8_t *data, const unsigned int samp return samples; } +unsigned int CAEConvert::Float_Float(uint8_t *data, const unsigned int samples, float *dest) +{ + memcpy(dest, data, samples*sizeof(float)); + + return samples; +} + unsigned int CAEConvert::DOUBLE_Float(uint8_t *data, const unsigned int samples, float *dest) { double *src = (double*)data; @@ -1143,6 +1152,13 @@ unsigned int CAEConvert::Float_S32BE_Neon(float *data, const unsigned int sample return samples << 2; } +unsigned int CAEConvert::Float_Float(float *data, const unsigned int samples, uint8_t *dest) +{ + memcpy(dest, data, samples*sizeof(float)); + + return samples; +} + unsigned int CAEConvert::Float_DOUBLE(float *data, const unsigned int samples, uint8_t *dest) { double *dst = (double*)dest; diff --git a/xbmc/cores/AudioEngine/Utils/AEConvert.h b/xbmc/cores/AudioEngine/Utils/AEConvert.h index 46472486aa..c0d7c38ec2 100644 --- a/xbmc/cores/AudioEngine/Utils/AEConvert.h +++ b/xbmc/cores/AudioEngine/Utils/AEConvert.h @@ -34,6 +34,7 @@ private: static unsigned int S24BE3_Float(uint8_t *data, const unsigned int samples, float *dest); static unsigned int S32LE_Float (uint8_t *data, const unsigned int samples, float *dest); static unsigned int S32BE_Float (uint8_t *data, const unsigned int samples, float *dest); + static unsigned int Float_Float (uint8_t *data, const unsigned int samples, float *dest); static unsigned int DOUBLE_Float(uint8_t *data, const unsigned int samples, float *dest); static unsigned int Float_U8 (float *data, const unsigned int samples, uint8_t *dest); @@ -44,6 +45,7 @@ private: static unsigned int Float_S24NE3(float *data, const unsigned int samples, uint8_t *dest); static unsigned int Float_S32LE (float *data, const unsigned int samples, uint8_t *dest); static unsigned int Float_S32BE (float *data, const unsigned int samples, uint8_t *dest); + static unsigned int Float_Float (float *data, const unsigned int samples, uint8_t *dest); static unsigned int Float_DOUBLE(float *data, const unsigned int samples, uint8_t *dest); static unsigned int S32LE_Float_Neon (uint8_t *data, const unsigned int samples, float *dest); |