From 6a5a5359f1842f1b8546db9d47b70867977a768a Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Mon, 15 Aug 2011 17:28:33 +0000 Subject: 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 --- src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp') 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; -- cgit v1.2.3-13-gbd6f