Git commit 64027bb069ceab0bfc0d80f8cdf52e5b24783e0c by Jean-Baptiste Mardel=
le.
Committed on 20/11/2016 at 14:45.
Pushed by mardelle into branch 'Applications/16.12'.
Do not cache supported codecs / formats
Fix slideshow image count message when no image found
M +31 -11 src/dialogs/renderwidget.cpp
M +1 -0 src/dialogs/renderwidget.h
M +5 -13 src/dialogs/wizard.cpp
M +0 -15 src/kdenlivesettings.kcfg
M +5 -1 src/project/dialogs/slideshowclip.cpp
http://commits.kde.org/kdenlive/64027bb069ceab0bfc0d80f8cdf52e5b24783e0c
diff --git a/src/dialogs/renderwidget.cpp b/src/dialogs/renderwidget.cpp
index 9546f7c..a2f028b 100644
--- a/src/dialogs/renderwidget.cpp
+++ b/src/dialogs/renderwidget.cpp
@@ -92,6 +92,9 @@ enum JOBSTATUS {
ABORTEDJOB
};
=
+static QStringList acodecsList;
+static QStringList vcodecsList;
+static QStringList supportedFormats;
=
RenderJobItem::RenderJobItem(QTreeWidget * parent, const QStringList & str=
ings, int type)
: QTreeWidgetItem(parent, strings, type),
@@ -312,6 +315,7 @@ RenderWidget::RenderWidget(const QString &projectfolder=
, bool enableProxy, const
QDBusConnectionInterface* interface =3D QDBusConnection::sessionBus().=
interface();
if (!interface || (!interface->isServiceRegistered(QStringLiteral("org=
.kde.ksmserver")) && !interface->isServiceRegistered(QStringLiteral("org.gn=
ome.SessionManager"))))
m_view.shutdown->setEnabled(false);
+ checkCodecs();
refreshView();
focusFirstVisibleItem();
adjustSize();
@@ -1429,14 +1433,6 @@ void RenderWidget::refreshView()
QIcon brokenIcon =3D KoIconUtils::themedIcon(QStringLiteral("dialog-cl=
ose"));
QIcon warningIcon =3D KoIconUtils::themedIcon(QStringLiteral("dialog-w=
arning"));
=
- QStringList formatsList;
- QStringList vcodecsList;
- QStringList acodecsList;
- if (!KdenliveSettings::bypasscodeccheck()) {
- formatsList=3D KdenliveSettings::supportedformats();
- vcodecsList =3D KdenliveSettings::videocodecs();
- acodecsList =3D KdenliveSettings::audiocodecs();
- }
KColorScheme scheme(palette().currentColorGroup(), KColorScheme::Windo=
w);
const QColor disabled =3D scheme.foreground(KColorScheme::InactiveText=
).color();
const QColor disabledbg =3D scheme.background(KColorScheme::NegativeBa=
ckground).color();
@@ -1474,13 +1470,13 @@ void RenderWidget::refreshView()
}
=
// Make sure the selected profile uses an installed avformat c=
odec / format
- if (!formatsList.isEmpty()) {
+ if (!supportedFormats.isEmpty()) {
QString format;
if (std.startsWith(QLatin1String("f=3D"))) format =3D std.=
section(QStringLiteral("f=3D"), 1, 1);
else if (std.contains(QStringLiteral(" f=3D"))) format =3D=
std.section(QStringLiteral(" f=3D"), 1, 1);
if (!format.isEmpty()) {
format =3D format.section(' ', 0, 0).toLower();
- if (!formatsList.contains(format)) {
+ if (!supportedFormats.contains(format)) {
item->setData(0, ErrorRole, i18n("Unsupported vide=
o format: %1", format));
item->setIcon(0, brokenIcon);
item->setForeground(0, disabled);
@@ -1817,7 +1813,6 @@ void RenderWidget::parseFile(const QString &exportFil=
e, bool editable)
QString extension;
QDomNodeList groups =3D doc.elementsByTagName(QStringLiteral("group"));
QTreeWidgetItem *item =3D NULL;
- const QStringList acodecsList =3D KdenliveSettings::audiocodecs();
bool replaceVorbisCodec =3D false;
if (acodecsList.contains(QStringLiteral("libvorbis"))) replaceVorbisCo=
dec =3D true;
bool replaceLibfaacCodec =3D false;
@@ -2547,3 +2542,28 @@ void RenderWidget::adjustSpeed(int speedIndex)
}
}
}
+
+void RenderWidget::checkCodecs()
+{
+ Mlt::Profile p;
+ Mlt::Consumer *consumer =3D new Mlt::Consumer(p, "avformat");;
+ if (consumer) {
+ consumer->set("vcodec", "list");
+ consumer->set("acodec", "list");
+ consumer->set("f", "list");
+ consumer->start();
+ vcodecsList.clear();
+ Mlt::Properties vcodecs((mlt_properties) consumer->get_data("vcode=
c"));
+ for (int i =3D 0; i < vcodecs.count(); ++i)
+ vcodecsList << QString(vcodecs.get(i));
+ acodecsList.clear();
+ Mlt::Properties acodecs((mlt_properties) consumer->get_data("acode=
c"));
+ for (int i =3D 0; i < acodecs.count(); ++i)
+ acodecsList << QString(acodecs.get(i));
+ supportedFormats.clear();
+ Mlt::Properties formats((mlt_properties) consumer->get_data("f"));
+ for (int i =3D 0; i < formats.count(); ++i)
+ supportedFormats << QString(formats.get(i));
+ delete consumer;
+ }
+}
diff --git a/src/dialogs/renderwidget.h b/src/dialogs/renderwidget.h
index ab8c4ff..ced88c0 100644
--- a/src/dialogs/renderwidget.h
+++ b/src/dialogs/renderwidget.h
@@ -211,6 +211,7 @@ private:
bool saveProfile(QDomElement newprofile);
/** @brief Create a rendering profile from MLT preset. */
QTreeWidgetItem *loadFromMltPreset(const QString groupName, const QStr=
ing path, const QString profileName);
+ void checkCodecs();
=
signals:
void abortProcess(const QString &url);
diff --git a/src/dialogs/wizard.cpp b/src/dialogs/wizard.cpp
index 3c1819d..204d1de 100644
--- a/src/dialogs/wizard.cpp
+++ b/src/dialogs/wizard.cpp
@@ -54,6 +54,9 @@ const int mltVersionRevision =3D MLT_MIN_PATCH_VERSION;
=
static const char kdenlive_version[] =3D KDENLIVE_VERSION;
=
+static QStringList acodecsList;
+static QStringList vcodecsList;
+
=
MyWizardPage::MyWizardPage(QWidget *parent) : QWizardPage(parent)
, m_isComplete(false)
@@ -363,21 +366,12 @@ void Wizard::checkMltComponents()
consumer->set("acodec", "list");
consumer->set("f", "list");
consumer->start();
- QStringList result;
Mlt::Properties vcodecs((mlt_properties) consumer->get_data("v=
codec"));
for (int i =3D 0; i < vcodecs.count(); ++i)
- result << QString(vcodecs.get(i));
- KdenliveSettings::setVideocodecs(result);
- result.clear();
+ vcodecsList << QString(vcodecs.get(i));
Mlt::Properties acodecs((mlt_properties) consumer->get_data("a=
codec"));
for (int i =3D 0; i < acodecs.count(); ++i)
- result << QString(acodecs.get(i));
- KdenliveSettings::setAudiocodecs(result);
- result.clear();
- Mlt::Properties formats((mlt_properties) consumer->get_data("f=
"));
- for (int i =3D 0; i < formats.count(); ++i)
- result << QString(formats.get(i));
- KdenliveSettings::setSupportedformats(result);
+ acodecsList << QString(acodecs.get(i));
checkMissingCodecs();
delete consumer;
}
@@ -413,8 +407,6 @@ void Wizard::checkMltComponents()
=
void Wizard::checkMissingCodecs()
{
- const QStringList acodecsList =3D KdenliveSettings::audiocodecs();
- const QStringList vcodecsList =3D KdenliveSettings::videocodecs();
bool replaceVorbisCodec =3D false;
if (acodecsList.contains(QStringLiteral("libvorbis"))) replaceVorbisCo=
dec =3D true;
bool replaceLibfaacCodec =3D false;
diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg
index 1082805..034d3f2 100644
--- a/src/kdenlivesettings.kcfg
+++ b/src/kdenlivesettings.kcfg
@@ -762,21 +762,6 @@
=
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
true
diff --git a/src/project/dialogs/slideshowclip.cpp b/src/project/dialogs/sl=
ideshowclip.cpp
index 8f63d15..11798ab 100644
--- a/src/project/dialogs/slideshowclip.cpp
+++ b/src/project/dialogs/slideshowclip.cpp
@@ -273,7 +273,11 @@ void SlideshowClip::parseFolder()
}
m_count =3D m_view.icon_list->count();
m_view.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(m_count > 0=
);
- m_view.label_info->setText(i18np("1 image found", "%1 images found", m=
_count));
+ if (m_count =3D=3D 0) {
+ m_view.label_info->setText(i18n("No image found"));
+ } else {
+ m_view.label_info->setText(i18np("1 image found", "%1 images found=
", m_count));
+ }
if (m_view.show_thumbs->isChecked()) slotGenerateThumbs();
m_view.icon_list->setCurrentRow(0);
}