From ff4ddd4d5edd0fcc99c6d4cc864b8e0090c680da Mon Sep 17 00:00:00 2001 From: Artem Dyomin Date: Wed, 6 Sep 2023 10:06:27 +0200 Subject: Move formatInfo initialization delay to the QMediaRecorder construction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit First initialization of MediaFormatInfo may take some time, it causes some issues for users when they call QMediaRecorder::record. The idea is to move the first initialization to the constructor. Task-number: QTBUG-116075 Change-Id: I90add1079b0cecfa457af9153b62e08d31c3d101 Reviewed-by: Jøger Hansegård Reviewed-by: Artem Dyomin (cherry picked from commit d2feae42ca6f8172dc123fecef2626da3a941b51) Reviewed-by: Qt Cherry-pick Bot --- src/multimedia/recording/qmediarecorder.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/multimedia/recording/qmediarecorder.cpp b/src/multimedia/recording/qmediarecorder.cpp index 56869b4e1..00e7d41ad 100644 --- a/src/multimedia/recording/qmediarecorder.cpp +++ b/src/multimedia/recording/qmediarecorder.cpp @@ -109,9 +109,17 @@ QMediaRecorder::QMediaRecorder(QObject *parent) d_ptr(new QMediaRecorderPrivate) { Q_D(QMediaRecorder); + + auto &mediaIntegration = *QPlatformMediaIntegration::instance(); + d->q_ptr = this; - auto maybeControl = QPlatformMediaIntegration::instance()->createRecorder(this); + auto maybeControl = mediaIntegration.createRecorder(this); if (maybeControl) { + // The first format info initialization may take some time, + // for users it seems to be more suitable to have a delay on the object construction + // rather than on QMediaRecorder::record + mediaIntegration.formatInfo(); + d->control = maybeControl.value(); } else { d->initErrorMessage = maybeControl.error(); -- cgit v1.2.3