From 7f8613192aeab5ddc7a1003b8c2cc76b8ee8dea2 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 11 Dec 2016 12:39:27 +0000 Subject: fixed segmentation fault git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6909 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmp/outputwriter.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/qmmp/outputwriter.cpp b/src/qmmp/outputwriter.cpp index 2f5faea23..ce33a04db 100644 --- a/src/qmmp/outputwriter.cpp +++ b/src/qmmp/outputwriter.cpp @@ -275,6 +275,7 @@ void OutputWriter::run() quint64 l; qint64 m = 0; size_t output_at = 0; + unsigned char *tmp = 0; dispatch(Qmmp::Playing); @@ -343,7 +344,15 @@ void OutputWriter::run() m_output_buf = new unsigned char[m_output_size * sampleSize()]; } - m_format_converter->fromFloat(b->data, m_output_buf, b->samples); + if(m_format_converter) + { + m_format_converter->fromFloat(b->data, m_output_buf, b->samples); + tmp = m_output_buf; + } + else + { + tmp = (unsigned char*)b->data; + } output_at = b->samples * m_output->sampleSize(); while (l < output_at && !m_pause && !m_prev_pause) @@ -357,7 +366,7 @@ void OutputWriter::run() break; } mutex()->unlock(); - m = m_output->writeAudio(m_output_buf + l, output_at - l); + m = m_output->writeAudio(tmp + l, output_at - l); if(m >= 0) { m_totalWritten += m; -- cgit v1.2.3-13-gbd6f