summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-02-08 16:32:38 +0100
committerLars Knoll <lars.knoll@qt.io>2021-02-12 07:55:14 +0000
commitf62e7ba660b7214d609df30fe739e612584c1f32 (patch)
tree59b5e8ef2f06d17ec3822994f401b314846a4602
parentf8512bcafadef8d71244f78ce7f4bc88e06698f3 (diff)
Cleanup QImageEncoderSettings
Define a list of supported file formats, as with QMediaEncoderSettings. Implement support for detecting those on gstreamer. Remove the old interface in QCameraImageEncoderControl. Change-Id: Ic3d67dd19fe13336ba2017dc8055014274619ce6 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r--examples/multimediawidgets/camera/imagesettings.cpp12
-rw-r--r--src/multimedia/camera/qcameraimagecapture.cpp19
-rw-r--r--src/multimedia/camera/qcameraimagecapture.h3
-rw-r--r--src/multimedia/controls/qimageencodercontrol.cpp12
-rw-r--r--src/multimedia/controls/qimageencodercontrol.h3
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidimageencodercontrol.cpp13
-rw-r--r--src/multimedia/platform/android/mediacapture/qandroidimageencodercontrol_p.h2
-rw-r--r--src/multimedia/platform/android/qandroidformatsinfo.cpp2
-rw-r--r--src/multimedia/platform/darwin/camera/avfimageencodercontrol.mm13
-rw-r--r--src/multimedia/platform/darwin/qdarwinformatsinfo.mm3
-rw-r--r--src/multimedia/platform/gstreamer/mediacapture/qgstreamerimageencode.cpp13
-rw-r--r--src/multimedia/platform/gstreamer/mediacapture/qgstreamerimageencode_p.h3
-rw-r--r--src/multimedia/platform/gstreamer/qgstreamerformatsinfo.cpp57
-rw-r--r--src/multimedia/platform/qmediaplatformformatinfo_p.h4
-rw-r--r--src/multimedia/platform/qnx/camera/bbimageencodercontrol.cpp18
-rw-r--r--src/multimedia/platform/qnx/camera/bbimageencodercontrol_p.h3
-rw-r--r--src/multimedia/recording/qmediaencodersettings.cpp69
-rw-r--r--src/multimedia/recording/qmediaencodersettings.h17
-rw-r--r--tests/auto/unit/mockbackend/mockimageencodercontrol.h15
-rw-r--r--tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp14
-rw-r--r--tests/auto/unit/multimedia/qcameraimagecapture/tst_qcameraimagecapture.cpp25
21 files changed, 156 insertions, 164 deletions
diff --git a/examples/multimediawidgets/camera/imagesettings.cpp b/examples/multimediawidgets/camera/imagesettings.cpp
index 239442a0f..6dfcba91e 100644
--- a/examples/multimediawidgets/camera/imagesettings.cpp
+++ b/examples/multimediawidgets/camera/imagesettings.cpp
@@ -67,10 +67,10 @@ ImageSettings::ImageSettings(QCameraImageCapture *imageCapture, QWidget *parent)
//image codecs
ui->imageCodecBox->addItem(tr("Default image format"), QVariant(QString()));
- const QStringList supportedImageCodecs = imagecapture->supportedImageCodecs();
- for (const QString &codecName : supportedImageCodecs) {
- QString description = imagecapture->imageCodecDescription(codecName);
- ui->imageCodecBox->addItem(codecName + ": " + description, QVariant(codecName));
+ const auto supportedImageFormats = QImageEncoderSettings::supportedFormats();
+ for (const auto &f : supportedImageFormats) {
+ QString description = QImageEncoderSettings::fileFormatDescription(f);
+ ui->imageCodecBox->addItem(QImageEncoderSettings::fileFormatName(f) + ": " + description, QVariant::fromValue(f));
}
ui->imageQualitySlider->setRange(0, int(QMultimedia::VeryHighQuality));
@@ -103,7 +103,7 @@ void ImageSettings::changeEvent(QEvent *e)
QImageEncoderSettings ImageSettings::imageSettings() const
{
QImageEncoderSettings settings = imagecapture->encodingSettings();
- settings.setCodec(boxValue(ui->imageCodecBox).toString());
+ settings.setFormat(boxValue(ui->imageCodecBox).value<QImageEncoderSettings::FileFormat>());
settings.setQuality(QMultimedia::EncodingQuality(ui->imageQualitySlider->value()));
settings.setResolution(boxValue(ui->imageResolutionBox).toSize());
@@ -112,7 +112,7 @@ QImageEncoderSettings ImageSettings::imageSettings() const
void ImageSettings::setImageSettings(const QImageEncoderSettings &imageSettings)
{
- selectComboBoxItem(ui->imageCodecBox, QVariant(imageSettings.codec()));
+ selectComboBoxItem(ui->imageCodecBox, QVariant::fromValue(imageSettings.format()));
selectComboBoxItem(ui->imageResolutionBox, QVariant(imageSettings.resolution()));
ui->imageQualitySlider->setValue(imageSettings.quality());
}
diff --git a/src/multimedia/camera/qcameraimagecapture.cpp b/src/multimedia/camera/qcameraimagecapture.cpp
index f8649b53f..9e6462efb 100644
--- a/src/multimedia/camera/qcameraimagecapture.cpp
+++ b/src/multimedia/camera/qcameraimagecapture.cpp
@@ -239,25 +239,6 @@ QString QCameraImageCapture::errorString() const
return d_func()->errorString;
}
-
-/*!
- Returns a list of supported image codecs.
-*/
-QStringList QCameraImageCapture::supportedImageCodecs() const
-{
- return d_func()->encoderControl ?
- d_func()->encoderControl->supportedImageCodecs() : QStringList();
-}
-
-/*!
- Returns a description of an image \a codec.
-*/
-QString QCameraImageCapture::imageCodecDescription(const QString &codec) const
-{
- return d_func()->encoderControl ?
- d_func()->encoderControl->imageCodecDescription(codec) : QString();
-}
-
/*!
Returns the image encoder settings being used.
diff --git a/src/multimedia/camera/qcameraimagecapture.h b/src/multimedia/camera/qcameraimagecapture.h
index f46c4bc1e..4bb3ed89a 100644
--- a/src/multimedia/camera/qcameraimagecapture.h
+++ b/src/multimedia/camera/qcameraimagecapture.h
@@ -95,9 +95,6 @@ public:
bool isReadyForCapture() const;
- QStringList supportedImageCodecs() const;
- QString imageCodecDescription(const QString &codecName) const;
-
QImageEncoderSettings encodingSettings() const;
void setEncodingSettings(const QImageEncoderSettings& settings);
diff --git a/src/multimedia/controls/qimageencodercontrol.cpp b/src/multimedia/controls/qimageencodercontrol.cpp
index 793e91d73..9c21a1951 100644
--- a/src/multimedia/controls/qimageencodercontrol.cpp
+++ b/src/multimedia/controls/qimageencodercontrol.cpp
@@ -98,18 +98,6 @@ QImageEncoderControl::QImageEncoderControl(QObject *parent)
*/
/*!
- \fn QImageEncoderControl::supportedImageCodecs() const
-
- Returns a list of supported image codecs.
-*/
-
-/*!
- \fn QImageEncoderControl::imageCodecDescription(const QString &codec) const
-
- Returns a description of an image \a codec.
-*/
-
-/*!
\fn QImageEncoderControl::imageSettings() const
Returns the currently used image encoder settings.
diff --git a/src/multimedia/controls/qimageencodercontrol.h b/src/multimedia/controls/qimageencodercontrol.h
index 330186bb7..c67681305 100644
--- a/src/multimedia/controls/qimageencodercontrol.h
+++ b/src/multimedia/controls/qimageencodercontrol.h
@@ -58,9 +58,6 @@ class Q_MULTIMEDIA_EXPORT QImageEncoderControl : public QObject
Q_OBJECT
public:
- virtual QStringList supportedImageCodecs() const = 0;
- virtual QString imageCodecDescription(const QString &codec) const = 0;
-
virtual QImageEncoderSettings imageSettings() const = 0;
virtual void setImageSettings(const QImageEncoderSettings &settings) = 0;
diff --git a/src/multimedia/platform/android/mediacapture/qandroidimageencodercontrol.cpp b/src/multimedia/platform/android/mediacapture/qandroidimageencodercontrol.cpp
index 9ef5eb90e..7be520941 100644
--- a/src/multimedia/platform/android/mediacapture/qandroidimageencodercontrol.cpp
+++ b/src/multimedia/platform/android/mediacapture/qandroidimageencodercontrol.cpp
@@ -50,19 +50,6 @@ QAndroidImageEncoderControl::QAndroidImageEncoderControl(QAndroidCameraSession *
{
}
-QStringList QAndroidImageEncoderControl::supportedImageCodecs() const
-{
- return QStringList() << QLatin1String("jpeg");
-}
-
-QString QAndroidImageEncoderControl::imageCodecDescription(const QString &codecName) const
-{
- if (codecName == QLatin1String("jpeg"))
- return tr("JPEG image");
-
- return QString();
-}
-
QImageEncoderSettings QAndroidImageEncoderControl::imageSettings() const
{
return m_session->imageSettings();
diff --git a/src/multimedia/platform/android/mediacapture/qandroidimageencodercontrol_p.h b/src/multimedia/platform/android/mediacapture/qandroidimageencodercontrol_p.h
index a162171f9..19555879e 100644
--- a/src/multimedia/platform/android/mediacapture/qandroidimageencodercontrol_p.h
+++ b/src/multimedia/platform/android/mediacapture/qandroidimageencodercontrol_p.h
@@ -63,8 +63,6 @@ class QAndroidImageEncoderControl : public QImageEncoderControl
public:
explicit QAndroidImageEncoderControl(QAndroidCameraSession *session);
- QStringList supportedImageCodecs() const override;
- QString imageCodecDescription(const QString &codecName) const override;
QImageEncoderSettings imageSettings() const override;
void setImageSettings(const QImageEncoderSettings &settings) override;
diff --git a/src/multimedia/platform/android/qandroidformatsinfo.cpp b/src/multimedia/platform/android/qandroidformatsinfo.cpp
index 1faaca87b..c0cf72149 100644
--- a/src/multimedia/platform/android/qandroidformatsinfo.cpp
+++ b/src/multimedia/platform/android/qandroidformatsinfo.cpp
@@ -52,6 +52,8 @@ QAndroidFormatInfo::QAndroidFormatInfo()
{ QMediaFormat::VideoCodec::H264, QMediaFormat::VideoCodec::H265 } }
};
encoders = decoders;
+
+ imageFormats << QImageEncoderSettings::JPEG;
}
QAndroidFormatInfo::~QAndroidFormatInfo()
diff --git a/src/multimedia/platform/darwin/camera/avfimageencodercontrol.mm b/src/multimedia/platform/darwin/camera/avfimageencodercontrol.mm
index 7b04e5f70..95508abe5 100644
--- a/src/multimedia/platform/darwin/camera/avfimageencodercontrol.mm
+++ b/src/multimedia/platform/darwin/camera/avfimageencodercontrol.mm
@@ -59,19 +59,6 @@ AVFImageEncoderControl::AVFImageEncoderControl(AVFCameraService *service)
Q_ASSERT(service);
}
-QStringList AVFImageEncoderControl::supportedImageCodecs() const
-{
- return QStringList() << QLatin1String("jpeg");
-}
-
-QString AVFImageEncoderControl::imageCodecDescription(const QString &codecName) const
-{
- if (codecName == QLatin1String("jpeg"))
- return tr("JPEG image");
-
- return QString();
-}
-
QImageEncoderSettings AVFImageEncoderControl::requestedSettings() const
{
return m_settings;
diff --git a/src/multimedia/platform/darwin/qdarwinformatsinfo.mm b/src/multimedia/platform/darwin/qdarwinformatsinfo.mm
index 11a458dea..d168c5d45 100644
--- a/src/multimedia/platform/darwin/qdarwinformatsinfo.mm
+++ b/src/multimedia/platform/darwin/qdarwinformatsinfo.mm
@@ -162,6 +162,9 @@ QDarwinFormatInfo::QDarwinFormatInfo()
{} }
};
#endif
+
+ // ###
+ imageFormats << QImageEncoderSettings::JPEG;
}
QDarwinFormatInfo::~QDarwinFormatInfo()
diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamerimageencode.cpp b/src/multimedia/platform/gstreamer/mediacapture/qgstreamerimageencode.cpp
index e5b2859d2..01b2dbb93 100644
--- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamerimageencode.cpp
+++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamerimageencode.cpp
@@ -53,19 +53,6 @@ QGstreamerImageEncode::~QGstreamerImageEncode()
{
}
-QStringList QGstreamerImageEncode::supportedImageCodecs() const
-{
- return QStringList() << "jpeg";
-}
-
-QString QGstreamerImageEncode::imageCodecDescription(const QString &codecName) const
-{
- if (codecName == "jpeg")
- return tr("JPEG image encoder");
-
- return QString();
-}
-
QImageEncoderSettings QGstreamerImageEncode::imageSettings() const
{
return m_settings;
diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamerimageencode_p.h b/src/multimedia/platform/gstreamer/mediacapture/qgstreamerimageencode_p.h
index 89ace7d3c..d9b330f0e 100644
--- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamerimageencode_p.h
+++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamerimageencode_p.h
@@ -69,9 +69,6 @@ public:
QGstreamerImageEncode(QGstreamerCaptureSession *session);
virtual ~QGstreamerImageEncode();
- QStringList supportedImageCodecs() const override;
- QString imageCodecDescription(const QString &codecName) const override;
-
QImageEncoderSettings imageSettings() const override;
void setImageSettings(const QImageEncoderSettings &settings) override;
diff --git a/src/multimedia/platform/gstreamer/qgstreamerformatsinfo.cpp b/src/multimedia/platform/gstreamer/qgstreamerformatsinfo.cpp
index c185a563e..c01688535 100644
--- a/src/multimedia/platform/gstreamer/qgstreamerformatsinfo.cpp
+++ b/src/multimedia/platform/gstreamer/qgstreamerformatsinfo.cpp
@@ -139,6 +139,25 @@ static QMediaFormat::FileFormat fileFormatForCaps(QGstStructure structure)
return QMediaFormat::UnspecifiedFormat;
}
+
+static QImageEncoderSettings::FileFormat imageFormatForCaps(QGstStructure structure)
+{
+ const char *name = structure.name();
+
+ if (!strcmp(name, "image/jpeg")) {
+ return QImageEncoderSettings::JPEG;
+ } else if (!strcmp(name, "image/png")) {
+ return QImageEncoderSettings::PNG;
+ } else if (!strcmp(name, "image/webp")) {
+ return QImageEncoderSettings::WebP;
+ } else if (!strcmp(name, "image/webp")) {
+ return QImageEncoderSettings::WebP;
+ } else if (!strcmp(name, "image/tiff")) {
+ return QImageEncoderSettings::Tiff;
+ }
+ return QImageEncoderSettings::UnspecifiedFormat;
+}
+
static QPair<QList<QMediaFormat::AudioCodec>, QList<QMediaFormat::VideoCodec>> getCodecsList(bool decode)
{
QList<QMediaFormat::AudioCodec> audio;
@@ -250,6 +269,42 @@ QList<QGstreamerFormatsInfo::CodecMap> QGstreamerFormatsInfo::getMuxerList(bool
return muxers;
}
+static QList<QImageEncoderSettings::FileFormat> getImageFormatList()
+{
+ QSet<QImageEncoderSettings::FileFormat> formats;
+
+ GList *elementList = gst_element_factory_list_get_elements(GST_ELEMENT_FACTORY_TYPE_ENCODER,
+ GST_RANK_MARGINAL);
+
+ GList *element = elementList;
+ while (element) {
+ GstElementFactory *factory = (GstElementFactory *)element->data;
+ element = element->next;
+
+ const GList *padTemplates = gst_element_factory_get_static_pad_templates(factory);
+ while (padTemplates) {
+ GstStaticPadTemplate *padTemplate = (GstStaticPadTemplate *)padTemplates->data;
+ padTemplates = padTemplates->next;
+
+ if (padTemplate->direction == GST_PAD_SRC) {
+ QGstCaps caps = gst_static_caps_get(&padTemplate->static_caps);
+
+ for (int i = 0; i < caps.size(); i++) {
+ QGstStructure structure = caps.at(i);
+ auto f = imageFormatForCaps(structure);
+ if (f != QImageEncoderSettings::UnspecifiedFormat) {
+ qDebug() << structure.toString() << f;
+ formats.insert(f);
+ }
+ }
+ caps.unref();
+ }
+ }
+ }
+ gst_plugin_feature_list_free(elementList);
+ return formats.values();
+}
+
#if 0
static void dumpMuxers(const QList<QGstreamerFormatsInfo::CodecMap> &muxerList)
{
@@ -274,6 +329,8 @@ QGstreamerFormatsInfo::QGstreamerFormatsInfo()
codecs = getCodecsList(/*decode = */ false);
encoders = getMuxerList(/* demuxer = */false, codecs.first, codecs.second);
//dumpMuxers(encoders);
+
+ imageFormats = getImageFormatList();
}
QGstreamerFormatsInfo::~QGstreamerFormatsInfo()
diff --git a/src/multimedia/platform/qmediaplatformformatinfo_p.h b/src/multimedia/platform/qmediaplatformformatinfo_p.h
index 1cba1b086..05ea7b495 100644
--- a/src/multimedia/platform/qmediaplatformformatinfo_p.h
+++ b/src/multimedia/platform/qmediaplatformformatinfo_p.h
@@ -52,7 +52,7 @@
//
#include <private/qtmultimediaglobal_p.h>
-#include <qmediaformat.h>
+#include <qmediaencodersettings.h>
QT_BEGIN_NAMESPACE
@@ -75,6 +75,8 @@ public:
};
QList<CodecMap> encoders;
QList<CodecMap> decoders;
+
+ QList<QImageEncoderSettings::FileFormat> imageFormats;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qnx/camera/bbimageencodercontrol.cpp b/src/multimedia/platform/qnx/camera/bbimageencodercontrol.cpp
index 960accb02..65ebf2d63 100644
--- a/src/multimedia/platform/qnx/camera/bbimageencodercontrol.cpp
+++ b/src/multimedia/platform/qnx/camera/bbimageencodercontrol.cpp
@@ -48,24 +48,6 @@ BbImageEncoderControl::BbImageEncoderControl(BbCameraSession *session, QObject *
{
}
-QStringList BbImageEncoderControl::supportedImageCodecs() const
-{
- return QStringList() << QLatin1String("jpeg");
-}
-
-QString BbImageEncoderControl::imageCodecDescription(const QString &codecName) const
-{
- if (codecName == QLatin1String("jpeg"))
- return tr("JPEG image");
-
- return QString();
-}
-
-QList<QSize> BbImageEncoderControl::supportedResolutions(const QImageEncoderSettings &settings, bool *continuous) const
-{
- return m_session->supportedResolutions(settings, continuous);
-}
-
QImageEncoderSettings BbImageEncoderControl::imageSettings() const
{
return m_session->imageSettings();
diff --git a/src/multimedia/platform/qnx/camera/bbimageencodercontrol_p.h b/src/multimedia/platform/qnx/camera/bbimageencodercontrol_p.h
index 2ace35b4f..f7e4d4445 100644
--- a/src/multimedia/platform/qnx/camera/bbimageencodercontrol_p.h
+++ b/src/multimedia/platform/qnx/camera/bbimageencodercontrol_p.h
@@ -62,9 +62,6 @@ class BbImageEncoderControl : public QImageEncoderControl
public:
explicit BbImageEncoderControl(BbCameraSession *session, QObject *parent = 0);
- QStringList supportedImageCodecs() const override;
- QString imageCodecDescription(const QString &codecName) const override;
- QList<QSize> supportedResolutions(const QImageEncoderSettings &settings, bool *continuous = 0) const override;
QImageEncoderSettings imageSettings() const override;
void setImageSettings(const QImageEncoderSettings &settings) override;
diff --git a/src/multimedia/recording/qmediaencodersettings.cpp b/src/multimedia/recording/qmediaencodersettings.cpp
index 68df20216..a1e3b1653 100644
--- a/src/multimedia/recording/qmediaencodersettings.cpp
+++ b/src/multimedia/recording/qmediaencodersettings.cpp
@@ -39,6 +39,8 @@
#include "qmediaencodersettings.h"
#include "qmediaformat.h"
+#include <private/qmediaplatformintegration_p.h>
+#include <private/qmediaplatformformatinfo_p.h>
QT_BEGIN_NAMESPACE
@@ -438,7 +440,7 @@ class QImageEncoderSettingsPrivate : public QSharedData
{
public:
bool isNull = true;
- QString codec;
+ QImageEncoderSettings::FileFormat format;
QSize resolution;
QMultimedia::EncodingQuality quality = QMultimedia::NormalQuality;
QVariantMap encodingOptions;
@@ -513,7 +515,7 @@ bool QImageEncoderSettings::operator==(const QImageEncoderSettings &other) const
return (d == other.d) ||
(d->isNull == other.d->isNull &&
d->quality == other.d->quality &&
- d->codec == other.d->codec &&
+ d->format == other.d->format &&
d->resolution == other.d->resolution &&
d->encodingOptions == other.d->encodingOptions);
@@ -542,21 +544,72 @@ bool QImageEncoderSettings::isNull() const
}
/*!
- Returns the image codec.
+ Returns the image format.
*/
-QString QImageEncoderSettings::codec() const
+QImageEncoderSettings::FileFormat QImageEncoderSettings::format() const
{
- return d->codec;
+ return d->format;
}
/*!
- Sets the image \a codec.
+ Sets the image \a format.
*/
-void QImageEncoderSettings::setCodec(const QString& codec)
+void QImageEncoderSettings::setFormat(QImageEncoderSettings::FileFormat format)
{
d->isNull = false;
- d->codec = codec;
+ d->format = format;
+}
+
+QList<QImageEncoderSettings::FileFormat> QImageEncoderSettings::supportedFormats()
+{
+ return QMediaPlatformIntegration::instance()->formatInfo()->imageFormats;
+}
+
+QString QImageEncoderSettings::fileFormatName(QImageEncoderSettings::FileFormat f)
+{
+ const char *name = nullptr;
+ switch (f) {
+ case UnspecifiedFormat:
+ name = "Unspecified image format";
+ break;
+ case JPEG:
+ name = "JPEG";
+ break;
+ case PNG:
+ name = "PNG";
+ break;
+ case WebP:
+ name = "WebP";
+ break;
+ case Tiff:
+ name = "Tiff";
+ break;
+ }
+ return QString::fromUtf8(name);
+}
+
+QString QImageEncoderSettings::fileFormatDescription(QImageEncoderSettings::FileFormat f)
+{
+ const char *name = nullptr;
+ switch (f) {
+ case UnspecifiedFormat:
+ name = "Unspecified image format";
+ break;
+ case JPEG:
+ name = "JPEG";
+ break;
+ case PNG:
+ name = "PNG";
+ break;
+ case WebP:
+ name = "WebP";
+ break;
+ case Tiff:
+ name = "Tiff";
+ break;
+ }
+ return QString::fromUtf8(name);
}
/*!
diff --git a/src/multimedia/recording/qmediaencodersettings.h b/src/multimedia/recording/qmediaencodersettings.h
index b0a68af2d..6e8d35794 100644
--- a/src/multimedia/recording/qmediaencodersettings.h
+++ b/src/multimedia/recording/qmediaencodersettings.h
@@ -95,6 +95,15 @@ class QImageEncoderSettingsPrivate;
class Q_MULTIMEDIA_EXPORT QImageEncoderSettings
{
public:
+ enum FileFormat {
+ UnspecifiedFormat,
+ JPEG,
+ PNG,
+ WebP,
+ Tiff,
+ LastFileFormat = Tiff
+ };
+
QImageEncoderSettings();
QImageEncoderSettings(const QImageEncoderSettings& other);
@@ -106,8 +115,12 @@ public:
bool isNull() const;
- QString codec() const;
- void setCodec(const QString &);
+ FileFormat format() const;
+ void setFormat(FileFormat format);
+
+ static QList<FileFormat> supportedFormats();
+ static QString fileFormatName(FileFormat c);
+ static QString fileFormatDescription(FileFormat c);
QSize resolution() const;
void setResolution(const QSize &);
diff --git a/tests/auto/unit/mockbackend/mockimageencodercontrol.h b/tests/auto/unit/mockbackend/mockimageencodercontrol.h
index d67a33f57..40f84b62d 100644
--- a/tests/auto/unit/mockbackend/mockimageencodercontrol.h
+++ b/tests/auto/unit/mockbackend/mockimageencodercontrol.h
@@ -40,21 +40,6 @@ public:
m_settings = QImageEncoderSettings();
}
- QStringList supportedImageCodecs() const
- {
- QStringList codecs;
- codecs << "PNG" << "JPEG";
- return codecs;
- }
-
- QString imageCodecDescription(const QString &codecName) const {
- if (codecName == "PNG")
- return QString("Portable Network Graphic");
- if (codecName == "JPEG")
- return QString("Joint Photographic Expert Group");
- return QString();
- }
-
QImageEncoderSettings imageSettings() const { return m_settings; }
void setImageSettings(const QImageEncoderSettings &settings) { m_settings = settings; }
diff --git a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
index f39b4116a..d8ab32083 100644
--- a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
+++ b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp
@@ -657,9 +657,9 @@ void tst_QCamera::testImageSettings()
QVERIFY(settings.isNull());
QVERIFY(settings == QImageEncoderSettings());
- QCOMPARE(settings.codec(), QString());
- settings.setCodec(QLatin1String("codecName"));
- QCOMPARE(settings.codec(), QLatin1String("codecName"));
+ QCOMPARE(settings.format(), QImageEncoderSettings::UnspecifiedFormat);
+ settings.setFormat(QImageEncoderSettings::Tiff);
+ QCOMPARE(settings.format(), QImageEncoderSettings::Tiff);
QVERIFY(!settings.isNull());
QVERIFY(settings != QImageEncoderSettings());
@@ -693,7 +693,7 @@ void tst_QCamera::testImageSettings()
settings = QImageEncoderSettings();
QVERIFY(settings.isNull());
- QCOMPARE(settings.codec(), QString());
+ QCOMPARE(settings.format(), QImageEncoderSettings::UnspecifiedFormat);
QCOMPARE(settings.quality(), QMultimedia::NormalQuality);
QCOMPARE(settings.resolution(), QSize());
QVERIFY(settings.encodingOptions().isEmpty());
@@ -742,11 +742,11 @@ void tst_QCamera::testImageSettings()
QVERIFY(settings1 != settings2);
settings1 = QImageEncoderSettings();
- settings1.setCodec("codec1");
+ settings1.setFormat(QImageEncoderSettings::PNG);
settings2 = QImageEncoderSettings();
- settings2.setCodec("codec1");
+ settings2.setFormat(QImageEncoderSettings::PNG);
QVERIFY(settings1 == settings2);
- settings2.setCodec("codec2");
+ settings2.setFormat(QImageEncoderSettings::Tiff);
QVERIFY(settings1 != settings2);
settings1 = QImageEncoderSettings();
diff --git a/tests/auto/unit/multimedia/qcameraimagecapture/tst_qcameraimagecapture.cpp b/tests/auto/unit/multimedia/qcameraimagecapture/tst_qcameraimagecapture.cpp
index 499392b6b..d5b57747d 100644
--- a/tests/auto/unit/multimedia/qcameraimagecapture/tst_qcameraimagecapture.cpp
+++ b/tests/auto/unit/multimedia/qcameraimagecapture/tst_qcameraimagecapture.cpp
@@ -103,8 +103,6 @@ private slots:
void imageExposed();
void imageSaved();
void readyForCaptureChanged();
- void imageCodecDescription();
- void supportedImageCodecs();
void cameraImageCaptureControl();
private:
@@ -232,33 +230,14 @@ void tst_QCameraImageCapture::encodingSettings()
QVERIFY(imageCapture.isAvailable() == true);
QVERIFY(imageCapture.encodingSettings() == QImageEncoderSettings());
QImageEncoderSettings settings;
- settings.setCodec("JPEG");
+ settings.setFormat(QImageEncoderSettings::JPEG);
settings.setQuality(QMultimedia::NormalQuality);
imageCapture.setEncodingSettings(settings);
QVERIFY(!imageCapture.encodingSettings().isNull());
- QVERIFY(imageCapture.encodingSettings().codec() == "JPEG");
+ QVERIFY(imageCapture.encodingSettings().format() == QImageEncoderSettings::JPEG);
QVERIFY(imageCapture.encodingSettings().quality() == QMultimedia::NormalQuality);
}
-//MaemoAPI-1838:test supportedImageCodecs
-void tst_QCameraImageCapture::supportedImageCodecs()
-{
- QCamera camera;
- QCameraImageCapture imageCapture(&camera);
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(!imageCapture.supportedImageCodecs().isEmpty());
-}
-
-//MaemoAPI-1837:test imageCodecDescription
-void tst_QCameraImageCapture::imageCodecDescription()
-{
- QCamera camera;
- QCameraImageCapture imageCapture(&camera);
- QVERIFY(imageCapture.isAvailable() == true);
- QVERIFY(imageCapture.imageCodecDescription(" ").isNull());
- QVERIFY(imageCapture.imageCodecDescription("PNG").isNull() == false);
-}
-
//MaemoAPI-1830:test errors
void tst_QCameraImageCapture::errors()
{