From 37b8fb75af29c071a47d1557fe7dfff0b0812dc4 Mon Sep 17 00:00:00 2001 From: "S. Davilla" Date: Sun, 14 Jul 2013 09:06:48 -0400 Subject: fixed, add float to float convert with a copy so we do not have to check convertFn for null all over the place --- xbmc/cores/AudioEngine/Utils/AEConvert.cpp | 16 ++++++++++++++++ xbmc/cores/AudioEngine/Utils/AEConvert.h | 2 ++ 2 files changed, 18 insertions(+) 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); -- cgit v1.2.3