Merge branch 'test-m' into mer-5.6

This commit is contained in:
Sergey Lapin
2021-03-29 20:56:39 +03:00
9 changed files with 91 additions and 28 deletions

View File

@@ -371,6 +371,10 @@ Module {
"ExposureParty": 18, "ExposureParty": 18,
"ExposureCandlelight": 19, "ExposureCandlelight": 19,
"ExposureBarcode": 20, "ExposureBarcode": 20,
"ExposureFlowers": 21,
"ExposureAR": 22,
"ExposureHDR": 23,
"ExposureCloseup": 24,
"ExposureModeVendor": 1000 "ExposureModeVendor": 1000
} }
} }
@@ -641,6 +645,10 @@ Module {
"ExposureParty": 18, "ExposureParty": 18,
"ExposureCandlelight": 19, "ExposureCandlelight": 19,
"ExposureBarcode": 20, "ExposureBarcode": 20,
"ExposureFlowers": 21,
"ExposureAR": 22,
"ExposureHDR": 23,
"ExposureCloseup": 24,
"ExposureModeVendor": 1000 "ExposureModeVendor": 1000
} }
} }
@@ -848,6 +856,7 @@ Module {
"WhiteBalanceFluorescent": 6, "WhiteBalanceFluorescent": 6,
"WhiteBalanceFlash": 7, "WhiteBalanceFlash": 7,
"WhiteBalanceSunset": 8, "WhiteBalanceSunset": 8,
"WhiteBalanceWarmFluorescent": 9,
"WhiteBalanceVendor": 1000 "WhiteBalanceVendor": 1000
} }
} }
@@ -863,6 +872,9 @@ Module {
"ColorFilterWhiteboard": 6, "ColorFilterWhiteboard": 6,
"ColorFilterBlackboard": 7, "ColorFilterBlackboard": 7,
"ColorFilterAqua": 8, "ColorFilterAqua": 8,
"ColorFilterEmboss": 9,
"ColorFilterSketch": 10,
"ColorFilterNeon": 11,
"ColorFilterVendor": 1000 "ColorFilterVendor": 1000
} }
} }

View File

@@ -202,6 +202,10 @@ public:
ExposureParty = QCameraExposure::ExposureParty, ExposureParty = QCameraExposure::ExposureParty,
ExposureCandlelight = QCameraExposure::ExposureCandlelight, ExposureCandlelight = QCameraExposure::ExposureCandlelight,
ExposureBarcode = QCameraExposure::ExposureBarcode, ExposureBarcode = QCameraExposure::ExposureBarcode,
ExposureFlowers = QCameraExposure::ExposureFlowers,
ExposureAR = QCameraExposure::ExposureAR,
ExposureHDR = QCameraExposure::ExposureHDR,
ExposureCloseup = QCameraExposure::ExposureCloseup,
ExposureModeVendor = QCameraExposure::ExposureModeVendor ExposureModeVendor = QCameraExposure::ExposureModeVendor
}; };

View File

@@ -347,6 +347,10 @@ void QDeclarativeCameraExposure::setAutoIsoSensitivity()
\row \li Camera.ExposureParty \li Party exposure mode. Since 5.5 \row \li Camera.ExposureParty \li Party exposure mode. Since 5.5
\row \li Camera.ExposureCandlelight \li Candlelight exposure mode. Since 5.5 \row \li Camera.ExposureCandlelight \li Candlelight exposure mode. Since 5.5
\row \li Camera.ExposureBarcode \li Barcode exposure mode. Since 5.5 \row \li Camera.ExposureBarcode \li Barcode exposure mode. Since 5.5
\row \li Camera.ExposureFlowers \li Flowers exposure mode. Since 5.x
\row \li Camera.ExposureAR \li Augmented reality exposure mode. Since 5.x
\row \li Camera.ExposureHDR \li High dynamic range exposure mode. Since 5.x
\row \li Camera.ExposureCloseup \li Closeup exposure mode. Since 5.x
\row \li Camera.ExposureModeVendor \li The base value for device specific exposure modes. \row \li Camera.ExposureModeVendor \li The base value for device specific exposure modes.
\endtable \endtable
*/ */

View File

@@ -89,16 +89,17 @@ QDeclarativeCameraImageProcessing::~QDeclarativeCameraImageProcessing()
\table \table
\header \li Value \li Description \header \li Value \li Description
\row \li WhiteBalanceManual \li Manual white balance. In this mode the manual white balance property value is used. \row \li WhiteBalanceManual \li Manual white balance. In this mode the manual white balance property value is used.
\row \li WhiteBalanceAuto \li Auto white balance mode. \row \li WhiteBalanceAuto \li Auto white balance mode.
\row \li WhiteBalanceSunlight \li Sunlight white balance mode. \row \li WhiteBalanceSunlight \li Sunlight white balance mode.
\row \li WhiteBalanceCloudy \li Cloudy white balance mode. \row \li WhiteBalanceCloudy \li Cloudy white balance mode.
\row \li WhiteBalanceShade \li Shade white balance mode. \row \li WhiteBalanceShade \li Shade white balance mode.
\row \li WhiteBalanceTungsten \li Tungsten white balance mode. \row \li WhiteBalanceTungsten \li Tungsten white balance mode.
\row \li WhiteBalanceFluorescent \li Fluorescent white balance mode. \row \li WhiteBalanceFluorescent \li Fluorescent white balance mode.
\row \li WhiteBalanceFlash \li Flash white balance mode. \row \li WhiteBalanceFlash \li Flash white balance mode.
\row \li WhiteBalanceSunset \li Sunset white balance mode. \row \li WhiteBalanceSunset \li Sunset white balance mode.
\row \li WhiteBalanceVendor \li Vendor defined white balance mode. \row \li WhiteBalanceWarmFluorescent \li Warm fluorescent white balance mode.
\row \li WhiteBalanceVendor \li Vendor defined white balance mode.
\endtable \endtable
\sa manualWhiteBalance \sa manualWhiteBalance
@@ -234,6 +235,9 @@ void QDeclarativeCameraImageProcessing::setDenoisingLevel(qreal value)
\row \li CameraImageProcessing.ColorFilterWhiteboard \li A whiteboard filter. \row \li CameraImageProcessing.ColorFilterWhiteboard \li A whiteboard filter.
\row \li CameraImageProcessing.ColorFilterBlackboard \li A blackboard filter. \row \li CameraImageProcessing.ColorFilterBlackboard \li A blackboard filter.
\row \li CameraImageProcessing.ColorFilterAqua \li An aqua filter. \row \li CameraImageProcessing.ColorFilterAqua \li An aqua filter.
\row \li CameraImageProcessing.ColorFilterEmboss \li An emboss filter.
\row \li CameraImageProcessing.ColorFilterSketch \li An sketch filter.
\row \li CameraImageProcessing.ColorFilterNeon \li An neon filter.
\row \li CameraImageProcessing.ColorFilterVendor \li The base value for vendor defined filters. \row \li CameraImageProcessing.ColorFilterVendor \li The base value for vendor defined filters.
\endtable \endtable

View File

@@ -642,6 +642,10 @@ void QCameraExposure::setAutoShutterSpeed()
\value ExposureParty Party mode. Since 5.5 \value ExposureParty Party mode. Since 5.5
\value ExposureCandlelight Candlelight mode. Since 5.5 \value ExposureCandlelight Candlelight mode. Since 5.5
\value ExposureBarcode Barcode mode. Since 5.5 \value ExposureBarcode Barcode mode. Since 5.5
\value ExposureFlowers Flowers exposure mode. Since 5.x
\value ExposureAR Augmented reality exposure mode. Since 5.x
\value ExposureHDR High dynamic range exposure mode. Since 5.x
\value ExposureCloseup Closeup exposure mode. Since 5.x
\value ExposureModeVendor The base value for device specific exposure modes. \value ExposureModeVendor The base value for device specific exposure modes.
*/ */

View File

@@ -305,17 +305,18 @@ void QCameraImageProcessing::setDenoisingLevel(qreal level)
/*! /*!
\enum QCameraImageProcessing::WhiteBalanceMode \enum QCameraImageProcessing::WhiteBalanceMode
\value WhiteBalanceAuto Auto white balance mode. \value WhiteBalanceAuto Auto white balance mode.
\value WhiteBalanceManual Manual white balance. In this mode the white balance should be set with \value WhiteBalanceManual Manual white balance. In this mode the white balance should be set with
setManualWhiteBalance() setManualWhiteBalance()
\value WhiteBalanceSunlight Sunlight white balance mode. \value WhiteBalanceSunlight Sunlight white balance mode.
\value WhiteBalanceCloudy Cloudy white balance mode. \value WhiteBalanceCloudy Cloudy white balance mode.
\value WhiteBalanceShade Shade white balance mode. \value WhiteBalanceShade Shade white balance mode.
\value WhiteBalanceTungsten Tungsten (incandescent) white balance mode. \value WhiteBalanceTungsten Tungsten (incandescent) white balance mode.
\value WhiteBalanceFluorescent Fluorescent white balance mode. \value WhiteBalanceFluorescent Fluorescent white balance mode.
\value WhiteBalanceFlash Flash white balance mode. \value WhiteBalanceFlash Flash white balance mode.
\value WhiteBalanceSunset Sunset white balance mode. \value WhiteBalanceSunset Sunset white balance mode.
\value WhiteBalanceVendor Base value for vendor defined white balance modes. \value WhiteBalanceWarmFluorescent Warm fluorescent white balance mode.
\value WhiteBalanceVendor Base value for vendor defined white balance modes.
*/ */
/*! /*!
@@ -330,6 +331,9 @@ void QCameraImageProcessing::setDenoisingLevel(qreal level)
\value ColorFilterWhiteboard A whiteboard filter. \value ColorFilterWhiteboard A whiteboard filter.
\value ColorFilterBlackboard A blackboard filter. \value ColorFilterBlackboard A blackboard filter.
\value ColorFilterAqua An aqua filter. \value ColorFilterAqua An aqua filter.
\value ColorFilterEmboss An emboss filter.
\value ColorFilterSketch A sketch filter.
\value ColorFilterNeon A neon filter.
\value ColorFilterVendor The base value for vendor defined filters. \value ColorFilterVendor The base value for vendor defined filters.
\since 5.5 \since 5.5

View File

@@ -458,6 +458,7 @@ void CameraBinSession::setAudioCaptureCaps()
GstElement *CameraBinSession::buildCameraSource() GstElement *CameraBinSession::buildCameraSource()
{ {
bool connectReadyForCapture = false;
#if CAMERABIN_DEBUG #if CAMERABIN_DEBUG
qDebug() << Q_FUNC_INFO; qDebug() << Q_FUNC_INFO;
#endif #endif
@@ -525,6 +526,14 @@ GstElement *CameraBinSession::buildCameraSource()
if (m_videoSrc) if (m_videoSrc)
g_object_set(G_OBJECT(m_cameraSrc), "video-source", m_videoSrc, NULL); g_object_set(G_OBJECT(m_cameraSrc), "video-source", m_videoSrc, NULL);
// CameraBin doesn't emit ready-for-capture notify signal
// in the same manner that gst-droid does, thus making
// Qt report "Camera not ready error" due to changes in
// 46c29f5b and b04854b4. Workaround this by assuming that
// camera is ready.
m_reportedReadyForCapture = true;
m_readyForCapture = true;
} }
if (m_videoSrc) if (m_videoSrc)
@@ -536,12 +545,21 @@ GstElement *CameraBinSession::buildCameraSource()
} else { } else {
g_object_set(G_OBJECT(m_cameraSrc), "camera-device", 0, NULL); g_object_set(G_OBJECT(m_cameraSrc), "camera-device", 0, NULL);
} }
// Explicitly reset those values in case of
// camera changing from v4l to this
m_reportedReadyForCapture = false;
m_readyForCapture = false;
connectReadyForCapture = true;
} }
} }
if (m_cameraSrc != camSrc) { if (m_cameraSrc != camSrc) {
g_object_set(G_OBJECT(m_camerabin), CAMERA_SOURCE_PROPERTY, m_cameraSrc, NULL); g_object_set(G_OBJECT(m_camerabin), CAMERA_SOURCE_PROPERTY, m_cameraSrc, NULL);
g_signal_connect(G_OBJECT(m_cameraSrc), "notify::ready-for-capture", G_CALLBACK(updateReadyForCapture), this); if (connectReadyForCapture) {
g_signal_connect(G_OBJECT(m_cameraSrc), "notify::ready-for-capture", G_CALLBACK(updateReadyForCapture), this);
}
} }

View File

@@ -133,7 +133,7 @@ void CameraBinZoom::updateMaxZoom(GObject *o, GParamSpec *p, gpointer d)
CameraBinZoom *zoom = reinterpret_cast<CameraBinZoom *>(d); CameraBinZoom *zoom = reinterpret_cast<CameraBinZoom *>(d);
QMetaObject::invokeMethod(zoom, "maximumOpticalZoomChanged", QMetaObject::invokeMethod(zoom, "maximumDigitalZoomChanged",
Qt::QueuedConnection, Qt::QueuedConnection,
Q_ARG(qreal, zoomFactor)); Q_ARG(qreal, zoomFactor));
} }

View File

@@ -46,6 +46,7 @@
#include <gst/gstvalue.h> #include <gst/gstvalue.h>
#include <gst/base/gstbasesrc.h> #include <gst/base/gstbasesrc.h>
#include <gst/pbutils/missing-plugins.h>
#include <QtMultimedia/qmediametadata.h> #include <QtMultimedia/qmediametadata.h>
#include <QtCore/qdatetime.h> #include <QtCore/qdatetime.h>
@@ -57,7 +58,7 @@
#include <QtCore/qstandardpaths.h> #include <QtCore/qstandardpaths.h>
//#define DEBUG_PLAYBIN //#define DEBUG_PLAYBIN
//#define DEBUG_VO_BIN_DUMP #define DEBUG_VO_BIN_DUMP
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
@@ -558,7 +559,7 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput)
m_renderer = renderer; m_renderer = renderer;
#ifdef DEBUG_VO_BIN_DUMP #ifdef DEBUG_VO_BIN_DUMP
gst_debug_bin_to_dot_file_with_ts(GST_BIN(m_playbin), GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(m_playbin),
GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES*/), GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES*/),
"playbin_set"); "playbin_set");
#endif #endif
@@ -824,7 +825,7 @@ void QGstreamerPlayerSession::finishVideoOutputChange()
gst_object_unref(GST_OBJECT(srcPad)); gst_object_unref(GST_OBJECT(srcPad));
#ifdef DEBUG_VO_BIN_DUMP #ifdef DEBUG_VO_BIN_DUMP
gst_debug_bin_to_dot_file_with_ts(GST_BIN(m_playbin), GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(m_playbin),
GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* | GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES */), GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* | GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES */),
"playbin_finish"); "playbin_finish");
#endif #endif
@@ -901,11 +902,21 @@ bool QGstreamerPlayerSession::play()
if (!m_isPlaylist) { if (!m_isPlaylist) {
qWarning() << "GStreamer; Unable to play -" << m_request.url().toString(); qWarning() << "GStreamer; Unable to play -" << m_request.url().toString();
m_pendingState = m_state = QMediaPlayer::StoppedState; m_pendingState = m_state = QMediaPlayer::StoppedState;
#ifdef DEBUG_VO_BIN_DUMP
GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(m_playbin),
GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES*/),
"playbin_error");
#endif
emit stateChanged(m_state); emit stateChanged(m_state);
} else { } else {
return true; return true;
} }
} else { } else {
#ifdef DEBUG_VO_BIN_DUMP
GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(m_playbin),
GstDebugGraphDetails(GST_DEBUG_GRAPH_SHOW_ALL /* GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE | GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS | GST_DEBUG_GRAPH_SHOW_STATES*/),
"playbin_playing");
#endif
resumeVideoProbes(); resumeVideoProbes();
return true; return true;
} }
@@ -1299,13 +1310,15 @@ bool QGstreamerPlayerSession::processBusMessage(const QGstreamerMessage &message
handlePlaybin2 = true; handlePlaybin2 = true;
} }
if (gst_is_missing_plugin_message(gm)) {
emit error(int(QMediaPlayer::FormatError), gst_missing_plugin_message_get_description(gm));
}
if (handlePlaybin2) { if (handlePlaybin2) {
if (GST_MESSAGE_TYPE(gm) == GST_MESSAGE_WARNING) { if (GST_MESSAGE_TYPE(gm) == GST_MESSAGE_WARNING) {
GError *err; GError *err;
gchar *debug; gchar *debug;
gst_message_parse_warning(gm, &err, &debug); gst_message_parse_warning(gm, &err, &debug);
if (err->domain == GST_STREAM_ERROR && err->code == GST_STREAM_ERROR_CODEC_NOT_FOUND)
emit error(int(QMediaPlayer::FormatError), tr("Cannot play stream of type: <unknown>"));
// GStreamer shows warning for HTTP playlists // GStreamer shows warning for HTTP playlists
if (!m_isPlaylist) if (!m_isPlaylist)
qWarning() << "Warning:" << QString::fromUtf8(err->message); qWarning() << "Warning:" << QString::fromUtf8(err->message);