When the media is ready, the status should always transition to
LoadedMedia and then immediately to BufferingMedia or BufferedMedia.
Also, when the duration is queried before the media is ready but already
buffering, it should always return 0 to avoid errors from the Android
media player.
Task-number: QTBUG-32635
Change-Id: Ibcb9c23b4f64c4f9a1a8e0ef81989ae78cfb19ef
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
It was changing to EndOfMedia status and explicitly stopping playback
when receiving the MEEndOfPresentation event from the WMF session.
However, this event means that all data has bean read from the source but
not necessarily played yet. According to the documentation, playback is
done when the MESessionEnded event is sent. It now reports the EndOfMedia
status at that moment instead. stop() is not explicitly called anymore since
MESessionEnded also implies the session has stopped.
Task-number: QTBUG-30825
Change-Id: I6c6c09e736fe33f7cf17c75038ea7be1b5701a1c
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Previously if the loopCount property of a QSoundEffect was set to
QSoundEffect::Infinite then no sound would be played at all. This is
because QSoundEffect::Infinite == -2 and playback was only continued on
values above 0.
Task-number: QTBUG-32882
Change-Id: I739919a3e538128fc16f26ede5eb6cc4f2eb29fb
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
This contains a new resource policy plugin, replacing the built-in
code that was deleted when the plugin interface was removed in
138242fb2d (which unfortunately did not provide a
plugin).
Change-Id: Iae7ed6edc330c69ca0c72d50bde6c7e12b8cca4e
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
When looking for a specific chunk, it was entering an infinite loop if not
finding it in the next two chunks available. It now correctly tries to
find the chunk until it reaches the end of the IO device.
Change-Id: I29252318566fe3a47f267410c91dacaf302d9618
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
The one public port of this library to Qt 5 changed the .pc to libresourceqt5,
to avoid clashing with the Qt 4 version.
Change-Id: I6a248606e20c4e7a8f432612ca00aded846264d9
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
It was crashing when the PulseAudio daemon was not running or was
killed.
When the connection to the daemon fails (or is terminated), it now
tries to reconnect every 30 seconds.
Sounds created before a connection loss will be recreated after
reconnection.
Task-number: QTBUG-32487
Change-Id: Ia63707aa5c70434b834b3079a9950a9b35057b26
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
This example was in the multimediawidgets directory but doesn't depend on
or use the QtMultimediaWidgets module. Moved to 'examples/multimedia'
instead.
Change-Id: Ic2fcc6576e95664e0002531ee378a4366daa56c1
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Frames in the RGB32 format are actually using the BGR byte order, no need
to do the conversion.
Task-number: QTBUG-29206
Change-Id: I13527bd9dacc8330df78beb0965b31469c1d7a87
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
To have a consistent behavior with other backends, the WMF plugin now
starts the session after loading a media in order to start buffering some
data and correctly notify when the media is buffered.
It was previously reporting a BufferedMedia status only (and wrongly)
after explicitly starting the media player.
Not all source readers (usually a source reader is specific to a file
format) implement the service needed to query buffering progress. In that
case just report the media to be buffered immediately after loading.
Change-Id: I6e6332ae08e96fc789556761e5169b88c36c5e37
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
The Android MediaPlayer doesn't handle assets automatically, so we need to
open it and pass it in as a file descriptor.
Task-number: QTBUG-31422
Change-Id: Ic29c0ab6348d760cf21aa89ae423d41e15523976
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Setting the video surface on the Android media player after it has
loaded the media doesn't work on some hardware.
Change-Id: I5e621a34ace9de458bfc65bfac8fa50c29cee9a5
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
It was returning the first available device as the default, which might
not be the actual default device. Use the WAVE_MAPPER device ID instead
that tells Windows to use the most appropriate device.
Change-Id: Id1e9324e889bbaaab54bc0e0da810a7ce5fcb592
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
They previously had the multimedia services they provided as keys. This
was a problem when several plugins were available on the same platform,
providing the same multimedia service, but with different features or
capabilities. Since they had the same key, only the first plugin in the
directory was loaded.
Nevertheless, it was actually working until commit 732dcfe7 in qtbase,
as all plugins were loaded even when sharing the same key.
The services a multimedia plugin provides are now declared in the
'Services' property. To preserve compatibility with third-party plugins,
if that new property doesn't exist it falls back to the 'Keys' property.
Task-number: QTBUG-31868
Task-number: QTBUG-31476
Change-Id: Ic3ba32eeef21b69b922bd3d4feb111101559d132
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
If an exception's getMessage() function returns a null object, we can't
send it directly to the Log function, as it will throw an exception...
To avoid this we can prepend the string from getMessage() with an empty
string.
Change-Id: Ie026cbf9af133352919a4536c152b6d35cb8c0a7
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
The correct paths are relative to:
- <reporoot>/examples/<module>, or
- <reporoot>/src/<module>
Removing the module specifier fixes these links/quotes.
Change-Id: I6be4f28c44bd26361b60a394158b0e6cc46b1ec0
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Adapt the frame size dynamically, since mmrenderer resizes
the source viewport of the native video window at runtime on
some hardware platforms.
Task-number: QTBUG-31534
Change-Id: Ie637d7a80697175dacb454535fbe251b2c7a6809
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Add a page with details about Qt Multimedia backends on Windows, and
link to it from the module index page.
Initially, cover the status of camera backend in WMF and DirectShow
plugins.
Task-number: QTBUG-29552
Change-Id: I53e5901e2d621c4bbc96a61d5dbb249b4debb8d4
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
libQt5MultimediaQuick_p is first loaded as a result of a qml import, and
is therefore not detected as a dependency.
Note that libQt5MultimediaQuick_p will only be added as a dependency if
QtQuick is used.
Task-number: QTBUG-30861
Change-Id: I8ce818ef1648302bbbbdf63ef133185a66b66cca
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
No longer include <qedit.h> in directshow-plugin,
which no longer ships in newer SDKs.
Ensure it only provides the camera service if the
WMF-plugin is built by using a different .json-file.
Adapt qcamerabackend-test to use widgets.
Task-number: QTBUG-28047
Change-Id: I22ea441b9edb56ff55bc275dba37c01c77d8dd90
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
qmultimedia.h is included in more places, but qmediametadata.h is
larger. This patch should reduce unnecessary #include-ing.
Change-Id: I4a3d174bafc555d794bb75087c1f6b79745ae903
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
QDoc needs to know the directory under which the examples are
installed in QT_INSTALL_EXAMPLES. Without them, example manifest files
may contain invalid paths.
Change-Id: I3d27517e41e3b1deb7643ca1a40f3905c0e5cc1a
Reviewed-by: Martin Smith <martin.smith@digia.com>
We need to adapt to the way the jar builds are split on Android,
into a jar file which can be bundled and one which can be distributed
and loaded on the classpath.
We also need to add meta-information about which plugins the
module depends on so that they can be bundled as well.
Task-number: QTBUG-30751
Change-Id: I5cca51c3732ce72985df29672a219c3fd4fe7bac
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
qdocconf files for both Qt Multimedia and Qt Multimedia Widgets already
define the correct example path. This change fixes also the example
documentation to use the correct path, as well as the link to examples
in Multimedia Overview.
Change-Id: I72d75027ee18f6398eb76dc40bcc3d122541b1c9
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
-changed title of "Qt Multimedia Overview" to "Multimedia". It follows
the other topic titles from qtdoc.
-fixed column widths of paragraphs
Change-Id: I8a12d1d9a2a9c3ca184d69ebe464c80721a117f7
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
This change fixes QCH documentation title for Qt Multimedia Widgets.
Also, the project names are changed to use CamelCase - this is required
as qdoc will generate visible output (tags in example manifest files)
based on those names.
Also, removes documentation topic for QML types from Qt Multimedia
Widgets as it doesn't have any.
Change-Id: Ic5f3b7a3094a1012f3c356f0195a8eb40d9d9e35
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
bool and gboolean are not necessarily the same size on all
architectures, and if gboolean is larger than bool then passing it
as an argument to g_object_get can trash the stack. In this case
overwriting some of the session pointer.
Change-Id: Iaa7be6a327e9f69212bd7d5bb372d33f2026db0f
Reviewed-by: Andy Nichols <andy.nichols@digia.com>