diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-08-15 17:28:33 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-08-15 17:28:33 +0000 |
| commit | 6a5a5359f1842f1b8546db9d47b70867977a768a (patch) | |
| tree | 74c9199e24fc7e5c96c1dc594ad8362bcbfa41a9 /src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp | |
| parent | 42e54e2fdacda654a7360b8332dc622f99d3fa6c (diff) | |
| download | qmmp-6a5a5359f1842f1b8546db9d47b70867977a768a.tar.gz qmmp-6a5a5359f1842f1b8546db9d47b70867977a768a.tar.bz2 qmmp-6a5a5359f1842f1b8546db9d47b70867977a768a.zip | |
EAC3, DTS, and Dolby TrueHD support (patch by Makis Kalofolias)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2303 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp')
| -rw-r--r-- | src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp index ae0e8a4a6..24c7b8648 100644 --- a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp +++ b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp @@ -51,11 +51,11 @@ bool DecoderFFmpegFactory::canDecode(QIODevice *i) const QStringList filters = properties().filters; AVProbeData pd; - uint8_t buf[8192 + AVPROBE_PADDING_SIZE]; + uint8_t buf[PROBE_BUFFER_SIZE + AVPROBE_PADDING_SIZE]; pd.filename = 0; pd.buf_size = i->peek((char*)buf, sizeof(buf) - AVPROBE_PADDING_SIZE); pd.buf = buf; - if(pd.buf_size < 8192) + if(pd.buf_size < PROBE_BUFFER_SIZE) return false; AVInputFormat *fmt = av_probe_input_format(&pd, 1); if(!fmt) @@ -69,7 +69,11 @@ bool DecoderFFmpegFactory::canDecode(QIODevice *i) const return true; if(filters.contains("*.aac") && !memcmp(fmt->name, "aac", 3)) return true; - if(filters.contains("*.ac3") && !memcmp(fmt->name, "ac3", 3)) + if(filters.contains("*.ac3") && !memcmp(fmt->name, "eac3", 4)) + return true; + if(filters.contains("*.dts") && !memcmp(fmt->name, "dts", 3)) + return true; + if(filters.contains("*.mka") && !memcmp(fmt->name, "mka", 3)) return true; return false; } @@ -99,7 +103,11 @@ const DecoderProperties DecoderFFmpegFactory::properties() const properties.contentTypes << "audio/m4a"; } if(filters.contains("*.ac3")) - properties.contentTypes << "audio/ac3"; + properties.contentTypes << "audio/ac3" << "audio/eac3"; + if(filters.contains("*.dts")) + properties.contentTypes << "audio/dts"; + if(filters.contains("*.mka")) + properties.contentTypes << "audio/true-hd" << "audio/x-matroska"; properties.shortName = "ffmpeg"; properties.hasAbout = true; properties.hasSettings = true; |
