summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/multimedia/video/qmlvideofilter_opencl/main.cpp8
-rw-r--r--examples/multimediawidgets/customvideosurface/customvideowidget/videowidget.cpp2
-rw-r--r--examples/multimediawidgets/player/main.cpp9
-rw-r--r--examples/multimediawidgets/player/player.cpp55
-rw-r--r--examples/multimediawidgets/player/player.h4
5 files changed, 60 insertions, 18 deletions
diff --git a/examples/multimedia/video/qmlvideofilter_opencl/main.cpp b/examples/multimedia/video/qmlvideofilter_opencl/main.cpp
index df8222432..cf2fcbd7b 100644
--- a/examples/multimedia/video/qmlvideofilter_opencl/main.cpp
+++ b/examples/multimedia/video/qmlvideofilter_opencl/main.cpp
@@ -88,7 +88,7 @@ public:
qreal factor() const { return m_factor; }
void setFactor(qreal v);
- QVideoFilterRunnable *createFilterRunnable() Q_DECL_OVERRIDE;
+ QVideoFilterRunnable *createFilterRunnable() override;
signals:
void factorChanged();
@@ -102,7 +102,7 @@ class CLFilterRunnable : public QVideoFilterRunnable
public:
CLFilterRunnable(CLFilter *filter);
~CLFilterRunnable();
- QVideoFrame run(QVideoFrame *input, const QVideoSurfaceFormat &surfaceFormat, RunFlags flags) Q_DECL_OVERRIDE;
+ QVideoFrame run(QVideoFrame *input, const QVideoSurfaceFormat &surfaceFormat, RunFlags flags) override;
private:
void releaseTextures();
@@ -423,7 +423,7 @@ class InfoFilter : public QAbstractVideoFilter
Q_OBJECT
public:
- QVideoFilterRunnable *createFilterRunnable() Q_DECL_OVERRIDE;
+ QVideoFilterRunnable *createFilterRunnable() override;
signals:
void finished(QObject *result);
@@ -436,7 +436,7 @@ class InfoFilterRunnable : public QVideoFilterRunnable
{
public:
InfoFilterRunnable(InfoFilter *filter) : m_filter(filter) { }
- QVideoFrame run(QVideoFrame *input, const QVideoSurfaceFormat &surfaceFormat, RunFlags flags) Q_DECL_OVERRIDE;
+ QVideoFrame run(QVideoFrame *input, const QVideoSurfaceFormat &surfaceFormat, RunFlags flags) override;
private:
InfoFilter *m_filter;
diff --git a/examples/multimediawidgets/customvideosurface/customvideowidget/videowidget.cpp b/examples/multimediawidgets/customvideosurface/customvideowidget/videowidget.cpp
index 2f5c16d5e..7ee3eb541 100644
--- a/examples/multimediawidgets/customvideosurface/customvideowidget/videowidget.cpp
+++ b/examples/multimediawidgets/customvideosurface/customvideowidget/videowidget.cpp
@@ -102,7 +102,7 @@ void VideoWidget::paintEvent(QPaintEvent *event)
QBrush brush = palette().background();
- foreach (const QRect &rect, region.rects())
+ for (const QRect &rect : region)
painter.fillRect(rect, brush);
}
diff --git a/examples/multimediawidgets/player/main.cpp b/examples/multimediawidgets/player/main.cpp
index 9e6d9358c..a20fb1c4f 100644
--- a/examples/multimediawidgets/player/main.cpp
+++ b/examples/multimediawidgets/player/main.cpp
@@ -63,14 +63,21 @@ int main(int argc, char *argv[])
QCoreApplication::setOrganizationName("QtProject");
QCoreApplication::setApplicationVersion(QT_VERSION_STR);
QCommandLineParser parser;
+ QCommandLineOption customAudioRoleOption("custom-audio-role",
+ "Set a custom audio role for the player.",
+ "role");
parser.setApplicationDescription("Qt MultiMedia Player Example");
parser.addHelpOption();
parser.addVersionOption();
- parser.addPositionalArgument("url", "The URL to open.");
+ parser.addOption(customAudioRoleOption);
+ parser.addPositionalArgument("url", "The URL(s) to open.");
parser.process(app);
Player player;
+ if (parser.isSet(customAudioRoleOption))
+ player.setCustomAudioRole(parser.value(customAudioRoleOption));
+
if (!parser.positionalArguments().isEmpty() && player.isPlayerAvailable()) {
QList<QUrl> urls;
for (auto &a: parser.positionalArguments())
diff --git a/examples/multimediawidgets/player/player.cpp b/examples/multimediawidgets/player/player.cpp
index 8113df70e..89246e65c 100644
--- a/examples/multimediawidgets/player/player.cpp
+++ b/examples/multimediawidgets/player/player.cpp
@@ -174,6 +174,15 @@ Player::Player(QWidget *parent)
layout->addLayout(hLayout);
layout->addLayout(controlLayout);
layout->addLayout(histogramLayout);
+#if defined(Q_OS_QNX)
+ // On QNX, the main window doesn't have a title bar (or any other decorations).
+ // Create a status bar for the status information instead.
+ m_statusLabel = new QLabel;
+ m_statusBar = new QStatusBar;
+ m_statusBar->addPermanentWidget(m_statusLabel);
+ m_statusBar->setSizeGripEnabled(false); // Without mouse grabbing, it doesn't work very well.
+ layout->addWidget(m_statusBar);
+#endif
setLayout(layout);
@@ -234,6 +243,11 @@ void Player::addToPlaylist(const QList<QUrl> &urls)
}
}
+void Player::setCustomAudioRole(const QString &role)
+{
+ m_player->setCustomAudioRole(role);
+}
+
void Player::durationChanged(qint64 duration)
{
m_duration = duration / 1000;
@@ -303,15 +317,17 @@ void Player::statusChanged(QMediaPlayer::MediaStatus status)
case QMediaPlayer::UnknownMediaStatus:
case QMediaPlayer::NoMedia:
case QMediaPlayer::LoadedMedia:
- case QMediaPlayer::BufferingMedia:
- case QMediaPlayer::BufferedMedia:
setStatusInfo(QString());
break;
case QMediaPlayer::LoadingMedia:
setStatusInfo(tr("Loading..."));
break;
+ case QMediaPlayer::BufferingMedia:
+ case QMediaPlayer::BufferedMedia:
+ setStatusInfo(tr("Buffering %1%").arg(m_player->bufferStatus()));
+ break;
case QMediaPlayer::StalledMedia:
- setStatusInfo(tr("Media Stalled"));
+ setStatusInfo(tr("Stalled %1%").arg(m_player->bufferStatus()));
break;
case QMediaPlayer::EndOfMedia:
QApplication::alert(this);
@@ -342,7 +358,10 @@ void Player::handleCursor(QMediaPlayer::MediaStatus status)
void Player::bufferingProgress(int progress)
{
- setStatusInfo(tr("Buffering %4%").arg(progress));
+ if (m_player->mediaStatus() == QMediaPlayer::StalledMedia)
+ setStatusInfo(tr("Stalled %1%").arg(progress));
+ else
+ setStatusInfo(tr("Buffering %1%").arg(progress));
}
void Player::videoAvailableChanged(bool available)
@@ -364,19 +383,31 @@ void Player::videoAvailableChanged(bool available)
void Player::setTrackInfo(const QString &info)
{
m_trackInfo = info;
- if (!m_statusInfo.isEmpty())
- setWindowTitle(QString("%1 | %2").arg(m_trackInfo).arg(m_statusInfo));
- else
- setWindowTitle(m_trackInfo);
+
+ if (m_statusBar) {
+ m_statusBar->showMessage(m_trackInfo);
+ m_statusLabel->setText(m_statusInfo);
+ } else {
+ if (!m_statusInfo.isEmpty())
+ setWindowTitle(QString("%1 | %2").arg(m_trackInfo).arg(m_statusInfo));
+ else
+ setWindowTitle(m_trackInfo);
+ }
}
void Player::setStatusInfo(const QString &info)
{
m_statusInfo = info;
- if (!m_statusInfo.isEmpty())
- setWindowTitle(QString("%1 | %2").arg(m_trackInfo).arg(m_statusInfo));
- else
- setWindowTitle(m_trackInfo);
+
+ if (m_statusBar) {
+ m_statusBar->showMessage(m_trackInfo);
+ m_statusLabel->setText(m_statusInfo);
+ } else {
+ if (!m_statusInfo.isEmpty())
+ setWindowTitle(QString("%1 | %2").arg(m_trackInfo).arg(m_statusInfo));
+ else
+ setWindowTitle(m_trackInfo);
+ }
}
void Player::displayErrorMessage()
diff --git a/examples/multimediawidgets/player/player.h b/examples/multimediawidgets/player/player.h
index 1b30204f9..3002c9811 100644
--- a/examples/multimediawidgets/player/player.h
+++ b/examples/multimediawidgets/player/player.h
@@ -62,6 +62,7 @@ class QMediaPlayer;
class QModelIndex;
class QPushButton;
class QSlider;
+class QStatusBar;
class QVideoProbe;
class QVideoWidget;
class QAudioProbe;
@@ -81,6 +82,7 @@ public:
bool isPlayerAvailable() const;
void addToPlaylist(const QList<QUrl> &urls);
+ void setCustomAudioRole(const QString &role);
signals:
void fullScreenChanged(bool fullScreen);
@@ -122,6 +124,8 @@ private:
QPushButton *m_fullScreenButton = nullptr;
QPushButton *m_colorButton = nullptr;
QDialog *m_colorDialog = nullptr;
+ QLabel *m_statusLabel = nullptr;
+ QStatusBar *m_statusBar = nullptr;
QLabel *m_labelHistogram = nullptr;
HistogramWidget *m_videoHistogram = nullptr;