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>
Similar to de9092389f for qmlvideo.
Use QUrl::fromLocalFile() to get Windows drive handling
right. Emulate its behavior in QML code. Fix up() to terminate
correctly.
Task-number: QTBUG-32139
Change-Id: I36bafaa608ff054190dc76694f6254a74f3b513e
Reviewed-by: Yoann Lopes <yoann.lopes@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>
Use QUrl::fromLocalFile() to get Windows drive handling
right. Emulate its behavior in QML code. Fix up() to terminate
correctly.
Task-number: QTBUG-32139
Change-Id: Iec6d9f96fbe2181c939e9dbbe6aa042eac630918
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
(gui && qml) is not a sufficient condition for the availability of
quick (e.g., missing opengl support can disable it).
Task-number: QTBUG-32682
Change-Id: I3b7fb005528cc99239f59d34c7f70abeebcfa75c
Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
Don't build the wmf backend when configure was executed
with the -no-wmf-backend option.
Change-Id: Ia047137c15c7aac302092e9f77b961c6e584bb86
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@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>
In the FileBrowser paths where being prepended with file:///, since all
the paths already starts with a forward slash, navigating away from the
initial directory was therefore not possible.
To make the examples work on Android, QT += multimedia was added.
Change-Id: Iff96729d476c4292999b022bdd6d5770b6b011e7
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@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>
The qtCompileTest function in configure.prf does not work when
cross-compiling on Windows because it detects the wrong make executable.
And it's anyway not the best way to do this, since what we really want
to check for is the existence of the SDK version, whereas the compile
test could potentially hide a lot of other problems under the same
error message.
Task-number: QTBUG-31405
Change-Id: I2c16b214e40bac5751d4e7098edcc30318756621
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
This means that we are going to use the same branch name for the
dependencies as the branch of the repository under test.
If we are testing the 'stable' branch, all dependencies will point
to the 'stable' branch as well.
Change-Id: I8f899a9a9fb9e94b99a9250eb5eb2dbe2eed8fc5
Reviewed-by: Iikka Eklund <iikka.eklund@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>