aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/wavpack/decoder_wavpack.cpp
Commit message (Collapse)AuthorAgeFilesLines
* wavpack: fixed 12, 20-bit integer and 32-bit float formats supporttrialuser022019-01-071-0/+12
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8604 90c681e8-e032-0410-971d-27865f9a5e38
* using override keywordtrialuser022019-01-061-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8591 90c681e8-e032-0410-971d-27865f9a5e38
* fixed build with -Werror=zero-as-null-pointer-constanttrialuser022019-01-031-7/+7
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8572 90c681e8-e032-0410-971d-27865f9a5e38
* enabled wavpack plugintrialuser022018-05-271-4/+4
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7970 90c681e8-e032-0410-971d-27865f9a5e38
* added extra functions to AudioParameters classtrialuser022017-10-221-4/+3
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7612 90c681e8-e032-0410-971d-27865f9a5e38
* changed contact informationtrialuser022017-10-071-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7514 90c681e8-e032-0410-971d-27865f9a5e38
* some optimizationstrialuser022016-10-291-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6815 90c681e8-e032-0410-971d-27865f9a5e38
* changed decoder apitrialuser022016-09-141-2/+2
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6715 90c681e8-e032-0410-971d-27865f9a5e38
* wavpack: added unicode support under windowstrialuser022016-06-151-2/+12
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6457 90c681e8-e032-0410-971d-27865f9a5e38
* using unsigned char for raw datatrialuser022015-12-061-2/+2
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5820 90c681e8-e032-0410-971d-27865f9a5e38
* wavpack plugin: optimization, fixed memory leaktrialuser022015-09-211-61/+22
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5573 90c681e8-e032-0410-971d-27865f9a5e38
* fixed clang warningstrialuser022014-10-181-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4583 90c681e8-e032-0410-971d-27865f9a5e38
* wavpack: added multichannel supporttrialuser022014-10-061-4/+76
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4543 90c681e8-e032-0410-971d-27865f9a5e38
* fixed buildtrialuser022013-05-201-1/+2
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3478 90c681e8-e032-0410-971d-27865f9a5e38
* marking recycler as private apitrialuser022012-12-071-1/+0
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3037 90c681e8-e032-0410-971d-27865f9a5e38
* fixed FSF headerstrialuser022012-07-311-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2845 90c681e8-e032-0410-971d-27865f9a5e38
* fixed FSF address (trunk)trialuser022012-07-311-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2844 90c681e8-e032-0410-971d-27865f9a5e38
* flac/wavpack plugin: fixed windows supporttrialuser022012-01-281-6/+10
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2571 90c681e8-e032-0410-971d-27865f9a5e38
* updated copyrightstrialuser022012-01-231-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2563 90c681e8-e032-0410-971d-27865f9a5e38
* cue parser: added replaygain support (Closes issue 279)trialuser022011-10-201-0/+2
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2413 90c681e8-e032-0410-971d-27865f9a5e38
* decoder api changes: removed StateHandler usagetrialuser022011-09-171-2/+2
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2354 90c681e8-e032-0410-971d-27865f9a5e38
* cue parser: fixed problem with paths which contains colontrialuser022011-02-011-0/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2032 90c681e8-e032-0410-971d-27865f9a5e38
* dynamic buffer sizetrialuser022010-10-081-6/+4
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1928 90c681e8-e032-0410-971d-27865f9a5e38
* reapplied previous patchtrialuser022010-03-111-2/+2
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1620 90c681e8-e032-0410-971d-27865f9a5e38
* removed obsolete memberstrialuser022010-03-111-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1619 90c681e8-e032-0410-971d-27865f9a5e38
* wavpack plugin: added some optimizationtrialuser022010-03-111-20/+22
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1617 90c681e8-e032-0410-971d-27865f9a5e38
* wavpack plugin: fixed 24-bit support (Closes issue 265)trialuser022010-03-111-7/+21
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1616 90c681e8-e032-0410-971d-27865f9a5e38
* updated audio enginetrialuser022010-01-161-6/+19
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1503 90c681e8-e032-0410-971d-27865f9a5e38
* fixed cue playing with '?' in its pathtrialuser022009-10-021-0/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1279 90c681e8-e032-0410-971d-27865f9a5e38
* enabled wavpack plugintrialuser022009-09-221-49/+113
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1252 90c681e8-e032-0410-971d-27865f9a5e38
* enabled wavpack plugin, fixed problem with slow seekingtrialuser022009-07-201-186/+69
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1053 90c681e8-e032-0410-971d-27865f9a5e38
* wavpack plugin: improved total time calculationtrialuser022009-05-121-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@946 90c681e8-e032-0410-971d-27865f9a5e38
* fixed wavpack with embedded cue supporttrialuser022009-05-111-1/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@938 90c681e8-e032-0410-971d-27865f9a5e38
* fixed playing cue files with symbol '#' in the pathtrialuser022009-04-301-0/+2
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@921 90c681e8-e032-0410-971d-27865f9a5e38
* fixed now-playing notification for flac and wavpack files with embeded cuetrialuser022009-04-151-0/+3
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@905 90c681e8-e032-0410-971d-27865f9a5e38
* improved seeking accuracytrialuser022009-03-071-3/+3
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@827 90c681e8-e032-0410-971d-27865f9a5e38
* wavpack embeded cue support (thanks to Dmitry Kostin)trialuser022009-02-061-12/+47
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@780 90c681e8-e032-0410-971d-27865f9a5e38
* enabled all input pluginstrialuser022008-10-121-30/+14
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@581 90c681e8-e032-0410-971d-27865f9a5e38
* wavpack plugin: compile fixtrialuser022008-04-171-0/+1
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@345 90c681e8-e032-0410-971d-27865f9a5e38
* wavpack plugin: removed excess codetrialuser022008-04-171-11/+0
| | | | git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@344 90c681e8-e032-0410-971d-27865f9a5e38
* added wavpack plugintrialuser022008-03-061-0/+287
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@263 90c681e8-e032-0410-971d-27865f9a5e38
s="hl ppc">#include <QFile> #include <QFileInfo> #include <qmmp/buffer.h> #include <qmmp/output.h> #include <qmmp/recycler.h> #include "decoder_sndfile.h" // Decoder class DecoderSndFile::DecoderSndFile(const QString &path) : Decoder() { m_path = path; m_bitrate = 0; m_totalTime = 0; m_sndfile = 0; m_freq = 0; } DecoderSndFile::~DecoderSndFile() { deinit(); } bool DecoderSndFile::initialize() { m_bitrate = 0; m_totalTime = 0.0; SF_INFO snd_info; memset (&snd_info, 0, sizeof(snd_info)); snd_info.format=0; m_sndfile = sf_open(m_path.toLocal8Bit(), SFM_READ, &snd_info); if (!m_sndfile) { qWarning("DecoderSndFile: failed to open: %s", qPrintable(m_path)); return false; } m_freq = snd_info.samplerate; int chan = snd_info.channels; m_totalTime = snd_info.frames * 1000 / m_freq; m_bitrate = QFileInfo(m_path).size () * 8.0 / m_totalTime + 0.5; if((snd_info.format & SF_FORMAT_SUBMASK) == SF_FORMAT_FLOAT) sf_command (m_sndfile, SFC_SET_SCALE_FLOAT_INT_READ, NULL, SF_TRUE); configure(m_freq, chan, Qmmp::PCM_S16LE); qDebug("DecoderSndFile: detected format: %08X", snd_info.format); qDebug("DecoderSndFile: initialize succes"); return true; } void DecoderSndFile::deinit() { m_totalTime = 0; m_bitrate = 0; m_freq = 0; if (m_sndfile) sf_close(m_sndfile); m_sndfile = 0; } qint64 DecoderSndFile::totalTime() { return m_totalTime; } int DecoderSndFile::bitrate() { return m_bitrate; } qint64 DecoderSndFile::read(char *audio, qint64 maxSize) { return sizeof(short)* sf_read_short (m_sndfile, (short *)audio, maxSize / sizeof(short)); } void DecoderSndFile::seek(qint64 pos) { sf_seek(m_sndfile, m_freq * pos/1000, SEEK_SET); }