diff options
Diffstat (limited to 'src/plugins/Input')
| -rw-r--r-- | src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Input/modplug/decoder_modplug.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/decoder_wavpack.cpp | 10 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/decoder_wavpack.h | 2 |
4 files changed, 7 insertions, 9 deletions
diff --git a/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp b/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp index 25e2ab04c..988d534d4 100644 --- a/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp +++ b/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp @@ -169,7 +169,7 @@ bool DecoderFFmpeg::initialize() } m_totalTime = input()->isSequential() ? 0 : ic->duration * 1000 / AV_TIME_BASE; - m_output_buf = (uint8_t *)av_malloc(AVCODEC_MAX_AUDIO_FRAME_SIZE * 3 / 2 + QMMP_BUFFER_SIZE); + m_output_buf = (uint8_t *)av_malloc(AVCODEC_MAX_AUDIO_FRAME_SIZE * 3 / 2/* + QMMP_BUFFER_SIZE*/); #if (LIBAVCODEC_VERSION_INT >= ((52<<16)+(20<<8)+0)) if(c->codec_id == CODEC_ID_SHORTEN) //ffmpeg bug workaround diff --git a/src/plugins/Input/modplug/decoder_modplug.cpp b/src/plugins/Input/modplug/decoder_modplug.cpp index fe92d90f4..969731bdc 100644 --- a/src/plugins/Input/modplug/decoder_modplug.cpp +++ b/src/plugins/Input/modplug/decoder_modplug.cpp @@ -111,7 +111,7 @@ int DecoderModPlug::bitrate() qint64 DecoderModPlug::read(char *audio, qint64 maxSize) { - long len = m_soundFile->Read (audio, qMin((qint64)QMMP_BLOCK_SIZE, maxSize)) * m_sampleSize; + long len = m_soundFile->Read (audio, maxSize) * m_sampleSize; if (m_usePreamp) { { diff --git a/src/plugins/Input/wavpack/decoder_wavpack.cpp b/src/plugins/Input/wavpack/decoder_wavpack.cpp index 75b09dff0..071b18004 100644 --- a/src/plugins/Input/wavpack/decoder_wavpack.cpp +++ b/src/plugins/Input/wavpack/decoder_wavpack.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -24,12 +24,9 @@ #include <QFile> #include <math.h> #include <stdint.h> - #include <qmmp/buffer.h> #include <qmmp/output.h> #include <qmmp/recycler.h> -#include "QtDebug" - #include "decoder_wavpack.h" #include "cueparser.h" @@ -107,7 +104,7 @@ bool DecoderWavPack::initialize() m_freq = WavpackGetSampleRate (m_context); m_bps = WavpackGetBitsPerSample (m_context); if (!m_output_buf) - m_output_buf = new int32_t[QMMP_BUFFER_SIZE/4]; + m_output_buf = new int32_t[QMMP_BLOCK_FRAMES * m_chan]; switch(m_bps) { case 8: @@ -249,7 +246,8 @@ void DecoderWavPack::next() qint64 DecoderWavPack::wavpack_decode(char *data, qint64 size) { - ulong len = WavpackUnpackSamples (m_context, m_output_buf, size / m_chan / 4); + ulong len = qMin(QMMP_BLOCK_FRAMES, (int)size / m_chan / 4); + len = WavpackUnpackSamples (m_context, m_output_buf, len); //convert 32 to 16 qint8 *data8 = (qint8 *)data; qint16 *data16 = (qint16 *)data; diff --git a/src/plugins/Input/wavpack/decoder_wavpack.h b/src/plugins/Input/wavpack/decoder_wavpack.h index 1f2e034ea..a44ca090f 100644 --- a/src/plugins/Input/wavpack/decoder_wavpack.h +++ b/src/plugins/Input/wavpack/decoder_wavpack.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2010 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * |
