diff options
Diffstat (limited to 'src/plugins/Effect/srconverter/srconverter.cpp')
| -rw-r--r-- | src/plugins/Effect/srconverter/srconverter.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/Effect/srconverter/srconverter.cpp b/src/plugins/Effect/srconverter/srconverter.cpp index 969cd5eb0..fcd77bc04 100644 --- a/src/plugins/Effect/srconverter/srconverter.cpp +++ b/src/plugins/Effect/srconverter/srconverter.cpp @@ -65,6 +65,16 @@ void SRConverter::applyEffect(Buffer *b) } else { + qint32 *data = (int *) b->data; + if(format() == Qmmp::PCM_S24LE) + { + uint samples = b->size >> 2; + for(unsigned int i = 0; i < samples; ++i) + { + if(data[i] & 0x800000) + data[i] |= 0xff000000; + } + } src_int_to_float_array((int*) b->data, m_src_data.data_in, m_src_data.input_frames * channels()); } |
