summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorMarcos CARDINOT <mcardinot@gmail.com>2014-10-20 06:43:52 +0100
committerMarcos CARDINOT <mcardinot@gmail.com>2014-10-20 06:46:51 +0100
commit718045fece8e1d24571dcea8e7ad906f608e074d (patch)
treefd55e41e090476678838c6bbf914e8c51a0e10ed /plugins
parent860461f414c0eb187cc47230bce554bce4bd559b (diff)
SoundSource - processing the cover arts separately
It avoids processing images when it's not required (TIO building). It brings a huge performance gain!
Diffstat (limited to 'plugins')
-rwxr-xr-xplugins/soundsource/libsoundsourcem4a.sobin0 -> 1300576 bytes
-rw-r--r--plugins/soundsourcem4a/soundsourcem4a.cpp6
-rw-r--r--plugins/soundsourcem4a/soundsourcem4a.h1
-rw-r--r--plugins/soundsourcemediafoundation/soundsourcemediafoundation.cpp5
-rw-r--r--plugins/soundsourcemediafoundation/soundsourcemediafoundation.h1
-rw-r--r--plugins/soundsourcewv/soundsourcewv.cpp7
-rw-r--r--plugins/soundsourcewv/soundsourcewv.h1
7 files changed, 21 insertions, 0 deletions
diff --git a/plugins/soundsource/libsoundsourcem4a.so b/plugins/soundsource/libsoundsourcem4a.so
new file mode 100755
index 0000000000..527047e91b
--- /dev/null
+++ b/plugins/soundsource/libsoundsourcem4a.so
Binary files differ
diff --git a/plugins/soundsourcem4a/soundsourcem4a.cpp b/plugins/soundsourcem4a/soundsourcem4a.cpp
index 9e3717ddde..eb0a552bad 100644
--- a/plugins/soundsourcem4a/soundsourcem4a.cpp
+++ b/plugins/soundsourcem4a/soundsourcem4a.cpp
@@ -192,6 +192,12 @@ Result SoundSourceM4A::parseHeader(){
return ERR;
}
+QImage SoundSourceM4A::parseCoverArt() {
+ setType("m4a");
+ TagLib::MP4::File f(getFilename().toLocal8Bit().constData());
+ return getCoverInMP4Tag(f.tag());
+}
+
QList<QString> SoundSourceM4A::supportedFileExtensions()
{
QList<QString> list;
diff --git a/plugins/soundsourcem4a/soundsourcem4a.h b/plugins/soundsourcem4a/soundsourcem4a.h
index f039c5f25f..e6a141489e 100644
--- a/plugins/soundsourcem4a/soundsourcem4a.h
+++ b/plugins/soundsourcem4a/soundsourcem4a.h
@@ -49,6 +49,7 @@ class SoundSourceM4A : public SoundSource {
unsigned read(unsigned long size, const SAMPLE*);
unsigned long length();
Result parseHeader();
+ QImage parseCoverArt();
static QList<QString> supportedFileExtensions();
private:
int trackId;
diff --git a/plugins/soundsourcemediafoundation/soundsourcemediafoundation.cpp b/plugins/soundsourcemediafoundation/soundsourcemediafoundation.cpp
index 4e10c6e300..e3c4aac68e 100644
--- a/plugins/soundsourcemediafoundation/soundsourcemediafoundation.cpp
+++ b/plugins/soundsourcemediafoundation/soundsourcemediafoundation.cpp
@@ -391,6 +391,11 @@ Result SoundSourceMediaFoundation::parseHeader()
return ERR;
}
+QImage SoundSourceMediaFoundation::parseCoverArt() {
+ setType("m4a");
+ TagLib::MP4::File f(getFilename().toLocal8Bit().constData());
+ return getCoverInMP4Tag(f.tag());
+}
// static
QList<QString> SoundSourceMediaFoundation::supportedFileExtensions()
diff --git a/plugins/soundsourcemediafoundation/soundsourcemediafoundation.h b/plugins/soundsourcemediafoundation/soundsourcemediafoundation.h
index 016f6901c2..79875551e2 100644
--- a/plugins/soundsourcemediafoundation/soundsourcemediafoundation.h
+++ b/plugins/soundsourcemediafoundation/soundsourcemediafoundation.h
@@ -46,6 +46,7 @@ class SoundSourceMediaFoundation : public Mixxx::SoundSource {
unsigned read(unsigned long size, const SAMPLE *buffer);
inline long unsigned length();
Result parseHeader();
+ QImage parseCoverArt();
static QList<QString> supportedFileExtensions();
private:
diff --git a/plugins/soundsourcewv/soundsourcewv.cpp b/plugins/soundsourcewv/soundsourcewv.cpp
index c247ac3dbb..3c3ad1640f 100644
--- a/plugins/soundsourcewv/soundsourcewv.cpp
+++ b/plugins/soundsourcewv/soundsourcewv.cpp
@@ -139,6 +139,13 @@ Result SoundSourceWV::parseHeader() {
return ERR;
}
+QImage SoundSourceWV::parseCoverArt() {
+ setType("wv");
+ TagLib::WavPack::File f(m_qFilename.toLocal8Bit().constData());
+ TagLib::APE::Tag *ape = f.APETag();
+ return getCoverInAPETag(ape);
+}
+
void SoundSourceWV::format_samples(int Bps, char *dst, int32_t *src, uint32_t count)
{
//this handles converting the fixed 32bit per sample produced by UnpackSamples
diff --git a/plugins/soundsourcewv/soundsourcewv.h b/plugins/soundsourcewv/soundsourcewv.h
index e7235da39a..ee65ecccda 100644
--- a/plugins/soundsourcewv/soundsourcewv.h
+++ b/plugins/soundsourcewv/soundsourcewv.h
@@ -32,6 +32,7 @@ class SoundSourceWV : public SoundSource {
unsigned read(unsigned long size, const SAMPLE*);
inline long unsigned length();
Result parseHeader();
+ QImage parseCoverArt();
static QList<QString> supportedFileExtensions();
private:
int Bps;