Commit Graph

337 Commits

Author SHA1 Message Date
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
Jonas Rabbe
c77e442b99 Updated documentation for the QAudioRecorder class
Change-Id: I93ab03e9a386578f0b43ba0e966b1570163ff056
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-09 01:30:37 +01:00
Michael Goddard
87ec3461c1 Add the audio decoder variant of QMediaPlayer.
Rather than the probe based way of doing it.  Initially private.

Change-Id: I30005f8da22f6451cb9de8eb3f0e193838d48c93
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-08 11:36:08 +01:00
Jonas Rabbe
272be4554f Fixed possible dependency problem in the qmake structure
If gstreamer is present, then the gstreamer plugin (and
hence the plugins sub directory) should depend on the
gst tools library.

Change-Id: I6012df02d14731107fc0656089aa27ae61f0ef71
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-08 05:59:34 +01:00
Jonas Rabbe
6de7c31040 Added loading of video node factories from plugins
This change will allow us to add new video node factories that
can be loaded dynamically at runtime.

The previous video node factories, I420 and RGB have been kept
as static parts of the Qt Multimedia imports, but can be moved
to plugins at a later date.

For plugins to be able to find and use QSGVideoNode, the class
has to be exported.

Change-Id: Idbead9a8ad33619cebe90fcec92eb29cf52ae9bd
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-08 04:38:16 +01:00
Angus Cummings
a94c8a1ac2 API changes to QML element MediaPlayer aka Audio
Changed Video.qml for new API
Removed lowercase enum copies, replaced with calling
	parent (VideoOutput, MediaPlayer) enums
Removed properties playing, paused
Removed signals started, resumed
Added readonly property playbackState
Added signal playing
Added autoPlay property
Fixed unit tests for new API

Added backwards compatibility for QtMultimedia 4

Change-Id: I27c91cd46d91402b8c4c42bb7d4961ad67909aeb
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-08 03:48:51 +01:00
Michael Goddard
66b86ba581 Add exports for probe classes.
Oops.

Change-Id: I2273ac6789d2eb1042aa1d4b6ec64dac1904ce55
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-07 13:22:20 +01:00
Dmytro Poplavskiy
d0595cbca4 Updated declarative camera image processing with C++ API changes
Changed ranges and meaning of image adjustments parameters.

Change-Id: I1710bfabc4f216c83df7983a871bffb474cfbcc2
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-07 09:04:23 +01:00
Dmytro Poplavskiy
96aa2e9af7 Updated declarative camera recorder with C++ API changes.
Added key,value parameters to metadataChanged() signal;
Added a separate actualLocation property to desribe the path of
recorded file. It may be different from outputLocation when default
location is used.

Change-Id: I5a4b77833b6458a19ed7e1dcf7e53fc7400cdf21
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-07 06:48:32 +01:00
Dmytro Poplavskiy
00d1e2f65e Expose capture request id in the declarative camera.
It's useful to associate imageCaptured/Saved signals data with
capture requests.

Change-Id: I3e98c4a194403bd338a1b5313d8736b4baf79961
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-07 05:01:24 +01:00
Michael Goddard
8b1f11b370 Add some media probing API.
Change-Id: Ib83918f99b699ac3fbc7ede82a392d00d4c18005
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-07 05:01:24 +01:00
Michael Goddard
3c4dcf00bb Add a QAudioBuffer class.
Prereq for probing or decoding.  The abstract API probably needs
to change.

Change-Id: Ie0bf796c1f581f34bbc0a8af2dffc387c513a330
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-06 23:18:56 +01:00
Dmytro Poplavskiy
ee39683e27 Moved QMediaServiceProvider to private header.
It's not intended to be used by applications.

Change-Id: I2acc26180ebb5c2419438169827f39aaf4578389
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-06 13:57:42 +01:00
Lev Zelenskiy
39c96db2b3 Changes to QMediaPlayer GStreamer backend to allow setPosition before pause
Do not display prerolled frames in stopped state.
Instead store prerolled frame and display it only after switching to
pause or playback state.
Added new unit test with a sample video file to check this functionality.

Change-Id: I3fd159a199b65ca10fdf9843af5675c5ae9dad05
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-06 08:56:34 +01:00
Lev Zelenskiy
7415e4c879 Gst player backend: fixed prerolled frames rendering
Don't use queued render request if it's called from
the object own thread.

Change-Id: I61ac11f5cf68edf82d0681c95123e804869d0647
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-06 08:56:29 +01:00
Michael Goddard
c0fd63d143 Documentation tweaks.
Mostly move widgets classes into the QtMultimediaWidgets module, but
also mark a few mostly internal playlist classes as \internal.  A few other
tweaks.

Change-Id: If0e376410bf2187cafb24f583108c6beb7b910a9
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-06 07:45:05 +01:00
Lev Zelenskiy
51ca5582c2 QMediaPlayer::setPosition: do not check isSeekable and do not bound by duration
To allow setPosition to be called in stopped state we no longer check
if the player is in seekable state and allow position to be greater than
duration.
Unit test has been updated accordingly.

Change-Id: I29447ffe797a7cc3dcc80d20b2527e9eda493ab6
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-06 06:33:47 +01:00