+ QString formats = m_capture.v4l_devices->itemData(m_capture.v4l_devices->currentIndex(), Qt::UserRole + 1).toString();
+
+ m_capture.v4l_formats->blockSignals(true);
+ m_capture.v4l_formats->clear();
+
+ QString vl4ProfilePath = KStandardDirs::locateLocal("appdata", "profiles/video4linux");
+ if (QFile::exists(vl4ProfilePath)) {
+ MltVideoProfile profileInfo = ProfilesDialog::getVideoProfile(vl4ProfilePath);
+ m_capture.v4l_formats->addItem(i18n("Current settings (%1x%2, %3/%4fps)", profileInfo.width, profileInfo.height, profileInfo.frame_rate_num, profileInfo.frame_rate_den), QStringList() << QString("unknown") <<QString::number(profileInfo.width)<<QString::number(profileInfo.height)<<QString::number(profileInfo.frame_rate_num)<<QString::number(profileInfo.frame_rate_den));
+ }
+ QStringList pixelformats = formats.split(">", QString::SkipEmptyParts);
+ QString itemSize;
+ QString pixelFormat;
+ QStringList itemRates;
+ for (int i = 0; i < pixelformats.count(); i++) {
+ QString format = pixelformats.at(i).section(':', 0, 0);
+ QStringList sizes = pixelformats.at(i).split(":", QString::SkipEmptyParts);
+ pixelFormat = sizes.takeFirst();
+ for (int j = 0; j < sizes.count(); j++) {
+ itemSize = sizes.at(j).section("=", 0, 0);
+ itemRates = sizes.at(j).section("=", 1, 1).split(",", QString::SkipEmptyParts);
+ for (int k = 0; k < itemRates.count(); k++) {
+ m_capture.v4l_formats->addItem("[" + format + "] " + itemSize + " (" + itemRates.at(k) + ")", QStringList() << format << itemSize.section('x', 0, 0) << itemSize.section('x', 1, 1) << itemRates.at(k).section('/', 0, 0) << itemRates.at(k).section('/', 1, 1));
+ }
+ }
+ }
+ if (!QFile::exists(vl4ProfilePath)) {
+ if (m_capture.v4l_formats->count() > 9) slotSaveCaptureFormat();
+ else {
+ // No existing profile and no autodetected profiles
+ MltVideoProfile profileInfo;
+ profileInfo.width = 320;
+ profileInfo.height = 200;
+ profileInfo.frame_rate_num = 15;
+ profileInfo.frame_rate_den = 1;
+ profileInfo.display_aspect_num = 4;
+ profileInfo.display_aspect_den = 3;
+ profileInfo.sample_aspect_num = 1;
+ profileInfo.sample_aspect_den = 1;
+ profileInfo.progressive = 1;
+ profileInfo.colorspace = 601;
+ ProfilesDialog::saveProfile(profileInfo, vl4ProfilePath);
+ m_capture.v4l_formats->addItem(i18n("Default settings (%1x%2, %3/%4fps)", profileInfo.width, profileInfo.height, profileInfo.frame_rate_num, profileInfo.frame_rate_den), QStringList() << QString("unknown") <<QString::number(profileInfo.width)<<QString::number(profileInfo.height)<<QString::number(profileInfo.frame_rate_num)<<QString::number(profileInfo.frame_rate_den));
+ }
+ }
+ m_capture.v4l_formats->blockSignals(false);