Commit Graph

1015 Commits

Author SHA1 Message Date
Yoann Lopes
0a7882f6b3 Android: added camera support.
This patch includes all camera features: viewport, settings, image
capture, and video recording.
It also adds support for QAudioRecorder.

Change-Id: Ib962177cc8de4bac03f42a2bc0f534e03464bbfc
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-09-12 12:56:57 +02:00
Pier Luigi Fiorini
99fff6941b Fix the X11 build error
This makes qtmultimedia build again by moving down X11 includes.
See http://lists.qt-project.org/pipermail/development/2013-September/012986.html

Change-Id: If6cd5e80c27de7aaa8d2a65ded05500ed9d0e692
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-09-09 10:45:04 +02:00
Sergio Ahumada
25be645862 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2cba36426d8af40f94712f7f05f4e0dd4efce6e7
2013-09-06 14:32:51 +02:00
Tobias Hunger
71808302a5 PulseaudioInput: Remove unused members
Clang warns about them.

Change-Id: I8fb2e9bc30f35ec9540b09a34bf23bf9eb671b9c
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-02 15:06:22 +02:00
Tobias Hunger
f713edbc5a QGstXvImageBuffer: fix warning about class/struct mismatch
Change-Id: I98df1ce92fab69ad1200066d310aa8bd016b5aca
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-02 15:05:59 +02:00
Tobias Hunger
420e02c74b QGstTools: Fix warning about unused m_intervalTimer
Clang does complain about this member not being used.

Change-Id: I02919715be43486f4646ca75deea66fc8a6a2276
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-09-02 15:05:48 +02:00
Bill Somerville
4715ec52b1 Fix QAudioOutput::setVolume() limited 50% on 32-bit Windows
A signed 16 bit integer was being used to pack a normalised double into
half of a DWORD. It needed to be unsigned 16-bit to get the full range
of the Windows volume control.

Task-number: QTBUG-33160

Change-Id: Ic17f572a188401ee686c6e6af3984d52328ccda6
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-09-02 12:08:30 +02:00
Bernd Weimer
13a53a5056 BlackBerry: Pass encoded URLs to mm renderer
MM renderer expects (remote) URLs to be percent encoded.

Change-Id: Ib7429cbeb3b7aa6baba99419d8b101a712ab4881
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-08-29 09:24:31 +02:00
Frederik Gladhorn
cb1871d061 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I469f258c4838f87edaedc8620d925a3c537d1619
2013-08-27 22:44:53 +02:00
Andy Nichols
48a6a8a043 AVFoundation: Basic camera support for iOS
Enables basic software rendering support for iOS.

Change-Id: Icd29076ea627295819ede6d9680de576ba39b34e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-27 14:16:26 +02:00
Andy Nichols
94ccfbc132 AVFoundation: Enable QVideoWidget on iOS
Change-Id: I88041e7a2ea052fe449542eeaada31c09d93d163
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-27 14:16:18 +02:00
Andy Nichols
51d0f852b9 AVFoundation: Use CoreAnimation to render video to QVideoWidget
Previously a QGLWidget was used as a target for the
AVFVideoFrameRenderer.  This was uncessary as it is possible to render
directly on top of the QWidget using the CoreAnimation Framework.

Change-Id: I08923c85fd56c8874c1d8c187ae5145e220fab92
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-27 14:16:10 +02:00
Andy Nichols
17a700292a AVFoundation: Enable use of QMediaPlayer for audio on iOS
This commit disables the video components of the AVFoundation
mediaplayer backend when building for iOS and enables the use of
QMediaPlayer with audio assets.

Change-Id: Iadd6f9c61ed1e656301326e90a22cbca6428b654
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-27 14:15:54 +02:00
Andy Nichols
d3531cb0cc AVFoundation: Remove QVideoSurfaceCoreGraphicsPainter
This was a leftover from Qt 4, as it is no longer possible to use the
CoreGraphics paint engine.  Instead we should just use the logic in
QPainterVideoSurface render the QVideoFrame.

Change-Id: I7e97fe7c30fd478dcd405d300e0c3f70050ca25f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-08-26 14:24:29 +02:00
Yoann Lopes
a2f078f108 WMF and GStreamer: fixed incorrect frame startTime and endTime.
The QVideoFrame documentation explicitly says that the time is in
microseconds, however the GStreamer backend was setting the time in
milliseconds and the WMF backend in 100-nanosecond units.
With WMF, the time was missing from the QVideoFrame when presenting it to
the video surface.

Task-number: QTBUG-31731
Change-Id: I0638d2abf8eed25b3a531db67c19a18703e5b630
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-22 13:16:49 +02:00
Christian Strømme
ca769ba264 Android: Use isValid() to check if the jobject is valid.
Change-Id: I5ec67b9b2abfae2e2c2a44f0bcc7c72cb54beb49
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-08-21 13:31:53 +02:00
Yoann Lopes
4585518d52 Android: fixed media player buffering logic.
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>
2013-08-19 15:31:21 +02:00
Friedemann Kleint
c86d14a380 Fix file browser in qmlvideofx example.
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>
2013-08-19 10:07:19 +02:00
Simon Hausmann
9f15a98891 Remove unnecessary dependency to qtjsbackend from sync.profile
Change-Id: Ie72932d3a9ba1bfa2f282e8134b50b2d6b8ec469
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2013-08-16 22:39:36 +02:00
Sergio Ahumada
188b59609b Merge remote-tracking branch 'origin/release' into stable
Change-Id: Ibcde5cfcb97948f9e3f71a2d6b06397e1003aa3b
2013-08-16 20:53:47 +02:00
Yoann Lopes
df4336a844 Add changes-5.1.1 file.
Task-number: QTBUG-32808
Change-Id: I998548df399ec6d2dd6b061b5ba2c1ca451276bc
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2013-08-16 17:34:22 +02:00
Yoann Lopes
291f1229fe WMF: fixed QMediaPlayer changing to EndOfMedia status too early.
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>
2013-08-16 15:30:10 +02:00
Yoann Lopes
bdf0cc7a16 WMF: use qFabs instead of fabsf.
Task-number: QTBUG-32360
Change-Id: Ibec3d044ac38f54abd895d56f1851011bf6b5272
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-08-16 15:30:00 +02:00
Frederik Gladhorn
4b8bb5cec7 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-08-13 21:00:22 +02:00
Andy Nichols
11432c0e77 Enable QSoundEffect with loopCount of Infinite to play
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>
2013-08-13 18:40:59 +02:00
Jerome Pasion
206cf434a2 Doc: Renamed HTML file for "Qt Multimedia on Windows" page.
Conflicts with the platform page for Windows in qt5/doc

Task-number: QTBUG-32580
Change-Id: Ibcf51c5dcd93ac388fa799644004c51aa88fe93d
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-08-12 13:50:46 +02:00
Frederik Gladhorn
74e4b59ec8 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/plugins.pro

Change-Id: Ieec8b5984b0fba97872bf96c38410369dc0e20cf
2013-08-12 12:47:02 +02:00
Robin Burchell
9f484eae83 Implement resource policy plugin using libresourceqt.
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>
2013-08-05 18:08:53 +02:00
Yoann Lopes
f01af490a0 Fixed bug in QWaveDecoder.
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>
2013-08-05 18:08:53 +02:00
Robin Burchell
edc76ed071 Change libresourceqt's .pc file.
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>
2013-08-05 17:21:43 +02:00
Sergio Ahumada
06eab796ba Merge branch 'stable' into dev
Conflicts:
	.qmake.conf

Change-Id: Id3427cb1a80956ba61373313c21b4b9aa007ea54
2013-08-05 10:38:25 +02:00
Jerome Pasion
ab29837c0e Doc: Setting \qtvariable values in module pages.
\qtvariable is the QT variable in .pro files.

Change-Id: Ib2e78579bbc67346b6c3431d03e01a4858439ac4
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-08-02 17:22:14 +02:00
Friedemann Kleint
2838a99c5a Remove left-over debug output.
Task-number: QTBUG-32139

Change-Id: I52843ca104e422fb02112949191dbcd4642905a5
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-07-31 11:26:18 +02:00
Friedemann Kleint
de9092389f Fix file browser in qmlvideo example.
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>
2013-07-30 16:38:48 +02:00
Oswald Buddenhagen
9f26d9e242 fix build without quick
(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>
2013-07-30 11:44:43 +02:00
Yoann Lopes
cd11c240a6 Make PulseAudio implementation of QSoundEffect more robust.
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>
2013-07-25 23:09:22 +02:00
Wouter Huysentruit
18d77b2b33 Use the new (-no)-wmf-backend configuration option
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>
2013-07-25 10:14:29 +02:00
Yoann Lopes
a91809bf0f Moved declarative-camera example in the right directory.
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>
2013-07-24 13:09:44 +02:00
Sergio Ahumada
44913bb75d Bump MODULE_VERSION to 5.1.2
Change-Id: I1cfa9beb95b322c0d28b7240692358a02c442f77
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-24 11:52:35 +02:00
Frederik Gladhorn
c1520e8aeb Merge remote-tracking branch 'origin/stable' into dev
Change-Id: If52332b72560d21069e24cd31b13f08f33e1f406
2013-07-23 11:14:36 +02:00
Yoann Lopes
c74b544610 DirectShow: avoid unnecessary RGB32 -> BGR32 conversion.
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>
2013-07-19 14:43:26 +02:00
Yoann Lopes
d8e56bc4b8 DirectShow: Don't create the widget and renderer controls until requested.
Task-number: QTBUG-32282
Change-Id: If37ed4c35bcc2cc879f50d3b2ea3720b90603e9a
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-07-19 12:35:20 +02:00
Yoann Lopes
d599f7319a WMF: fixed MediaPlayer buffering logic.
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>
2013-07-19 09:42:42 +02:00
Yoann Lopes
680c9cab91 OpenSL ES audio plugin.
Adds support for QAudioOutput, QAudioInput and QAudioDeviceInfo using
OpenSL ES 1.0.1. This plugin is used on Android.

Change-Id: Idf2c22a861e067196f6c5139e51393b086f64183
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-07-19 09:42:19 +02:00
Frederik Gladhorn
0a05ae5446 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ia2cf3c55e57d7ac17f02965915fa6933ff2c8cce
2013-07-11 23:26:39 +02:00
Yoann Lopes
e15a2b92b6 Android: removed unnecessary init class for QtMultimedia.jar
Change-Id: Ib13597389a3896da8b619993d197623e7c74a7e0
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-07-09 14:47:01 +02:00
Christian Strømme
6c941c6c2b Android: Make it possible for MediaPlayer to read from assets.
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>
2013-07-09 14:46:49 +02:00
Yoann Lopes
5e7e8e04d1 Android: wait to have a valid video surface before loading a media.
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>
2013-07-09 09:41:32 +02:00
Yoann Lopes
1dfbe44d90 Android: release the Android media player before destroying it.
Change-Id: I18715efd7ff346a9f6f2214727ec66ee79ad0d33
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-07-09 09:41:17 +02:00
tommyadam
1eb77d3782 Fix resource leak in directshow plugin.
Add two missing release calls to free file handles.

Task-number: QTBUG-23822
Change-Id: I8f5b6d0dcf9ad66bdaa2f378c0d3e401388d7add
Reviewed-by: Wouter Huysentruit <wouter.huysentruit@dzine.be>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-07-04 15:49:35 +02:00