aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-08-15 17:28:33 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-08-15 17:28:33 +0000
commit6a5a5359f1842f1b8546db9d47b70867977a768a (patch)
tree74c9199e24fc7e5c96c1dc594ad8362bcbfa41a9 /src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
parent42e54e2fdacda654a7360b8332dc622f99d3fa6c (diff)
downloadqmmp-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.cpp16
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;