Commit Graph

553 Commits

Author SHA1 Message Date
Dmytro Poplavskiy
8477d735c9 Added VideoLight camera flash mode.
Unlike the torch mode, it's enabled only while camera is active.

Change-Id: Ib92349ac190586c5aa8e49a8fddbdf937e757fd0
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-03-22 06:47:05 +01:00
Thomas Senyk
b816a640a9 changing include from qdeclarativeinfo to qmlinfo in qdeclarativeaudio.cpp
Change-Id: I7244f6c7b3743dfe5532f1d13c2afef256a2cdbc
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-21 22:25:33 +01:00
Lev Zelenskiy
92b58ac1a7 QMediaPlaylist: Added ability to load from provided QNetworkRequest.
Change-Id: I7d8fc8a432810ff87650808b9ca6af53f7356d4e
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-21 07:36:53 +01:00
Lev Zelenskiy
b1eba5e9b2 QMediaPlayer: GStreamer backend changes for playlist support.
Register type find function to check if unrecognized media is a playlist.
Emit MediaIsPlaylist error and let frontend handle playlists.

Change-Id: Ib17da1c46014ac3c0f2f48b75ea9de2f0428b573
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-21 05:43:37 +01:00
Lev Zelenskiy
2c034beab5 QMediaPlayer frontend: changes to playlist support.
Allow to load playlists using setMedia().
Use QNetworkMediaPlaylistProvider for playlist parsing.
Updated unit tests.

Change-Id: If4dba07be8b2e8a9e9549d5bed58e552dfb958b7
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-21 05:43:27 +01:00
Lev Zelenskiy
2ebea05283 New playlist parsers to support network playlists.
Added new playlist parsers for M3U and PLS.
Added QNetworkMediaPlaylistProvider.

Change-Id: I4c64018e44b8ae2401d6846a0c3c326d8c2ca5cc
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-21 05:43:20 +01:00
Jonas Rabbe
7517dcca3b Updated IID, services, and controls to use qt-project URL
Instead of com.nokia.qt we should use org.qt-project.qt.
All the identifiers have also been updated to use pure lowercase, and
where used the version numbers have been updated to 5.0.

Change-Id: Ib209327f5205f5a086a5932394504a8a52e1f712
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-20 23:40:08 +01:00
Jonas Rabbe
a8ba6e3c7f Updated plugins to use new plugin architecture
Changed QMediaPluginLoader to use QFactoryLoader instead of QPluginLoader
and used metadata to get keys.
Removed QAudioPluginLoader and changed audio classes to use instead use
QMediaPluginLoader.
The plugins must include the Q_PLUGIN_METADATA macro, and no longer use
the Q_PLUGIN_EXPORT/Q_PLUGIN_EXPORT2 macros.
A json file has been added for each plugin which can contain metadata
which is available to the plugin loader before the plugin is actually
loaded, and is used to read the keys for the plugin, e.g. supported
services.
QFactoryInterface will be deprecated and has been removed from all
plugins.

Change-Id: I035b82f9c9c65717bebf704d560ea8f891df21da
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-20 23:39:45 +01:00
Marius Storm-Olsen
61c09d1614 Compile on Windows
Conversion of WId to HWND requires reinterpret_cast.

Comment out RatingOrganisation for directshow as it is commented out in
the gstreamer plugins too.
(Note that both directshow and gstreamer plugins spell it incorrectly.
It's spelled "RatingOrganization" in qtmedianamespace.h)

Change-Id: I4cbcecfeb62ad795facf498d1c3d84a776d2ca35
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-03-20 01:07:51 +01:00
Dmytro Poplavskiy
3f73ddbc71 Fixed the qml Camera.imageCapture.imageExposed signal connection
Trivial fix.

Change-Id: I522e3186ce9284e3aa0fb84296bc3c1e663e8577
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-03-20 01:07:46 +01:00
Michael Goddard
e9ebbeef72 Make QDeclarativeAudio use QMediaPlayer instead of the controls.
Very minor changes in semantics due to previous differences:
* negative positions are not supported any more (clamped to >= 0)
* setting muted to the same value previously set to the control itself
  won't signal any more.

Change-Id: Iacf4310508d853ae82b63dee28095fce12b6ff28
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-16 06:58:46 +01:00
Michael Goddard
7c0b1da0ed Merge the QDeclarativeMediaBase and QDeclarativeAudio classes.
Since there is only one subclass of base.

Next step is to clean up QDeclarativeAudio

Change-Id: Ibda8c3006efa165b58372a011121f04a39458562
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-16 05:38:11 +01:00
Michael Goddard
1a1ac6b884 Handle more errors from GStreamer.
Corrupted etc files can throw GST_STREAM_ERROR_DECODE and those should
generally stop playback.  So now any error is fatal, not just the
recognised ones.

Change-Id: I7b6dd2a460d94f70c459a313a9d4dc84028f8002
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-16 04:32:50 +01:00
Jonas Rabbe
8e82f57c6a Updated declarative components to use the QML module
Change-Id: I4b49466ba5248683c2285f98ce17bc2c24bba515
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-14 05:55:40 +01:00
Dmytro Poplavskiy
8d63785425 gst video surface sink: start surface with correct handle type
The handle type should match one from the currently used buffer pool.

Change-Id: I33f7856a742299ce0640f331898c3cbe5cfbdf97
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-14 04:47:51 +01:00
Jonas Rabbe
942ff7a3c6 Made QRadioData bind to QRadioTuner to avoid using multiple services
QRadioData has been updated to be a QMediaBindableInterface, and it
will bind to a QRadioTuner instance, i.e. a QMediaObject that provides
a service which implements the QRadioDataControl.
This change is reflected in the declarative implementations of radio
tuner and data. There is a new `radioData` property in the Radio element
which will give access to the declarative RadioData element for the
tuner.
If a RadioData element is created in QML, it will have an anonymous
tuner which communicates with the underlying media service (which is
pretty much the same how the QRadioTuner and QRadioData classes work
previously).
Updated radio tuner and data test cases to use availability control
and extended the mock media service to allow providing a number of
controls rather than just one (needed for testing availability of
all classes extending from or using QMediaObject).

Change-Id: Id41dde66eee529decd828fd2dcdfe4a54c0e81f4
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-03-12 08:21:07 +01:00
Dmytro Poplavskiy
a15b9d3ce8 QCamera capture documentation fixes
Added documentation for camera capture queue behavior.

Change-Id: I4989f94c5de0edb3ac99135dcb3e11d76195a880
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-03-12 07:36:06 +01:00
Lev Zelenskiy
87de0979e5 Added playlist property to QMediaContent
This is a part of changes to QMediaPlayer related to playlist handling.
Updated unit test.

Change-Id: Ic2460dc4d3121788cd5eb08df71e6d45aac032bc
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-12 05:29:56 +01:00
Dmytro Poplavskiy
e2eaa283fb Don't request renderer control if null surface is set as video output.
QCamera and QMediaPlayer are likely to wait for valid
surface to be passed to the renderer control before startup, so after
player->setVideoOutput(nullSurface)
player will not start playback.

If the renderer control was already requested before for valid
surface it should be released when the null surface is assigned.

Change-Id: I3f78f2d82e61fae5f305874874c0ffbc4cb7dc1d
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-12 04:38:44 +01:00
Lev Zelenskiy
10b0063401 Move most of playlist API to private.
Moved objects either not needed to be public or require API review/redesign.

Change-Id: Ibeb8b8c9c9a74bea32191c119fa4daaffde57c17
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-06 07:54:47 +01:00
Michael Goddard
cb39035162 Remove unimplemented BG playback feature.
Prototype that wasn't implemented should be removed for 5.0.

Change-Id: I3b90658ad8dc0b64003a5bb741fc3c93c7d87dff
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-03-05 12:39:54 +01:00
Michael Goddard
34f2494df1 Fix a few memory leaks.
XV Buffer pool was leaking, the sink delegate was leaking, and the
sink wasn't chaining to parent class so GstObject stuff was leaking.

Change-Id: I5d6b6fe59dfb2b3c5367dfde8331e5943167b55d
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-05 10:15:56 +01:00
Michael Goddard
362e443896 Fix some memory leaks.
Adjusted a unit test or two to make leaks easier to find, and then fixed
a few leaks.

Change-Id: I47a20df8de7cac113d34a2015f76a65ab957dedd
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-03-05 03:08:42 +01:00
Michael Goddard
2a8463711c Expose availability from the backend to C++ and QML.
The availabilityError property was static based on the service, but it
can change at run time, so add the plumbing to allow the backend to
report it itself.

Also make sure that both QML and C++ expose the availability.

The radio tuner and data controls previously had properties (but no
signals) for availability - these have been removed.

Change-Id: I9240cf93e2a51b14cd38642f9312ae3c75f05361
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-03-02 09:30:34 +01:00
Casper van Donderen
d1b6bf5fac Remove the usage of deprecated qdoc macros.
QDoc now has support for Doxygen style commands for italics, bold
and list items. This change applies that change in QDoc to the
actual documentation.

Task-number: QTBUG-24578
Change-Id: Iec1c616e0d9a915a31a661916805916e19495dc9
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-03-02 04:02:43 +01:00
Michael Goddard
b33b0d9d1d Expose the audio and video encoding modes through QML as well.
They were missing.

Change-Id: I0bb08c5e4721c27d2dcec818c0ee33f42c8df959
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-29 02:43:08 +01:00
Michael Goddard
5ed255ead6 Don't reset saved playback position if playback resource is denied.
Resource denied and resource lost should be handled differently,
on resource lost the current playback position should be preserved,
while on resource denied player state should be changed to paused
with pending position unchanged.

(from qtmobility, SHA1 4e457432ef0f50cb91a1043f0390427cafcaef0d)

Change-Id: I5ce755409c430598d68ee6a6a90f9d0858ea9da9
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-27 05:26:47 +01:00
Lev Zelenskiy
b56d3e70df Changes to GStreamer backend for audio decoder.
Removed WaitingState.
New signals: finished(), positionChanged(), durationChanged().
New methods: position(), duration().
A parameter removed from read() method.
Unit tests updated.

Change-Id: Ie9d8a2804285c5542e592cce69963adbdf6ebfb8
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-24 06:00:41 +01:00
Lev Zelenskiy
0b8c6115cd Changes to QAudioBuffer and QAudioDecoder (position and duration).
QAudioBuffer:
- Allow to specify startTime in the constructor.
QAudioDecoder:
- Removed WaitingState.
- New signals: finished(), positionChanged(), durationChanged().
- New methods: position(), duration().
- A parameter removed from read() method.

Change-Id: Ifb71502d0756aa306abd0a6bf7873934029952c4
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-24 06:00:38 +01:00
Bradley T. Hughes
ea1037a7d0 Don't use QT_ARCH to detect ARM or OpenGL ES 2 on ARM
Use Q_PROCESSOR_ARM instead of QT_ARCH_ARM.

On maemo6, don't use QT_ARCH==armv6 to conditionally include egl
code. Instead check for opengles2 in QT_CONFIG, which is detected
by the configure script.

Change-Id: Ib3062fbd81c3a3acd318df32c49ad133a5b0d07c
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-22 12:27:04 +01:00
Peter Yard
cd5a8fc69d Docs: fix qml links and standalone build for Multimedia
Change-Id: Ia3f1e49aef203911bb5cf1ee062c9100be213b38
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-22 04:07:09 +01:00
Oswald Buddenhagen
e791e4f0e9 clean up qmake-generated projects
remove assignmets which are defaults or bogus

Change-Id: I7130f22a66b294f92b0ed03749895136d0890a64
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-22 00:17:05 +01:00
Ling Hu
d5f344be4c Update audioengine overview doc & reference doc
Change-Id: If1061b3dc113f4354d741c536d63cbe36e7a65eb
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-21 07:35:41 +01:00
Michael Goddard
2ab74b7ff2 Fix a few audiodecoder things.
Beef up the autotest a little, and check the conversion.

Change-Id: Ifffca118e092eb6c388db50a6eb12810a87aa32a
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-21 07:35:35 +01:00
Michael Goddard
b9e2410a2a Fix QAudioBuffer sampleCount vs. channelCount.
There were some inconsistencies in when the sample count was per channel
or in total.  The docs mention that it is in total, so fix a few cases
where it went wrong and test it.

Change-Id: I55c855911fcde66a218d6cdd327e09ad5406d5a4
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-21 07:35:23 +01:00
Michael Goddard
acbefbf5c6 Add the hasAudio/hasVideo properties from MediaPlayer to Video.
Change-Id: I167184c3622c4fcb0843b17f2ab803b0bbf104fa
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-17 09:16:06 +01:00
Lev Zelenskiy
6468334eb9 GStreamer backend for audio decoder service.
Includes basic integration test.

Change-Id: I4c6d1dbefa1f27e107b3556a3d4da58811eeb122
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-17 07:27:55 +01:00
Lev Zelenskiy
4c07c6330d Added QAudioDecoderControl::sourceChanged signal.
The signal is mentioned in QAudioDecoder but is missing from
QAudioDecoderControl.

Change-Id: I0cd13c53541585098edd02093858501ffb5af1fb
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-17 07:27:51 +01:00
Michael Goddard
696e434129 Add a partial gstreamer based audio decoder service.
Doesn't work yet.

Change-Id: Iebd085d68346cb73af8df59c84e8e52a17de2a52
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-17 07:27:47 +01:00
Michael Goddard
f538a3a8f8 Use a PA function to compare specs instead of memcmp.
Otherwise valgrind complains a lot.  Probably holes in the spec
structure.

Change-Id: I9580a73255820f49c0ac947eed1595a758f19ccd
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-02-17 07:27:42 +01:00
Michael Goddard
c72ad5b190 Add Video_4.qml to the packaging.
Change-Id: I0a6036a979ab00a2885c56450d1db9497b1cff0c
Reviewed-by: Angus Cummings <angus.cummings@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-02-17 07:27:39 +01:00
Lev Zelenskiy
16aef59187 QMediaRecorder: GStreamer backend changes for media probing API.
QGstreamerCaptureSession: Using GStreamer buffer probe
to access media data.

Change-Id: I2ee38e864fbd69fcba9efe90d4dcf138528e00c0
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-16 07:18:27 +01:00
Lev Zelenskiy
0374f0de5e GStreamer backend changes for media probing API.
QGstreamerPlayerSession: Using GStreamer buffer probes
to access media data.

Change-Id: Ibc056283fdedaebba90456cc4e86ab63eae5f5f7
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-16 07:18:16 +01:00
Michael Goddard
4f38f950b0 Fix some compiler warnings.
As it turns out, we had an overloaded virtual from an earlier era,
with the extra parameter never used.  So cleaning that up was a
bonus to remove the compiler warning.

Change-Id: I780287f8a5d2b0a1ec84ec62c88ba50e051f372b
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-14 08:30:40 +01:00
Michael Goddard
bd9484ddca Tweak some more documentation.
A lot of the previous Qt Mobility API methods were still present,
so they are gone now.  Also removed some of the C++ documentation
since it's not public API anyway.
Made a group for camera QML APIs and used that for the list in the
camera overview documentation.

Change-Id: I0864bd2230a42596e951b68d0df1211766c90dfc
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-14 02:48:37 +01:00
Michael Goddard
048e38bd19 Documentation updates for declarative camera elements.
A number of things were missing.

Change-Id: Ic4eb2e88804b519478eeae733cc5f473b717270d
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-13 10:21:44 +01:00
Dmytro Poplavskiy
2d188bdb3f Fixed gst bus helper when qt build without glib support
The bus helper should not be singleton.
Also combined glib and non glib cases.

Change-Id: Ie18a94bfdb5413a92a5c4ff4283527360737d52d
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-10 08:02:07 +01:00
Lev Zelenskiy
32b68f17f5 Changes to media probing API.
Added flush signals.

Change-Id: I9c124317e843c9b9011e69c44649ae9a4e974161
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-10 00:57:47 +01:00
Dmytro Poplavskiy
7b3d3ae453 Added location specific metadata keys.
Tags names and meaning matches the exif specification,
except of latitude and longitude following Qt Location format.

Change-Id: I2acc0194f129ccc737b0fd00ca4ebfb6b62ebdca
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-09 05:31:28 +01:00
Michael Goddard
db781f29e0 Add some recent things to the overview docs.
Also clean up a few other doc related bits and pieces.

Change-Id: I56714e1811e38a7225131c1d141430b49f5f509c
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-09 01:33:18 +01:00