Commit Graph

355 Commits

Author SHA1 Message Date
Thiago Macieira
d45a02e8c9 Add missing virtual destructor for new class
qmediaserviceproviderplugin.h:166:28: error: ‘struct QMediaServiceCameraInfoInterface’ has virtual functions and accessible non-virtual destructor [-Werror=non-virtual-dtor]

Change-Id: I08c6718bfd87c5adeea9969afdd4766150163238
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-03-01 14:10:01 +01:00
Yoann Lopes
f783c48a17 VideoOutput: fix autoOrientation with a camera source.
Don't assume the camera frames are always in the same orientation as the
display in its primary orientation. We now take into account the camera
sensor position and orientation to calculate the viewport orientation.

Change-Id: Ib333c87f1804d1010ada42cb757e4fab78d75a04
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-02-28 14:10:14 +01:00
Yoann Lopes
b28ee24628 New QCameraInfo class.
The class allows to get the list of available cameras on the system as
well as getting some static information about them such as their unique
ID, display name, physical position and sensor orientation.

This makes QCamera::availableDevices() and QCamera::deviceDescription()
obsolete.

This patch contains the API, documentation and auto-tests but not the
actual implementation by each backend (except for retrieving the default
camera device).

[ChangeLog][QtMultimedia] Added new QCameraInfo class
[ChangeLog][QtMultimedia] QCamera: availableDevices() and
deviceDescription() are deprecated, use QCameraInfo instead

Change-Id: I64fd65729ab26a789468979ed5444ee90bb82cd0
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-02-28 14:10:00 +01:00
Yoann Lopes
d964388b38 QSoundEffect: fix changing the loop count while playing.
The running count was not updated with the new value.

Auto-test added and documentation updated to be more clear about this
behavior.

Task-number: QTBUG-36643

Change-Id: I29e98ca4679f950a75133b21873738bcb72d23d4
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-02-25 15:00:44 +01:00
Yoann Lopes
92323612d0 android: add missing feature tags.
Adding the CAMERA and RECORD_AUDIO permissions implicitely makes some
features a hard requirement for the app.
By adding these features in the .pro file, androiddeployqt will mark
them as unrequired in the final package.

Change-Id: Ie9357d05626cb12272001d63b04e230737fbf1bc
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-02-21 14:40:42 +01:00
Frederik Gladhorn
c6ec402d25 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ie93615076177662e75d46f3d13beeb88d424b4a6
2014-02-12 14:11:35 +01:00
Robin Burchell
1e23440457 QSoundEffect: Don't try guess a media role if one has not been provided.
Trying to heuristically guess this kind of thing is almost always a bad idea.
Expect the creator of the output to explicitly tell us the category instead
of guessing.

Change-Id: I5f2988e2456685f3622e0ab136951b1742215f71
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-02-07 13:23:16 +01:00
Thiago Macieira
e4035bf6d0 Normalize signal & slot signatures in connection
Profiling shows Qt Creator spends 2% of its load time normalizing

Change-Id: I1a4bef16be79ced35c47da865153ebe1bee22f9c
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-02-03 20:12:35 +01:00
Christian Strømme
2d54da2d39 Move win32 and Alsa audio backends into plugins.
Change-Id: I9835cf5ee97900569f26421a19543b485e933051
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-01-30 18:15:36 +01:00
Yoann Lopes
0ab81ef59f Alsa: fix crash when detecting devices.
Some old versions of Alsa crash when snd_device_name_hint(-1, ...) is
called. This patch works around the problem by iterating manually over all
the available sound cards.

Change-Id: Ic380a371acc15013d137553ff30d68bed5af664e
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-01-30 18:12:44 +01:00
Yoann Lopes
67b86a9fbd Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-01-30 14:32:29 +01:00
Oswald Buddenhagen
5980bc41cf whitespace fixes
remove trailing spaces & expand tabs.

Change-Id: I05ef110abed90f13b47752760ffb4567a11a6a5e
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
2014-01-30 14:32:10 +01:00
Frederik Gladhorn
9459acf48e Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I83d589c55e8463cce23068dc81096aa66ec596a5
2014-01-27 18:54:20 +01:00
Andrew den Exter
60fb11d9a2 Allow plugins to override the QML VideoOutput type.
Move QDeclarativeVideoOutput to the private QtMultimediaQuickTools
library to make the QDeclarativeVideoOutputBackend interface
implementable by a plugin.

Change-Id: I763c483a1fc9ec56dc7b8be0bc71523f029a36ee
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-01-20 14:26:03 +01:00
Frederik Gladhorn
422099e8dd Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	.qmake.conf

Change-Id: Id367a610a3aefd288bfe287a3bf64606e582deb9
2014-01-17 17:20:59 +01:00
Jędrzej Nowacki
e485e066ac Use QStringRef instead of QString whenever possible.
That way we reduce count of temporary QString instances.

Change-Id: Id806c68ea616828c2355c07b8576616fa6a8da17
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-01-15 17:12:41 +01:00
Bernd Weimer
16aadf964d BlackBerry: Changed documentation
Changed platform notes title to be able to reference it from elsewhere.

Change-Id: I0edcebc6aa04e7a063cbe8b386ca8b38e0ae22a9
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2014-01-13 10:30:00 +01:00
Andrew den Exter
4d3f740795 Allow the camerabin source selection to be overridden.
Prefer the default camera-source element if there is one or an element
identified by an environment variable to a static list of possible
elements which may not be appropriate for the target environment.

Change-Id: I53816c949307953780f9046eb11e09effe059be0
Reviewed-by: John Brooks <john.brooks@dereferenced.net>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2014-01-13 06:05:05 +01:00
Jeff Tranter
a0d39a2ab6 Fix some typos in documentation.
Fix some spelling and grammatical errors in comments that show up in Qt documentation. No changes to code.

Change-Id: Ieb7be17bd1d50751f00620f7ac28d09355856ac0
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
2014-01-07 13:22:07 +01:00
Yoann Lopes
34f253e19d PulseAudio: fix crash when failing to create a context.
Don't try to call a function on a null PulseAudio context.
If pa_context_new() fails, we now try again to connect to the pulse
audio daemon later.

Task-number: QTBUG-35456
Change-Id: I0b848d3f25f57651ab31b9eca7ceb1bc9df2f682
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-01-06 15:45:48 +01:00
Mitch Curtis
02245571bf Correct QSoundEffect::supportedMimeTypes() documentation.
Change-Id: I154b124949ee4f07ea413d8cdb419fcc08cb8324
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-01-02 11:35:59 +01:00
Yoann Lopes
51b7864bb8 Android: automatically deploy playlist plugins.
Include the playlistformats directory for automatic plugin deployment.

Change-Id: Ie61a4b1c1637a493e1bdb7354b33060728ccabda
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-12-10 18:16:41 +01:00
Yoann Lopes
9ceb1c083e Use the backend to notify the QCamera state changes.
We were emitting the stateChanged() signal no matter what was actually
done by the backend. QCamera now emits this signal only if the backend
actually changed the state.

Task-number: QTBUG-35070
Change-Id: I9f32361cd815dbcc366ad30033692f9ae732ec46
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-12-05 22:55:02 +01:00
Christian Strømme
0fd995ac8b Don't use integers to describe volume internally in QSoundEffect.
The public api takes floating point values and so does most of the back-
ends. Conversion should be done in the back-ends that expect other value
types to avoid unnecessary float -> int -> float conversions.

Change-Id: I0ee1bfbe350f985294c20f897ffa3bd55288b4c9
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-11-28 14:12:22 +01:00
Sze Howe Koh
eb221bfd6d Doc: Document asynchronous nature of QMediaPlayer::setMedia()
The function name can be interpreted to mean that it loads the media.
Users have made this mistake before:

http://comments.gmane.org/gmane.comp.lib.qt.user/9189
https://bugreports.qt-project.org/browse/QTBUG-28514

Change-Id: I9e9b36405d67d40db42b77d8eeb8f9d528ee16e2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-11-23 00:30:30 +01:00
Eskil Abrahamsen Blomfeldt
3571a891d5 Android: Add permissions/features for Qt Multimedia module
To avoid potential exceptions when using Qt Multimedia, the
applications needs to request camera and audio recording
capabilities by default.

Task-number: QTBUG-33953
Change-Id: I75061e24c65a24f7f45dcfdbb5edb1874c1eb4da
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-11-08 09:02:03 +01:00
Jerome Pasion
fb199a5045 Doc: Updated url variable in qdocconf files.
In 5.2, the HTML output is in a flatter structure and when they are
hosted in qt-project.org/doc, the documentation will be found at
http://qt-project.org/doc/qt-$QT_VER

The url variable is used by projects outside of Qt 5 which need
to link to Qt 5 documentation, such as Qt Creator.

Task-number: QTBUG-34584
Change-Id: I3971987490ef7c2f8060383ffc2e141558f827c9
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2013-11-06 10:56:03 +01:00
Oswald Buddenhagen
ac01ab6543 use private linkage where possible
Task-number: QTBUG-34463
Change-Id: Iffbeed2f1a27fd38b5960afa9715815ac11b722a
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-10-31 23:18:18 +01:00
Christian Strømme
852f684973 QSoundEffect: Set playing to true before starting the audio-device.
When the audio-device starts playing it should be able to read from the
source immediately. The OpenSL plugin would fail because the source was
blocking the audio-device from reading, as the state still was in its
initial state (stopped).

Change-Id: Ia26fa2eb442e239f5209947e6c9cd464b7d976a4
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-10-30 15:02:28 +01:00
Yoann Lopes
7c9ff56f2f Remove unnecessary warning in QMediaPlaylistNavigator.
Task-number: QTBUG-33862
Change-Id: Ie74e649ebb5819ccf6300492bdce2a0046b87f02
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-10-09 12:17:52 +02:00
Jerome Pasion
1598f79b17 Doc: Fixed missing links to Qt Audio Engine
The title changed from Positional Audio to Qt Audio Engine.

Change-Id: Ie9901c7bc6c394c1c429a16a8a1b1c18b1a87f46
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-10-08 12:27:52 +02:00
Jerome Pasion
3793b0653f Doc: Various fixes to Qt Audio Engine documentation
-fixed \since to "\since 5.0" (Qt version 5.0)
-made a \qmlmodule page so the list of related classes are automatically
 listed
-made changes in the Qt Multimedia documentation to link to the
 Qt Audio Engine documentation

Change-Id: Ibdd3da02871648988a73172934e684840c4ce0ae
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-10-03 10:54:17 +02:00
Jerome Pasion
43be5d9763 Doc: Removing version number from the QDoc comments.
The version is not needed anymore and QDoc handles them as a different
module, causing errors.

Task-number: QTBUG-32172
Change-Id: I55054a6c7bce9e001ef03cce944b03375c851d15
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-10-02 12:56:28 +02:00
Jerome Pasion
40908fdb77 Doc: Updated usage of \qmlmodule and \inqmlmodule.
-\qmlmodule denotes the import statement "QtMultimedia 5.0"
-\inqmlmodule shouldn't have the version number and this commits removes
it because it is confusing.

Task-number: QTBUG-32172
Change-Id: I76f58ddd5ea2d5ae51eaae83a8408fd67611838a
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-10-02 12:56:21 +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
Friedemann Kleint
329d9d4563 Fix lupdate warning in playlistparser.
playlistfileparser.cpp:278: Class 'PLSParser' lacks Q_OBJECT macro.

Change-Id: I062bd90b7cd5de82683dc02c6a6400855982a163
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-09-27 18:29:45 +02:00
Christian Strømme
6914aa76a4 Android: Make sure the OpenSL plugin is included on Android.
Change-Id: Ic46dd8afe50250bb30754ce12eda57138d05b81d
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
2013-09-26 14:57:46 +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
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
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
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
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
Frederik Gladhorn
cb1871d061 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I469f258c4838f87edaedc8620d925a3c537d1619
2013-08-27 22:44:53 +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
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