aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/ffmpeg
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-04-15 18:08:40 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-04-15 18:08:40 +0000
commit2ee8fd4c12b9da5418365c2716eb0e9423fd4e08 (patch)
treeddb9882d71c08db2f737250edb1084fc00603f32 /src/plugins/Input/ffmpeg
parentb48e843ac11ed8ffbb5d8155ad91160b42841d93 (diff)
downloadqmmp-2ee8fd4c12b9da5418365c2716eb0e9423fd4e08.tar.gz
qmmp-2ee8fd4c12b9da5418365c2716eb0e9423fd4e08.tar.bz2
qmmp-2ee8fd4c12b9da5418365c2716eb0e9423fd4e08.zip
added latest ffmpeg support, fixed bug with ape seeking, removed legacy
code git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2162 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/ffmpeg')
-rw-r--r--src/plugins/Input/ffmpeg/CMakeLists.txt34
-rw-r--r--src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp62
-rw-r--r--src/plugins/Input/ffmpeg/decoder_ffmpeg.h29
-rw-r--r--src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp50
-rw-r--r--src/plugins/Input/ffmpeg/ffmpeg.pro16
-rw-r--r--src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp13
-rw-r--r--src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h12
-rw-r--r--src/plugins/Input/ffmpeg/settingsdialog.cpp33
8 files changed, 83 insertions, 166 deletions
diff --git a/src/plugins/Input/ffmpeg/CMakeLists.txt b/src/plugins/Input/ffmpeg/CMakeLists.txt
index 24991e45b..86a41c4a4 100644
--- a/src/plugins/Input/ffmpeg/CMakeLists.txt
+++ b/src/plugins/Input/ffmpeg/CMakeLists.txt
@@ -28,39 +28,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
# libffmpeg
-pkg_check_modules(FFMPEG libavcodec libavformat libavutil)
-
-
-# old ffmpeg support
-
-IF(EXISTS /usr/include/ffmpeg/libavformat/avformat.h)
- ADD_DEFINITIONS(-DHAVE_LIBAVFORMAT_AVFORMAT_H)
- include_directories(/usr/include/ffmpeg)
-ELSEIF(EXISTS /usr/include/ffmpeg/avformat.h)
- ADD_DEFINITIONS(-DHAVE_FFMPEG_AVFORMAT_H)
-ELSEIF(EXISTS /usr/include/libavformat/avformat.h)
- ADD_DEFINITIONS(-DHAVE_LIBAVFORMAT_AVFORMAT_H)
-ELSE(EXISTS /usr/include/ffmpeg/libavformat/avformat.h)
- include_directories(/usr/local/include/ffmpeg
- /usr/local/include/libavformat
- /usr/local/include/libavutil
-)
-ENDIF(EXISTS /usr/include/ffmpeg/libavformat/avformat.h)
-
-IF(EXISTS /usr/include/ffmpeg/libavcodec/avcodec.h)
- ADD_DEFINITIONS(-DHAVE_LIBAVCODEC_AVCODEC_H)
- include_directories(/usr/include/ffmpeg)
-ELSEIF(EXISTS /usr/include/ffmpeg/avcodec.h)
- ADD_DEFINITIONS(-DHAVE_FFMPEG_AVCODEC_H)
-ELSEIF(EXISTS /usr/include/libavcodec/avcodec.h)
- ADD_DEFINITIONS(-DHAVE_LIBAVCODEC_AVCODEC_H)
-ELSE(EXISTS /usr/include/ffmpeg/libavcodec/avcodec.h)
- include_directories(/usr/local/include/ffmpeg
- /usr/local/include/libavcodec
- /usr/local/include/libavutil
-)
-ENDIF(EXISTS /usr/include/ffmpeg/libavcodec/avcodec.h)
-
+pkg_check_modules(FFMPEG libavcodec>=52.20.0 libavformat>=52.31.0 libavutil>=49.15.0)
include_directories(${FFMPEG_INCLUDE_DIRS})
link_directories(${FFMPEG_LIBRARY_DIRS})
diff --git a/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp b/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp
index 0a2e734fa..a6c5b53f0 100644
--- a/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp
+++ b/src/plugins/Input/ffmpeg/decoder_ffmpeg.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2009 by Ilya Kotov *
+ * Copyright (C) 2006-2011 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -23,7 +23,6 @@
#include <qmmp/buffer.h>
#include <qmmp/output.h>
#include <qmmp/recycler.h>
-
#include "decoder_ffmpeg.h"
// callbacks
@@ -76,6 +75,7 @@ DecoderFFmpeg::DecoderFFmpeg(const QString &path, QIODevice *i)
m_output_buf = 0;
m_output_at = 0;
m_skipBytes = 0;
+ m_stream = 0;
av_init_packet(&m_pkt);
av_init_packet(&m_temp_pkt);
}
@@ -91,6 +91,8 @@ DecoderFFmpeg::~DecoderFFmpeg()
av_free_packet(&m_pkt);
if(m_output_buf)
av_free(m_output_buf);
+ if(m_stream)
+ av_free(m_stream);
}
bool DecoderFFmpeg::initialize()
@@ -119,23 +121,29 @@ bool DecoderFFmpeg::initialize()
}
qDebug("DecoderFFmpeg: detected format: %s", fmt->long_name);
- init_put_byte(&m_stream, m_input_buf, INPUT_BUFFER_SIZE,
- 0, this, ffmpeg_read, NULL, ffmpeg_seek);
-
- m_stream.is_streamed = input()->isSequential();
- m_stream.max_packet_size = INPUT_BUFFER_SIZE;
-
+#if (LIBAVCODEC_VERSION_INT >= ((52<<16)+(105<<8)+0))
+ m_stream = avio_alloc_context(m_input_buf, INPUT_BUFFER_SIZE, 0, this, ffmpeg_read, NULL, ffmpeg_seek);
+ if(!m_stream)
+ {
+ qWarning("DecoderFFmpeg: unable to initialize I/O callbacks");
+ return false;
+ }
+ m_stream->seekable = !input()->isSequential();
+#else
+ m_stream = (ByteIOContext *)av_malloc(sizeof(ByteIOContext));
+ init_put_byte(m_stream, m_input_buf, INPUT_BUFFER_SIZE, 0, this, ffmpeg_read, NULL, ffmpeg_seek);
+ m_stream->is_streamed = input()->isSequential();
+#endif
+ m_stream->max_packet_size = INPUT_BUFFER_SIZE;
AVFormatParameters ap;
memset(&ap, 0, sizeof(ap));
- if(av_open_input_stream(&ic, &m_stream, m_path.toLocal8Bit(),
- fmt, &ap) != 0)
+ if(av_open_input_stream(&ic, m_stream, m_path.toLocal8Bit(), fmt, &ap) != 0)
{
qDebug("DecoderFFmpeg: av_open_input_stream() failed");
return false;
}
-
AVCodec *codec;
av_find_stream_info(ic);
@@ -155,7 +163,11 @@ bool DecoderFFmpeg::initialize()
else
c->channels = 2;
+#if (LIBAVCODEC_VERSION_INT >= ((52<<16)+(101<<8)+0))
+ av_dump_format(ic,0,0,0);
+#else
dump_format(ic,0,0,0);
+#endif
codec = avcodec_find_decoder(c->codec_id);
if (!codec)
@@ -178,7 +190,17 @@ bool DecoderFFmpeg::initialize()
m_totalTime = 0;
#endif
- configure(c->sample_rate, c->channels, Qmmp::PCM_S16LE);
+#if (LIBAVUTIL_VERSION_INT >= ((50<<16)+(38<<8)+0))
+ if(c->sample_fmt == AV_SAMPLE_FMT_S32)
+ configure(c->sample_rate, c->channels, Qmmp::PCM_S32LE);
+ else
+ configure(c->sample_rate, c->channels, Qmmp::PCM_S16LE);
+#else
+ if(c->sample_fmt == SAMPLE_FMT_S32)
+ configure(c->sample_rate, c->channels, Qmmp::PCM_S32LE);
+ else
+ configure(c->sample_rate, c->channels, Qmmp::PCM_S16LE);
+#endif
m_bitrate = c->bit_rate;
qDebug("DecoderFFmpeg: initialize succes");
return true;
@@ -245,7 +267,6 @@ void DecoderFFmpeg::seek(qint64 pos)
timestamp += ic->start_time;
m_seekTime = timestamp;
av_seek_frame(ic, -1, timestamp, AVSEEK_FLAG_BACKWARD);
- avcodec_flush_buffers(c);
if(m_pkt.size)
m_skip = true;
}
@@ -271,7 +292,6 @@ void DecoderFFmpeg::fillBuffer()
m_temp_pkt.size = 0;
continue;
}
-#if (LIBAVCODEC_VERSION_INT >= ((51<<16)+(44<<8)+0))
if(m_seekTime && c->codec_id == CODEC_ID_APE)
{
int64_t rescaledPts = av_rescale(m_pkt.pts,
@@ -282,11 +302,9 @@ void DecoderFFmpeg::fillBuffer()
}
else
m_skipBytes = 0;
-
-#endif
m_seekTime = 0;
}
-#if (LIBAVCODEC_VERSION_INT >= ((51<<16)+(44<<8)+0))
+
if(m_skipBytes > 0 && c->codec_id == CODEC_ID_APE)
{
while (m_skipBytes > 0)
@@ -308,14 +326,12 @@ void DecoderFFmpeg::fillBuffer()
}
else
m_output_at = ffmpeg_decode(m_output_buf);
-#else
- m_output_at = ffmpeg_decode(m_output_buf);
-#endif
+
if(m_output_at < 0)
{
m_output_at = 0;
m_temp_pkt.size = 0;
-#if (LIBAVCODEC_VERSION_INT >= ((52<<16)+(20<<8)+0))
+
if(c->codec_id == CODEC_ID_SHORTEN)
{
if(m_pkt.data)
@@ -323,15 +339,13 @@ void DecoderFFmpeg::fillBuffer()
m_pkt.data = 0;
break;
}
-#endif
continue;
}
else if(m_output_at == 0)
{
-#if (LIBAVCODEC_VERSION_INT >= ((52<<16)+(20<<8)+0))
if(c->codec_id == CODEC_ID_SHORTEN)
continue;
-#endif
+
if(m_pkt.data)
av_free_packet(&m_pkt);
m_pkt.data = 0;
diff --git a/src/plugins/Input/ffmpeg/decoder_ffmpeg.h b/src/plugins/Input/ffmpeg/decoder_ffmpeg.h
index 5dc3085b9..cd30dc4c1 100644
--- a/src/plugins/Input/ffmpeg/decoder_ffmpeg.h
+++ b/src/plugins/Input/ffmpeg/decoder_ffmpeg.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2009 by Ilya Kotov *
+ * Copyright (C) 2006-2011 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -22,23 +22,8 @@
#define __decoder_ffmeg_h
extern "C"{
-
-#if defined HAVE_FFMPEG_AVFORMAT_H
-#include <ffmpeg/avformat.h>
-#elif defined HAVE_LIBAVFORMAT_AVFORMAT_H
#include <libavformat/avformat.h>
-#else
-#include <avformat.h>
-#endif
-
-
-#if defined HAVE_FFMPEG_AVCODEC_H
-#include <ffmpeg/avcodec.h>
-#elif defined HAVE_LIBAVCODEC_AVCODEC_H
#include <libavcodec/avcodec.h>
-#else
-#include <avcodec.h>
-#endif
}
#include <qmmp/decoder.h>
@@ -57,7 +42,7 @@ public:
qint64 read(char *audio, qint64 maxSize);
void seek(qint64 time);
-private:
+private:
//helper functions
void fillBuffer();
qint64 ffmpeg_decode(uint8_t *audio);
@@ -72,13 +57,19 @@ private:
AVPacket m_pkt;
AVPacket m_temp_pkt;
- ByteIOContext m_stream;
+
+#if (LIBAVCODEC_VERSION_INT >= ((52<<16)+(102<<8)+0))
+ AVIOContext *m_stream;
+#else
+ ByteIOContext *m_stream;
+#endif
+
uint8_t *m_output_buf;
qint64 m_output_at;
uchar m_input_buf[INPUT_BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
int64_t m_seekTime;
- qint64 m_skipBytes;
+ qint64 m_skipBytes;
};
diff --git a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
index 16a837fae..98cc0336c 100644
--- a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
+++ b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2010 by Ilya Kotov *
+ * Copyright (C) 2008-2011 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -21,24 +21,9 @@
#include <QtGui>
#include <QSettings>
-extern "C"
-{
-#if defined HAVE_FFMPEG_AVFORMAT_H
-#include <ffmpeg/avformat.h>
-#elif defined HAVE_LIBAVFORMAT_AVFORMAT_H
+extern "C"{
#include <libavformat/avformat.h>
-#else
-#include <avformat.h>
-#endif
-
-
-#if defined HAVE_FFMPEG_AVCODEC_H
-#include <ffmpeg/avcodec.h>
-#elif defined HAVE_LIBAVCODEC_AVCODEC_H
#include <libavcodec/avcodec.h>
-#else
-#include <avcodec.h>
-#endif
}
#include "ffmpegmetadatamodel.h"
@@ -147,13 +132,30 @@ QList<FileInfo *> DecoderFFmpegFactory::createPlayList(const QString &fileName,
if (useMetaData)
{
- info->setMetaData(Qmmp::ALBUM, QString::fromUtf8(in->album).trimmed());
- info->setMetaData(Qmmp::ARTIST, QString::fromUtf8(in->author).trimmed());
- info->setMetaData(Qmmp::COMMENT, QString::fromUtf8(in->comment).trimmed());
- info->setMetaData(Qmmp::GENRE, QString::fromUtf8(in->genre).trimmed());
- info->setMetaData(Qmmp::TITLE, QString::fromUtf8(in->title).trimmed());
- info->setMetaData(Qmmp::YEAR, in->year);
- info->setMetaData(Qmmp::TRACK, in->track);
+ AVMetadataTag *album = av_metadata_get(in->metadata,"album",0,0);
+ AVMetadataTag *artist = av_metadata_get(in->metadata,"artist",0,0);
+ AVMetadataTag *comment = av_metadata_get(in->metadata,"comment",0,0);
+ AVMetadataTag *genre = av_metadata_get(in->metadata,"genre",0,0);
+ AVMetadataTag *title = av_metadata_get(in->metadata,"title",0,0);
+ AVMetadataTag *year = av_metadata_get(in->metadata,"WM/Year",0,0);
+ if(!year)
+ year = av_metadata_get(in->metadata,"year",0,0);
+ AVMetadataTag *track = av_metadata_get(in->metadata,"track",0,0);
+
+ if(album)
+ info->setMetaData(Qmmp::ALBUM, QString::fromUtf8(album->value).trimmed());
+ if(artist)
+ info->setMetaData(Qmmp::ARTIST, QString::fromUtf8(artist->value).trimmed());
+ if(comment)
+ info->setMetaData(Qmmp::COMMENT, QString::fromUtf8(comment->value).trimmed());
+ if(genre)
+ info->setMetaData(Qmmp::GENRE, QString::fromUtf8(genre->value).trimmed());
+ if(title)
+ info->setMetaData(Qmmp::TITLE, QString::fromUtf8(title->value).trimmed());
+ if(year)
+ info->setMetaData(Qmmp::YEAR, year->value);
+ if(track)
+ info->setMetaData(Qmmp::TRACK, track->value);
}
info->setLength(in->duration/AV_TIME_BASE);
av_close_input_file(in);
diff --git a/src/plugins/Input/ffmpeg/ffmpeg.pro b/src/plugins/Input/ffmpeg/ffmpeg.pro
index 9d7851700..50b25f822 100644
--- a/src/plugins/Input/ffmpeg/ffmpeg.pro
+++ b/src/plugins/Input/ffmpeg/ffmpeg.pro
@@ -12,26 +12,14 @@ QMAKE_CLEAN = ../libffmpeg.so
TARGET = $$PLUGINS_PREFIX/Input/ffmpeg
QMAKE_CLEAN = $$PLUGINS_PREFIX/Input/libffmpeg.so
INCLUDEPATH += ../../../
-INCLUDEPATH += /usr/include/libavformat
-INCLUDEPATH += /usr/include/libavcodec
-INCLUDEPATH += /usr/include/libavutil
-INCLUDEPATH += /usr/include/ffmpeg/libavcodec
-INCLUDEPATH += /usr/include/ffmpeg/libavformat
-INCLUDEPATH += /usr/include/ffmpeg/libavutil
-INCLUDEPATH += /usr/include/ffmpeg
CONFIG += release \
warn_on \
plugin \
link_pkgconfig
TEMPLATE = lib
QMAKE_LIBDIR += ../../../../lib
-LIBS += -lqmmp \
- -L/usr/lib \
- -I/usr/include \
- -I/usr/include/ffmpeg \
- -I/usr/include/libavcodec \
- -I/usr/include/libavformat \
- -I/usr/include/libavutil
+LIBS += -lqmmp
+
DEFINES += __STDC_CONSTANT_MACROS
PKGCONFIG += libavcodec libavformat libavutil
TRANSLATIONS = translations/ffmpeg_plugin_ru.ts \
diff --git a/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp b/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp
index fd758661f..933c766b6 100644
--- a/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp
+++ b/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2009 by Ilya Kotov *
+ * Copyright (C) 2009-2011 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -18,17 +18,6 @@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
-
-extern "C"
-{
-#if defined HAVE_FFMPEG_AVCODEC_H
-#include <ffmpeg/avcodec.h>
-#elif defined HAVE_LIBAVCODEC_AVCODEC_H
-#include <libavcodec/avcodec.h>
-#else
-#include <avcodec.h>
-#endif
-}
#include "ffmpegmetadatamodel.h"
FFmpegMetaDataModel::FFmpegMetaDataModel(const QString &path, QObject *parent) : MetaDataModel(parent)
diff --git a/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h b/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h
index 992d1aa32..e14f8b93c 100644
--- a/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h
+++ b/src/plugins/Input/ffmpeg/ffmpegmetadatamodel.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2009 by Ilya Kotov *
+ * Copyright (C) 2009-2011 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -21,15 +21,9 @@
#ifndef FFMPEGMETADATAMODEL_H
#define FFMPEGMETADATAMODEL_H
-extern "C"
-{
-#if defined HAVE_FFMPEG_AVFORMAT_H
-#include <ffmpeg/avformat.h>
-#elif defined HAVE_LIBAVFORMAT_AVFORMAT_H
+extern "C"{
#include <libavformat/avformat.h>
-#else
-#include <avformat.h>
-#endif
+#include <libavcodec/avcodec.h>
}
#include <qmmp/metadatamodel.h>
diff --git a/src/plugins/Input/ffmpeg/settingsdialog.cpp b/src/plugins/Input/ffmpeg/settingsdialog.cpp
index 3691b6e21..be77ebc43 100644
--- a/src/plugins/Input/ffmpeg/settingsdialog.cpp
+++ b/src/plugins/Input/ffmpeg/settingsdialog.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2010 by Ilya Kotov *
+ * Copyright (C) 2008-2011 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -23,25 +23,10 @@
#include <qmmp/qmmp.h>
-extern "C"
-{
-#if defined HAVE_FFMPEG_AVFORMAT_H
-#include <ffmpeg/avformat.h>
-#elif defined HAVE_LIBAVFORMAT_AVFORMAT_H
+extern "C"{
#include <libavformat/avformat.h>
-#else
-#include <avformat.h>
-#endif
-
-#if defined HAVE_FFMPEG_AVCODEC_H
-#include <ffmpeg/avcodec.h>
-#elif defined HAVE_LIBAVCODEC_AVCODEC_H
#include <libavcodec/avcodec.h>
-#else
-#include <avcodec.h>
-#endif
}
-
#include "settingsdialog.h"
SettingsDialog::SettingsDialog(QWidget *parent)
@@ -52,25 +37,16 @@ SettingsDialog::SettingsDialog(QWidget *parent)
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
QStringList filters;
filters << "*.wma";
-#if (LIBAVCODEC_VERSION_INT >= ((51<<16)+(44<<8)+0))
filters << "*.ape";
-#endif
-#if (LIBAVCODEC_VERSION_INT >= ((52<<16)+(20<<8)+0))
filters << "*.shn";
-#endif
filters = settings.value("FFMPEG/filters", filters).toStringList();
avcodec_init();
avcodec_register_all();
av_register_all();
ui.wmaCheckBox->setEnabled(avcodec_find_decoder(CODEC_ID_WMAV1));
ui.wmaCheckBox->setChecked(filters.contains("*.wma") && avcodec_find_decoder(CODEC_ID_WMAV1));
-#if (LIBAVCODEC_VERSION_INT >= ((51<<16)+(44<<8)+0))
ui.apeCheckBox->setEnabled(avcodec_find_decoder(CODEC_ID_APE));
ui.apeCheckBox->setChecked(filters.contains("*.ape") && avcodec_find_decoder(CODEC_ID_APE));
-#else
- ui.apeCheckBox->setChecked(false);
- ui.apeCheckBox->setEnabled(false);
-#endif
ui.ttaCheckBox->setEnabled(avcodec_find_decoder(CODEC_ID_TTA));
ui.ttaCheckBox->setChecked(filters.contains("*.tta") && avcodec_find_decoder(CODEC_ID_TTA));
ui.alacCheckBox->setEnabled(avcodec_find_decoder(CODEC_ID_ALAC));
@@ -83,12 +59,7 @@ SettingsDialog::SettingsDialog(QWidget *parent)
ui.mp4CheckBox->setChecked(filters.contains("*.m4a") && avcodec_find_decoder(CODEC_ID_AAC));
ui.raCheckBox->setEnabled(avcodec_find_decoder(CODEC_ID_RA_288));
ui.raCheckBox->setChecked(filters.contains("*.ra") && avcodec_find_decoder(CODEC_ID_RA_288));
-#if (LIBAVCODEC_VERSION_INT >= ((52<<16)+(20<<8)+0))
ui.shCheckBox->setChecked(filters.contains("*.shn") && avcodec_find_decoder(CODEC_ID_SHORTEN));
-#else
- ui.shCheckBox->setChecked(false);
- ui.shCheckBox->setEnabled(false);
-#endif
}
SettingsDialog::~SettingsDialog()