Commit Graph

419 Commits

Author SHA1 Message Date
Friedemann Kleint
98a6eefda9 Add Linguist comment for translation of Drive-mode.
Translators not familiar with cameras might mistake it for
something related to driving a car.

Change-Id: If54a563a32af537d291b79253056b7b57e108f5b
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-10-15 15:38:55 +02:00
Yoann Lopes
99c4a08c38 WMF: allow to set a qrc file name as source of a QAudioDecoder.
Task-number: QTBUG-33518
Change-Id: I01d8a1fa7b9a1c3ea2af9de6033dff2773cd6ace
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-14 18:44:03 +02:00
Yoann Lopes
a23b14874c WMF: allow to load media whose content doesn't match its file extension.
This also allows to play streams without providing a MIME type.

Task-number: QTBUG-33631
Task-number: QTBUG-33518
Change-Id: Ia106592cb5ed0a0f7ede6308dc8e2c12cf4e63b1
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-14 18:43:48 +02:00
Frederik Gladhorn
677aac0e92 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/blackberry/camera/bbcamerasession.cpp

Change-Id: I7c86e10140ab86fd2a07e2f034dec38ae9112559
2013-10-14 14:35:38 +02:00
Yoann Lopes
6f0cdc264f WMF: fixed compilation on Windows Vista.
We were using one function which is available only on Windows 7 (and
later). Replace it with Vista-compatible calls.

Task-number: QTBUG-32864
Change-Id: I77492a407330c3689dfbf8dc1180894cf7ca5f8d
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-11 16:08:22 +02:00
Yoann Lopes
7d24543c27 DirectShow: improve metadata support.
Correctly return the list of available metadata.
On Windows Vista and later, we now use shell properties to retrieve the
metadata. This allows us to get much more metadata properties.

Task-number: QTBUG-30776
Change-Id: If542756d08d832903984ef10d09c4caf410bdb1c
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-11 14:21:48 +02:00
Yoann Lopes
8d78790872 QNX: enable AudioCapture plugin.
This allows to use the QAudioRecorder API on QNX (and Blackberry), using
the low-latency audio plugin as backend.

Change-Id: I9bed7c01948a40f931f2a6b29c0f5cbfc99635bd
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-10-11 09:43:25 +02:00
Fabian Bumberger
2e1d38a3c7 Enable camera on the Playbook
Change-Id: I61537899bee63150861df57f9140316eca6a6eed
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-10-10 17:55:19 +02:00
Yoann Lopes
c2f95891c0 Refactored AudioCapture plugin.
Change-Id: I025588d7d2afc8d8137a258d86f6dab5b00b234a
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-09 19:02:13 +02:00
Yoann Lopes
b49746b588 Android: fix media recording location.
When letting the plugin decide where to save the recorded media, doing
several recordings would always use the same output file instead of
creating a different one every time.

Change-Id: If352257d6c91ada8565c1463820321f84c9bb92f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-09 18:02:44 +02:00
Yoann Lopes
28df116570 Android: fixed image capture preview.
We used to generate the capture preview from the video output, grabbing
the pixels of the last frame (in a FBO). This is not possible anymore,
we instead query the camera for a preview frame, which is in the NV21
format and needs to be converted to RGB.

Change-Id: I1c728b3a708a6f052a83aebf9f15f511eab7a02f
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-01 17:26:31 +02:00
Yoann Lopes
be7a6241e7 Android: refactor video renderer.
Removed the overhead of having to create a shared OpenGL context in the GUI
thread and pre-render the frame into a FBO.

We now directly render the GL_TEXTURE_EXTERNAL_OES in the QtQuick render
thread, using an Android-specific QSGVideoNode.
We also use a callback from the render thread to create the texture from
there and not have to create a separate shared OpenGL context.

Change-Id: I6c8eb94b47d0a03329c912701b8af3fb5ebd1876
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-10-01 17:26:21 +02:00
Frederik Gladhorn
85aadf8cb2 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-10-01 09:13:55 +02:00
Bernd Weimer
957084ac1b Added missing camera error strings
On BlackBerry some camera error codes were not mapped to
corresponding strings.

Change-Id: I3c26f07eccc7204b89a387e83d342f6821773a1b
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-10-01 09:11:23 +02:00
Yoann Lopes
2162d9a2cc Android: fix plugin json metadata.
Change-Id: I0f2feca44843760df13a938d9190daf2d447d645
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-09-26 12:26:18 +02:00
Yoann Lopes
c3ca3a760e Some cleanup in the GStreamer plugin.
Removed QGstreamerVideoOverlay and related classes. It was used as
'Window' control but performs worse than QGstreamerVideoWindow which
does basically the same thing using GStreamer ready-made components
instead.
Removed X11 dependencies and related configuration tests. It was only
needed for QGstreamerVideoOverlay.

Change-Id: I2ad2636ccf0060e56cd64f3d9e5b3c24dc75f5a3
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-20 14:37:06 +02:00
Christian Strømme
ac029c65f2 Android: Adapt the multimedia plugin to new QJNI API
Change-Id: Id87f5518724eed6c9de6d5d3b8141860bd511643
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-09-20 10:11:50 +02:00
Yoann Lopes
17480111ed Android: fix compilation on x86.
Task-number: QTBUG-33554
Change-Id: I4da7410d3b77ec6d72a73d3b6ceb7b76bb48d2b7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-09-19 14:44:17 +02:00
Andy Nichols
b357c55f2d CoreAudio: Create an audio plugin supporting iOS and OS X
This removes the Mac audio backend that was hardcoded into QtMultimedia
and adds a new audio plugin using the CoreAudio API.

Change-Id: Ib15291825f9452a3763e0eeb281d952deb0bad3d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-09-19 14:36:28 +02:00
Christian Strømme
044e48d5a4 OpenSL: Fix build warning about unused result variable.
Change-Id: I11a4a3792feb90c46d4f3a77aafa82c18a9d9a45
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-09-17 21:17:07 +02:00
Christian Strømme
ef64462696 OpenSL: Fix typos
Change-Id: I1a293bbf8ad3d9016ff6a7ec816c33d3303e5959
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-09-12 16:04:23 +02:00
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
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
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
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
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
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
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
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
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
Frederik Gladhorn
18a8381ab3 Merge remote-tracking branch 'origin/release' into stable
Change-Id: I9ad818eecef74983e09660871f39ee66a6b666a1
2013-06-25 23:27:28 +02:00
Yoann Lopes
e25db62a59 Multimedia plugins now have a unique JSON metadata 'Keys' property.
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>
2013-06-21 12:07:00 +02:00
Frederik Gladhorn
17053a450b Merge remote-tracking branch 'origin/release' into stable
Change-Id: I0361cbb4f5398bb13e675c3de04519c414daea43
2013-06-20 16:23:34 +02:00