diff options
Diffstat (limited to 'src/plugins/Input/aac/decoderaacfactory.cpp')
| -rw-r--r-- | src/plugins/Input/aac/decoderaacfactory.cpp | 26 |
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; |
