summaryrefslogtreecommitdiffstats
path: root/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
diff options
context:
space:
mode:
authorTim Blechmann <tim@klingt.org>2024-04-29 19:06:37 +0800
committerTim Blechmann <tim@klingt.org>2024-05-02 19:23:58 +0800
commite2893da47485a9f70b7890f61cdf878f3dd524c6 (patch)
tree03aae7a9b7ebef094e8c0c4426fda6604db1ac49 /tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
parentb1a790ee33fee626eda3888761ea7b324bd8d90b (diff)
GStreamer: fix QGstreamerMediaPlayer - fix metadata test
QGstreamerMediaPlayer did not emit metaDataChanged after parsing GST_MESSAGE_TAG. This caused metadata to be changed without notifying the application. In the unit test we need to wait for `metaDataChanged` at least twice, since it is called from both the GST_MESSAGE_TAG handler and from parseStreamsAndMetadata. Fixes: QTBUG-124182 Pick-to: 6.5 6.7 Change-Id: I68f81d5bcb1a2c809f3641ec11356f5b9a8cb601 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Diffstat (limited to 'tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp')
-rw-r--r--tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
index f1baa5d1d..7f1cee1cc 100644
--- a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
+++ b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp
@@ -687,8 +687,6 @@ void tst_QCameraBackend::testNativeMetadata()
QVERIFY(!fileName.isEmpty());
QVERIFY(QFileInfo(fileName).size() > 0);
- QSKIP_GSTREAMER("QTBUG-124182: spurious failure while retrieving the metadata");
-
// QMediaRecorder::metaData() can only test that QMediaMetaData is set properly on the recorder.
// Use QMediaPlayer to test that the native metadata is properly set on the track
QAudioOutput output;
@@ -700,16 +698,17 @@ void tst_QCameraBackend::testNativeMetadata()
player.setSource(QUrl::fromLocalFile(fileName));
player.play();
- QTRY_VERIFY(metadataChangedSpy.size() > 0);
+ int metadataChangedRequiredCount = isGStreamerPlatform() ? 2 : 1;
+
+ QTRY_VERIFY(metadataChangedSpy.size() >= metadataChangedRequiredCount);
- QCOMPARE(player.metaData().value(QMediaMetaData::Title).toString(), metaData.value(QMediaMetaData::Title).toString());
+ QCOMPARE(player.metaData().value(QMediaMetaData::Title).toString(),
+ metaData.value(QMediaMetaData::Title).toString());
auto lang = player.metaData().value(QMediaMetaData::Language).value<QLocale::Language>();
if (lang != QLocale::AnyLanguage)
QCOMPARE(lang, metaData.value(QMediaMetaData::Language).value<QLocale::Language>());
QCOMPARE(player.metaData().value(QMediaMetaData::Description).toString(), metaData.value(QMediaMetaData::Description).toString());
- metadataChangedSpy.clear();
-
player.stop();
player.setSource({});
QFile(fileName).remove();