aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/aac/decoderaacfactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/aac/decoderaacfactory.cpp')
-rw-r--r--src/plugins/Input/aac/decoderaacfactory.cpp26
1 files changed, 3 insertions, 23 deletions
diff --git a/src/plugins/Input/aac/decoderaacfactory.cpp b/src/plugins/Input/aac/decoderaacfactory.cpp
index ebf48b6d1..6a11ba082 100644
--- a/src/plugins/Input/aac/decoderaacfactory.cpp
+++ b/src/plugins/Input/aac/decoderaacfactory.cpp
@@ -36,28 +36,8 @@ bool DecoderAACFactory::supports(const QString &source) const
bool DecoderAACFactory::canDecode(QIODevice *input) const
{
- uchar buf[4096];
- qint64 buf_at = input->peek((char *) buf, 4096);
-
- int tag_size = 0;
- if (!memcmp(buf, "ID3", 3)) //skip ID3 tag
- {
- /* high bit is not used */
- tag_size = (buf[6] << 21) | (buf[7] << 14) |
- (buf[8] << 7) | (buf[9] << 0);
-
- tag_size += 10;
- if (buf_at - tag_size < 4)
- return false;
-
- memmove (buf, buf + tag_size, buf_at - tag_size);
- }
- //try to determinate header type;
- if (buf[0] == 0xff && ((buf[1] & 0xf6) == 0xf0)) //ADTS header
- return true;
- else if (!memcmp(buf, "ADIF", 4)) //ADIF header
- return true;
- return false;
+ AACFile aac_file(input, false, false);
+ return aac_file.isValid();
}
const DecoderProperties DecoderAACFactory::properties() const
@@ -66,7 +46,7 @@ const DecoderProperties DecoderAACFactory::properties() const
properties.name = tr("AAC Plugin");
properties.filters << "*.aac";
properties.description = tr("AAC Files");
- //properties.contentType = ;
+ properties.contentTypes << "audio/aacp";
properties.shortName = "aac";
properties.hasAbout = true;
properties.hasSettings = false;