From kde-commits Sun Nov 20 14:45:20 2016 From: Jean-Baptiste Mardelle Date: Sun, 20 Nov 2016 14:45:20 +0000 To: kde-commits Subject: [kdenlive/Applications/16.12] src: Do not cache supported codecs / formats Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=147965313505429 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); }