diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gsttools/qgstreamervideorenderer.cpp | 4 | ||||
-rw-r--r-- | src/imports/multimedia/multimedia.pro | 2 | ||||
-rw-r--r-- | src/multimedia/doc/qtmultimedia.qdocconf | 30 | ||||
-rw-r--r-- | src/multimedia/doc/src/multimedia.qdoc | 64 | ||||
-rw-r--r-- | src/multimedia/doc/src/qtmultimedia-cpp.qdoc | 12 | ||||
-rw-r--r-- | src/multimedia/doc/src/qtmultimedia-index.qdoc | 39 | ||||
-rw-r--r-- | src/multimedia/gsttools_headers/qgstreamervideorenderer_p.h | 3 | ||||
-rw-r--r-- | src/multimediawidgets/doc/qtmultimediawidgets.qdocconf | 26 | ||||
-rw-r--r-- | src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h | 1 | ||||
-rw-r--r-- | src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm | 18 | ||||
-rw-r--r-- | src/plugins/blackberry/bbserviceplugin.cpp | 8 | ||||
-rw-r--r-- | src/plugins/blackberry/blackberry.pro | 6 | ||||
-rw-r--r-- | src/plugins/blackberry/camera/bbcamerasession.cpp | 4 | ||||
-rw-r--r-- | src/plugins/blackberry/common/windowgrabber.cpp | 24 | ||||
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabinsession.cpp | 2 | ||||
-rw-r--r-- | src/plugins/qnx/audio/audio.pro | 6 |
16 files changed, 145 insertions, 104 deletions
diff --git a/src/gsttools/qgstreamervideorenderer.cpp b/src/gsttools/qgstreamervideorenderer.cpp index 4bc92a18c..5b0b0d7dd 100644 --- a/src/gsttools/qgstreamervideorenderer.cpp +++ b/src/gsttools/qgstreamervideorenderer.cpp @@ -90,7 +90,7 @@ void QGstreamerVideoRenderer::setSurface(QAbstractVideoSurface *surface) m_videoSink = 0; if (m_surface) { - disconnect(m_surface, SIGNAL(supportedFormatsChanged()), + disconnect(m_surface.data(), SIGNAL(supportedFormatsChanged()), this, SLOT(handleFormatChange())); } @@ -99,7 +99,7 @@ void QGstreamerVideoRenderer::setSurface(QAbstractVideoSurface *surface) m_surface = surface; if (m_surface) { - connect(m_surface, SIGNAL(supportedFormatsChanged()), + connect(m_surface.data(), SIGNAL(supportedFormatsChanged()), this, SLOT(handleFormatChange())); } diff --git a/src/imports/multimedia/multimedia.pro b/src/imports/multimedia/multimedia.pro index f05f3126a..d738dd4f2 100644 --- a/src/imports/multimedia/multimedia.pro +++ b/src/imports/multimedia/multimedia.pro @@ -1,7 +1,5 @@ QT += qml quick network multimedia-private qtmultimediaquicktools-private -LIBS += -L$$QT.multimedia.libs - HEADERS += \ qdeclarativeaudio_p.h \ qdeclarativemediametadata_p.h \ diff --git a/src/multimedia/doc/qtmultimedia.qdocconf b/src/multimedia/doc/qtmultimedia.qdocconf index 7d26cb5c0..e9c3b4480 100644 --- a/src/multimedia/doc/qtmultimedia.qdocconf +++ b/src/multimedia/doc/qtmultimedia.qdocconf @@ -1,6 +1,6 @@ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) -project = qtmultimedia +project = QtMultimedia description = Qt Multimedia Documentation url = http://qt-project.org/doc/qt-$QT_VER/qtmultimedia version = $QT_VERSION @@ -12,22 +12,22 @@ version = $QT_VERSION # Defines the name of the project. You cannot use operators (+, =, -) in # the name. Properties for this project are set using a qhp.<projectname>.property # format. -qhp.projects = qtmultimedia -qhp.qtmultimedia.file = qtmultimedia.qhp -qhp.qtmultimedia.namespace = org.qt-project.qtmultimedia.$QT_VERSION_TAG -qhp.qtmultimedia.indexTitle = Qt Multimedia -qhp.qtmultimedia.virtualFolder = qtmultimedia +qhp.projects = QtMultimedia +qhp.QtMultimedia.file = qtmultimedia.qhp +qhp.QtMultimedia.namespace = org.qt-project.qtmultimedia.$QT_VERSION_TAG +qhp.QtMultimedia.indexTitle = Qt Multimedia +qhp.QtMultimedia.virtualFolder = qtmultimedia # For listing child nodes in Qt Creator or Assistant. -qhp.qtmultimedia.subprojects = classes qmltypes -qhp.qtmultimedia.subprojects.classes.title = C++ Classes -qhp.qtmultimedia.subprojects.classes.indexTitle = Qt Multimedia C++ Classes -qhp.qtmultimedia.subprojects.classes.selectors = class fake:headerfile -qhp.qtmultimedia.subprojects.classes.sortPages = true -qhp.qtmultimedia.subprojects.qmltypes.title = QML Types -qhp.qtmultimedia.subprojects.qmltypes.indexTitle = Qt Multimedia QML Types -qhp.qtmultimedia.subprojects.qmltypes.selectors = fake:qmlclass -qhp.qtmultimedia.subprojects.qmltypes.sortPages = true +qhp.QtMultimedia.subprojects = classes qmltypes +qhp.QtMultimedia.subprojects.classes.title = C++ Classes +qhp.QtMultimedia.subprojects.classes.indexTitle = Qt Multimedia C++ Classes +qhp.QtMultimedia.subprojects.classes.selectors = class fake:headerfile +qhp.QtMultimedia.subprojects.classes.sortPages = true +qhp.QtMultimedia.subprojects.qmltypes.title = QML Types +qhp.QtMultimedia.subprojects.qmltypes.indexTitle = Qt Multimedia QML Types +qhp.QtMultimedia.subprojects.qmltypes.selectors = fake:qmlclass +qhp.QtMultimedia.subprojects.qmltypes.sortPages = true exampledirs += ../../../examples/multimedia \ snippets diff --git a/src/multimedia/doc/src/multimedia.qdoc b/src/multimedia/doc/src/multimedia.qdoc index 6e3606044..d53967e6b 100644 --- a/src/multimedia/doc/src/multimedia.qdoc +++ b/src/multimedia/doc/src/multimedia.qdoc @@ -27,40 +27,37 @@ /*! \page multimediaoverview.html -\title Qt Multimedia Overview +\title Multimedia \brief A set of APIs for working with audio, video, radio and camera devices. \ingroup technology-apis +Multimedia support in Qt is provided by the \l{Qt Multimedia} module. The Qt +Multimedia module provides a rich feature set that enables you to easily take +advantage of a platform's multimedia capabilities such as media playback and +the use of camera and radio devices. -\section1 Overview - -Multimedia support in Qt is provided by the Qt Multimedia module. The -Qt Multimedia module provides a rich feature set that enables you to easily -take advantage of a platforms multimedia capabilites and hardware. This -ranges from the playback and recording of audio and video content to the use -of available devices like cameras and radios. - -\section2 Features +\section1 Features Here are some examples of what can be done with Qt Multimedia APIs: \list \li Access raw audio devices for input and output \li Play low latency sound effects -\li Play media files in playlists (like compressed audio, or video files) +\li Play media files in playlists (such as compressed audio or video files) \li Record audio and compress it -\li Tune and listen to radio stations, and receive radio program information +\li Tune and listen to radio stations \li Use a camera, including viewfinder, image capture, and movie recording \li Play 3D positional audio with \l {Positional Audio} {QtAudioEngine} \li Decode audio media files into memory for processing \li Accessing video frames or audio buffers as they are played or recorded \endlist -\section2 Multimedia Components +\section1 Multimedia Components -All of these tasks can be broadly broken down into four main areas. More information -(including background information and class references) are available here: +Qt's multimedia APIs are categorized into four main components. More +information (including background information and class references) is +available here: \list \li \l {Audio Overview} @@ -69,8 +66,9 @@ All of these tasks can be broadly broken down into four main areas. More inform \li \l {Radio Overview} \endlist -\section2 Multimedia Recipes -For some quick recipes for specific tasks, look at the overviews above and consult this table: +\section1 Multimedia Recipes + +For some quick recipes, look at the overviews above and consult this table: \table 70% \header @@ -85,7 +83,8 @@ For some quick recipes for specific tasks, look at the overviews above and consu \li QSoundEffect \row \li Playing low latency audio - \li \l{multimedia/audiooutput}{audioinput}, \l{multimedia/spectrum}{spectrum} + \li \l{multimedia/audiooutput}{audioinput}, + \l{multimedia/spectrum}{spectrum} \li \li QAudioOutput \row @@ -95,7 +94,8 @@ For some quick recipes for specific tasks, look at the overviews above and consu \li QMediaPlayer \row \li Accessing raw audio input data - \li \l{multimedia/spectrum}{spectrum}, \l {multimedia/audioinput}{audioinput} + \li \l{multimedia/spectrum}{spectrum}, + \l {multimedia/audioinput}{audioinput} \li \li QAudioInput \row @@ -138,12 +138,14 @@ For some quick recipes for specific tasks, look at the overviews above and consu \li QCamera, QAbstractVideoSurface, QVideoFrame \row \li Capturing photos - \li \l {Camera Example}{camera}, \l {multimediawidgets/declarative-camera}{declarative-camera} + \li \l {Camera Example}{camera}, + \l {multimediawidgets/declarative-camera}{declarative-camera} \li \l Camera \li QCamera, QCameraImageCapture \row \li Capturing movies - \li \l {Camera Example}{camera}, \l {multimediawidgets/declarative-camera}{declarative-camera} + \li \l {Camera Example}{camera}, + \l {multimediawidgets/declarative-camera}{declarative-camera} \li \l Camera \li QCamera, QMediaRecorder \row @@ -156,26 +158,26 @@ For some quick recipes for specific tasks, look at the overviews above and consu \section1 Limitations -In many cases the Qt Multimedia APIs build upon the multimedia framework of the underlying system. -This can mean that support for various codec or containers can vary between machines, -depending on what the end user has installed. +The Qt Multimedia APIs build upon the multimedia framework of the underlying +platform. This can mean that support for various codecs or containers can vary +between machines, depending on what the end user has installed. \section1 Advanced Usage -For developers wishing to access some platform specific settings, -or to port the Qt Multimedia APIs to a new platform or technology, -see \l{Multimedia Backend Development}. +For developers wishing to access some platform specific settings, or to port the +Qt Multimedia APIs to a new platform or technology, see \l{Multimedia Backend +Development}. \section1 Changes from Previous Versions -If you've previously used Qt Multimedia in Qt 4.x, or used Qt Multimedia Kit in Qt Mobility, please see -\l {Changes in Qt Multimedia} for more information on what has changed, and what you might need to -change when porting code. +If you previously used Qt Multimedia in Qt 4, or used Qt Multimedia Kit in +Qt Mobility, please see \l {Changes in Qt Multimedia} for more information on +what changed, and what you might need to change when porting code. \section1 Reference Documentation \section2 QML Types -The following types are accessed by using: +The QML types are accessed by using: \code import QtMultimedia 5.0 \endcode diff --git a/src/multimedia/doc/src/qtmultimedia-cpp.qdoc b/src/multimedia/doc/src/qtmultimedia-cpp.qdoc index 3405143e5..a821088d8 100644 --- a/src/multimedia/doc/src/qtmultimedia-cpp.qdoc +++ b/src/multimedia/doc/src/qtmultimedia-cpp.qdoc @@ -30,10 +30,12 @@ \title Qt Multimedia C++ Classes \ingroup modules - \brief The \l {Qt Multimedia} module provides audio, video, radio and camera functionality. + \brief The \l {Qt Multimedia} module provides audio, video, radio and camera + functionality. - The C++ classes provide more control over the multimedia content than the QML alternatives. - If your application is serving complex use cases such as decoding media files, accessing video or audio buffers, - use the C++ alternative. For more details about the complex audio, video, and camera use cases supported by the C++ - classes, refer to \l {Qt Multimedia Overview}. + The C++ classes provide more control over the multimedia content than the + QML alternatives. If your application is serving complex use cases such as + decoding media files, accessing video or audio buffers, use the C++ + alternative. For more details about the complex audio, video, and camera use + cases supported by the C++ classes, refer to \l {Qt Multimedia Overview}. */ diff --git a/src/multimedia/doc/src/qtmultimedia-index.qdoc b/src/multimedia/doc/src/qtmultimedia-index.qdoc index 7dfa02575..417c0c494 100644 --- a/src/multimedia/doc/src/qtmultimedia-index.qdoc +++ b/src/multimedia/doc/src/qtmultimedia-index.qdoc @@ -28,37 +28,46 @@ /*! \page qtmultimedia-index.html \title Qt Multimedia - \brief The Qt Multimedia module provides APIs for audio, video, radio and camera-related functionality. + \brief The Qt Multimedia module provides APIs for audio, video, radio, and + camera-related functionality. - Qt Multimedia is an essential module that provides a rich set of QML types and C++ classes to handle multimedia content. It also provides necessary APIs to access the camera and radio functionality. + Qt Multimedia is an essential module that provides a rich set of QML types + and C++ classes to handle multimedia content. It also provides necessary + APIs to access the camera and radio functionality. - The \l{Qt Multimedia Widgets} module provides widget based multimedia classes. + The \l{Qt Multimedia Widgets} module provides widget based multimedia + classes. - \section1 Getting started + \section1 Getting Started - The QML types can be imported into your applciation using the following import statement in your \c {.qml} file. + The QML types can be imported into your applciation using the following + import statement in your \c {.qml} file. \code import QtMultimedia 5.0 \endcode - If you intend to use the C++ classes in your application, include the C++ definitions using the following directive: + If you intend to use the C++ classes in your application, include the C++ + definitions using the following directive: \code #include <QtMultimedia> \endcode - \note If you are using a few classes from this module, we recommend including those specific classes only instead of the module. + \note If you are using a few classes from this module, we recommend + including those specific classes only instead of the module. - To link against the corresponding C++ libraries, add the following to your \c {qmake} project file: + To link against the corresponding C++ libraries, add the following to your + \c {qmake} project file: \code QT += multimedia \endcode - \section1 QML types and C++ classes + \section1 QML Types and C++ Classes - The following is a list of important QML types and C++ classes provided by this module: + The following is a list of important QML types and C++ classes provided by + this module: \table \header @@ -72,13 +81,15 @@ \li Access camera viewfinder frames \row \li MediaPlayer - \li Add media playback functionality to a scene. It is same as Audio type, but can be used for video playback with the VideoOutput type. + \li Add media playback functionality to a scene. It is same as Audio type, + but can be used for video playback with the VideoOutput type. \row \li \l {QtMultimedia5::Radio}{Radio} \li Access radio functionality \row \li \l {QtMultimedia5::Video}{Video} - \li Add Video playback functionality to a scene. It uses MediaPlayer and VideoOutput types to provide video playback functionality. + \li Add Video playback functionality to a scene. It uses MediaPlayer and + VideoOutput types to provide video playback functionality. \endtable \table @@ -105,11 +116,11 @@ \li Control video data. \endtable - \section1 Related information + \section1 Related Information \section2 Guides \list - \li \l{Qt Multimedia Overview} + \li \l Multimedia - overview of multimedia support in Qt \li \l{Audio Overview} \li \l{Positional Audio} \li \l{Video Overview} diff --git a/src/multimedia/gsttools_headers/qgstreamervideorenderer_p.h b/src/multimedia/gsttools_headers/qgstreamervideorenderer_p.h index b7121e0b5..42ce913ec 100644 --- a/src/multimedia/gsttools_headers/qgstreamervideorenderer_p.h +++ b/src/multimedia/gsttools_headers/qgstreamervideorenderer_p.h @@ -44,6 +44,7 @@ #include <qvideorenderercontrol.h> #include <private/qvideosurfacegstsink_p.h> +#include <qabstractvideosurface.h> #include "qgstreamervideorendererinterface_p.h" @@ -74,7 +75,7 @@ private slots: private: QVideoSurfaceGstSink *m_videoSink; - QAbstractVideoSurface *m_surface; + QPointer<QAbstractVideoSurface> m_surface; }; QT_END_NAMESPACE diff --git a/src/multimediawidgets/doc/qtmultimediawidgets.qdocconf b/src/multimediawidgets/doc/qtmultimediawidgets.qdocconf index a25ee1a1d..305590f7b 100644 --- a/src/multimediawidgets/doc/qtmultimediawidgets.qdocconf +++ b/src/multimediawidgets/doc/qtmultimediawidgets.qdocconf @@ -1,6 +1,6 @@ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) -project = qtmultimediawidgets +project = QtMultimediaWidgets description = Qt Multimedia Widgets Documentation url = http://qt-project.org/doc/qt-$QT_VER/qtmultimediawidgets version = $QT_VERSION @@ -12,22 +12,18 @@ version = $QT_VERSION # Defines the name of the project. You cannot use operators (+, =, -) in # the name. Properties for this project are set using a qhp.<projectname>.property # format. -qhp.projects = qtmultimediawidgets -qhp.qtmultimediawidgets.file = qtmultimediawidgets.qhp -qhp.qtmultimediawidgets.namespace = org.qt-project.qtmultimediawidgets.$QT_VERSION_TAG -qhp.qtmultimediawidgets.indexTitle = Qt Multimedia -qhp.qtmultimediawidgets.virtualFolder = qtmultimediawidgets +qhp.projects = QtMultimediaWidgets +qhp.QtMultimediaWidgets.file = qtmultimediawidgets.qhp +qhp.QtMultimediaWidgets.namespace = org.qt-project.qtmultimediawidgets.$QT_VERSION_TAG +qhp.QtMultimediaWidgets.indexTitle = Qt Multimedia Widgets +qhp.QtMultimediaWidgets.virtualFolder = qtmultimediawidgets # For listing child nodes in Qt Creator or Assistant. -qhp.qtmultimediawidgets.subprojects = classes qmltypes -qhp.qtmultimediawidgets.subprojects.classes.title = C++ Classes -qhp.qtmultimediawidgets.subprojects.classes.indexTitle = Qt Multimedia Widgets C++ Classes -qhp.qtmultimediawidgets.subprojects.classes.selectors = class fake:headerfile -qhp.qtmultimediawidgets.subprojects.classes.sortPages = true -qhp.qtmultimediawidgets.subprojects.qmltypes.title = QML Types -qhp.qtmultimediawidgets.subprojects.qmltypes.indexTitle = Qt Multimedia Widgets QML Types -qhp.qtmultimediawidgets.subprojects.qmltypes.selectors = fake:qmlclass -qhp.qtmultimediawidgets.subprojects.qmltypes.sortPages = true +qhp.QtMultimediaWidgets.subprojects = classes +qhp.QtMultimediaWidgets.subprojects.classes.title = C++ Classes +qhp.QtMultimediaWidgets.subprojects.classes.indexTitle = Qt Multimedia Widgets C++ Classes +qhp.QtMultimediaWidgets.subprojects.classes.selectors = class fake:headerfile +qhp.QtMultimediaWidgets.subprojects.classes.sortPages = true exampledirs += ../../../examples/multimediawidgets \ snippets diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h index 8c0db289a..58a2d84c9 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h @@ -103,6 +103,7 @@ public Q_SLOTS: void processEOS(); void processLoadStateChange(); void processPositionChange(); + void processMediaLoadError(); void processCurrentItemChanged(); diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm index 9a1808491..7af6f4394 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm @@ -283,7 +283,7 @@ static void *AVFMediaPlayerSessionObserverCurrentItemObservationContext = &AVFMe -(void) assetFailedToPrepareForPlayback:(NSError *)error { Q_UNUSED(error) - //TODO: Let the session know that the assest failed to prepare for playback + QMetaObject::invokeMethod(m_session, "processMediaLoadError", Qt::AutoConnection); #ifdef QT_DEBUG_AVF qDebug() << Q_FUNC_INFO; qDebug() << [[error localizedDescription] UTF8String]; @@ -357,7 +357,7 @@ static void *AVFMediaPlayerSessionObserverCurrentItemObservationContext = &AVFMe else if (context == AVFMediaPlayerSessionObserverCurrentItemObservationContext) { AVPlayerItem *newPlayerItem = [change objectForKey:NSKeyValueChangeNewKey]; - if (m_playerItem != newPlayerItem); + if (m_playerItem != newPlayerItem) { m_playerItem = newPlayerItem; @@ -799,13 +799,6 @@ void AVFMediaPlayerSession::processLoadStateChange() [[(AVFMediaPlayerSessionObserver*)m_observer player] setRate:m_rate]; [[(AVFMediaPlayerSessionObserver*)m_observer player] play]; } - - } else { - Q_EMIT error(QMediaPlayer::FormatError, tr("Failed to load media")); - Q_EMIT mediaStatusChanged(m_mediaStatus = QMediaPlayer::InvalidMedia); - Q_EMIT stateChanged(m_state = QMediaPlayer::StoppedState); - - return; } if (newStatus != m_mediaStatus) @@ -817,6 +810,13 @@ void AVFMediaPlayerSession::processPositionChange() Q_EMIT positionChanged(position()); } +void AVFMediaPlayerSession::processMediaLoadError() +{ + Q_EMIT error(QMediaPlayer::FormatError, tr("Failed to load media")); + Q_EMIT mediaStatusChanged(m_mediaStatus = QMediaPlayer::InvalidMedia); + Q_EMIT stateChanged(m_state = QMediaPlayer::StoppedState); +} + void AVFMediaPlayerSession::processCurrentItemChanged() { #ifdef QT_DEBUG_AVF diff --git a/src/plugins/blackberry/bbserviceplugin.cpp b/src/plugins/blackberry/bbserviceplugin.cpp index 90364f3f8..0a9abd71d 100644 --- a/src/plugins/blackberry/bbserviceplugin.cpp +++ b/src/plugins/blackberry/bbserviceplugin.cpp @@ -40,9 +40,11 @@ ****************************************************************************/ #include "bbserviceplugin.h" +#ifndef Q_OS_BLACKBERRY_TABLET #include "bbcameraservice.h" -#include "bbmediaplayerservice.h" #include "bbvideodeviceselectorcontrol.h" +#endif +#include "bbmediaplayerservice.h" #include <QDebug> @@ -54,8 +56,10 @@ BbServicePlugin::BbServicePlugin() QMediaService *BbServicePlugin::create(const QString &key) { +#ifndef Q_OS_BLACKBERRY_TABLET if (key == QLatin1String(Q_MEDIASERVICE_CAMERA)) return new BbCameraService(); +#endif if (key == QLatin1String(Q_MEDIASERVICE_MEDIAPLAYER)) return new BbMediaPlayerService(); @@ -102,7 +106,9 @@ QString BbServicePlugin::deviceDescription(const QByteArray &service, const QByt void BbServicePlugin::updateDevices() const { +#ifndef Q_OS_BLACKBERRY_TABLET BbVideoDeviceSelectorControl::enumerateDevices(&m_cameraDevices, &m_cameraDescriptions); +#endif if (m_cameraDevices.isEmpty()) { qWarning() << "No camera devices found"; diff --git a/src/plugins/blackberry/blackberry.pro b/src/plugins/blackberry/blackberry.pro index 806f20333..5684645fb 100644 --- a/src/plugins/blackberry/blackberry.pro +++ b/src/plugins/blackberry/blackberry.pro @@ -11,7 +11,11 @@ HEADERS += bbserviceplugin.h SOURCES += bbserviceplugin.cpp include(common/common.pri) -include(camera/camera.pri) + +!blackberry-playbook { + include(camera/camera.pri) +} + include(mediaplayer/mediaplayer.pri) OTHER_FILES += blackberry_mediaservice.json diff --git a/src/plugins/blackberry/camera/bbcamerasession.cpp b/src/plugins/blackberry/camera/bbcamerasession.cpp index d2eb62278..24e0a3796 100644 --- a/src/plugins/blackberry/camera/bbcamerasession.cpp +++ b/src/plugins/blackberry/camera/bbcamerasession.cpp @@ -335,7 +335,7 @@ static void imageCaptureImageCallback(camera_handle_t handle, camera_buffer_t *b QMetaObject::invokeMethod(data->session, "imageCaptureError", Qt::QueuedConnection, Q_ARG(int, data->requestId), Q_ARG(QCameraImageCapture::Error, QCameraImageCapture::FormatError), - Q_ARG(QString, QObject::tr("Camera provides image in unsupported format"))); + Q_ARG(QString, BbCameraSession::tr("Camera provides image in unsupported format"))); return; } @@ -344,7 +344,7 @@ static void imageCaptureImageCallback(camera_handle_t handle, camera_buffer_t *b QImage image; const bool ok = image.loadFromData(rawData, "JPG"); if (!ok) { - const QString errorMessage = QObject::tr("Could not load JPEG data from frame"); + const QString errorMessage = BbCameraSession::tr("Could not load JPEG data from frame"); // We are inside a worker thread here, so emit error signal inside the main thread QMetaObject::invokeMethod(data->session, "imageCaptureError", Qt::QueuedConnection, Q_ARG(int, data->requestId), diff --git a/src/plugins/blackberry/common/windowgrabber.cpp b/src/plugins/blackberry/common/windowgrabber.cpp index d02e022aa..db070d8e5 100644 --- a/src/plugins/blackberry/common/windowgrabber.cpp +++ b/src/plugins/blackberry/common/windowgrabber.cpp @@ -87,6 +87,30 @@ void WindowGrabber::start() { int result = 0; +#ifdef Q_OS_BLACKBERRY_TABLET + + // HACK: On the Playbook, screen_read_window() will fail for invisible windows. + // To workaround this, make the window visible again, but set a global + // alpha of less than 255. The global alpha makes the window completely invisible + // (due to a bug?), but screen_read_window() will work again. + + errno = 0; + int val = 200; // anything less than 255 + result = screen_set_window_property_iv(m_window, SCREEN_PROPERTY_GLOBAL_ALPHA, &val); + if (result != 0) { + qWarning() << "WindowGrabber: unable to set global alpha:" << strerror(errno); + return; + } + + errno = 0; + val = 1; + result = screen_set_window_property_iv(m_window, SCREEN_PROPERTY_VISIBLE, &val); + if (result != 0) { + qWarning() << "WindowGrabber: unable to make window visible:" << strerror(errno); + return; + } +#endif + result = screen_create_context(&m_screenContext, SCREEN_APPLICATION_CONTEXT); if (result != 0) { qWarning() << "WindowGrabber: cannot create screen context:" << strerror(errno); diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp index f58bea205..2e5c53a4d 100644 --- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp @@ -672,7 +672,7 @@ void CameraBinSession::updateBusyStatus(GObject *o, GParamSpec *p, gpointer d) Q_UNUSED(p); CameraBinSession *session = reinterpret_cast<CameraBinSession *>(d); - bool idle = false; + gboolean idle = false; g_object_get(o, "idle", &idle, NULL); bool busy = !idle; diff --git a/src/plugins/qnx/audio/audio.pro b/src/plugins/qnx/audio/audio.pro index c38b09b79..35ddf73de 100644 --- a/src/plugins/qnx/audio/audio.pro +++ b/src/plugins/qnx/audio/audio.pro @@ -3,9 +3,8 @@ QT += multimedia-private CONFIG += no_private_qt_headers_warning PLUGIN_TYPE = audio - load(qt_plugin) -DESTDIR = $$QT.multimedia.plugins/$${PLUGIN_TYPE} + LIBS += -lasound HEADERS += qnxaudioplugin.h \ @@ -21,6 +20,3 @@ SOURCES += qnxaudioplugin.cpp \ qnxaudioutils.cpp OTHER_FILES += qnx_audio.json - -target.path += $$[QT_INSTALL_PLUGINS]/$${PLUGIN_TYPE} -INSTALLS += target |