aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input')
-rw-r--r--src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp2
-rw-r--r--src/plugins/Input/modplug/decoder_modplug.cpp2
-rw-r--r--src/plugins/Input/wavpack/decoder_wavpack.cpp10
-rw-r--r--src/plugins/Input/wavpack/decoder_wavpack.h2
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 *