Commit Graph

52 Commits

Author SHA1 Message Date
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
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
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
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
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
d5042c1ec7 Use QTESTFINDDATA to FIND TEST DATA.
Change-Id: I5fd222e562045085b3d08e19c6544f674e9429d4
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-17 07:27:44 +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
Jason McDonald
0d74c7193a Remove duplicates definitions of QTRY_VERIFY and QTRY_COMPARE.
These definitions were already ignored due to #ifndef directives
surrounding them, so presumably the differences in timeout values
between these definitions and those in testlib are acceptable.

Change-Id: Ib860fc1ed27ef0690e619ffeed516f7417ae4cd0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-13 06:28:20 +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
Michael Goddard
e241932c97 Remove some more QTest::qWait(10) calls.
Since it seems to have changed slightly recently.  Just use
QTRY_COMPARE instead.

Change-Id: I802c2e26acf5418bb5904fadd2a978a44fd9eb01
Reviewed-by: Jonas Rabbe <jonas.rabbe@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
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
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
Dmytro Poplavskiy
fd3a3a7292 Added metaDataChanged(key,value) signal to metadata controls.
It may be more efficient and convenient for application to use this
signal instead of metaDataChanged().

metaDataChanged() signal is emitted for compatibility,
backends should emit both signals.

Signal added QMetadataReader/WritterControl,
QMediaObject and QMediaRecorder.

Change-Id: I5ca34a40e64b22034e6fde8cd7f9735cc3f72c68
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-06 05:35:11 +01:00
Dmytro Poplavskiy
fb73a56574 Made camera unit tests more stable
Replaced qWait() with QTRY_COMPARE()

Change-Id: I951bd8ca1eaaf8d0fd7308a90f82afcdb0475819
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-06 05:35:06 +01:00
Michael Goddard
78ffd1bc18 Remove QMediaImageViewer (SC break).
This class has turned out to be not very useful at this point in time.

Change-Id: Ic07132bdcd01a912a6dd1160c867979fd1307b6a
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-02-03 03:21:43 +01:00
Dmytro Poplavskiy
d292f4a7d3 Changed QCameraFocus::focusMode type to QFlags based FocusModes
It was intended to be QFlags based from the start.

Change-Id: I0919b3440eb18e84fc596fb894f18a53e5ff1da0
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-02 03:34:13 +01:00
Dmytro Poplavskiy
6a88794db4 QCameraImageProcessingControl API fixes
Moved white balance preset from the separate methods to
QCameraImageProcessingControl::ProcessingParameter;

Separated absolute contrast/saturation/sharpening/denoising
settings with adjustments to backend decided values,
with QCameraImageProcessing using adjustments versions.

Changed type of parameters from int to qreal
with [0..1] range for absolute values and [-1..1] for adjustments.

Change-Id: I85c8781c046be6dd45bcf626c25908e1ce5f6bcb
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-02 02:37:33 +01:00
Dmytro Poplavskiy
ba37f73d44 Added QMediaRecorder::actualLocation property
To report the actual location file was written.

Change-Id: Ibb56a720a258a1e5cedceaf0f9bcea73fb93bc96
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-01 08:10:33 +01:00
Dmytro Poplavskiy
a22a0195f1 Split QMediaRecorder::setEncodingSettings to separate setters.
It's easier to change only the necessary part of encoding settings.
The settings are applied during the next event loop or before recording
starts.

Change-Id: Ia2b5c93826a302212aa7f79a0c75e4cbaaf1dd7a
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-01 08:10:20 +01:00
Jason McDonald
5e801e2793 Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.

Change-Id: I20e5215108c6ebd5f8474fed5c3665118e4791e6
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 07:08:05 +01:00
Dmytro Poplavskiy
155c48b97e Moved zoom related properties out of QCameraFocusControl
Change-Id: I16f9b80ebbacc0b325530e81c291dc030763b65e
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-01-27 08:26:47 +01:00
Michael Goddard
bad94a5329 Add a rendered and content rectangle properties to VideoOutput QML.
So you can align controls with an edge of the rendered area.  There's
also some convenience functions for mapping source to and from
destination coordinates. Also tweaked the updateGeometry function to
bail out if no input parameters have changed, rather than doing some
more boring maths.

Added a unit test for a lot of the class, too.

Change-Id: I943bb45e4e56356247d5d6deb5d446222edcb7ca
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-27 07:35:06 +01:00
Dmytro Poplavskiy
2db9b4b1c8 QCameraExposure API refactoring
QCameraExposureControl:
 Separated requested from actual exposure values.
 Removed ParameterFlags, it's confusing and seldom used.
 Moved ExposureMode and MeteringMode to parameters.

QCameraExposure:
 Added requestedAperture/ShutterSpeed/Iso getters

Change-Id: I408586d85e6c9de0c8a711c32b3c90ea46052270
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-01-25 06:14:59 +01:00
Dmytro Poplavskiy
a78a95ccd4 Removed QMediaServiceProvider parameter from media objects constructors.
QMediaServiceProvider should be removed from the public API,
to provide media objects with a custom media service.

A protected QMediaPlayer/QCamera/QRadioTuner/etc constructor
with QMediaService* parameter is a cleaner and more
flexible solution.

Change-Id: I335cce4bbebe0e548c3df338f206e7be7c93c3dd
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-01-24 09:11:07 +01:00
Jason McDonald
6390157fd7 Update obsolete contact address.
Replace Nokia contact email address with Qt Project website.

Change-Id: Ie8cd560b6d9a2c6e552b6be1ad8bc96c80a6535c
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-23 04:21:51 +01:00
Rohan McGovern
0889d69790 Fixed compile.
Removed usage of QBool.

Change-Id: I5e1db9cd3e833a196d73a3493967daa573200c77
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
2012-01-23 01:29:56 +01:00
Dmytro Poplavskiy
8ff5b88b27 Changed metadata keys type from enum to QString.
This allows to combine metaData and extendedMetaData
and simplify metadata handling on both backend and application sides.

Change-Id: I136eedc86c215be3485db101c43069ca7c82101b
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-01-20 06:30:37 +01:00
Dmytro Poplavskiy
b48009ce9e QAudioRecorder: fixed handling the missing inputs control.
Added check for null audioEndpointSelector
control in QAudioRecorder::audioInputs()

Change-Id: I506dcea9e8d3a468319acf2489cd4d803a5c187d
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-01-19 05:13:31 +01:00
Dmytro Poplavskiy
69cef0c24c Replaced QAudioCaptureSource with QAudioRecorder.
QAudioCaptureSource name is confusing, it's essentially an audio
recording service but it's not evident from API.

QAudioRecorder replaces QAudioCaptureSource+QMediaRecorder combination.

Change-Id: I0082d766fc0d1b8d5ecbfc527f13e715add730c8
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-01-19 03:56:45 +01:00
Dmytro Poplavskiy
53d71baed3 Changed QCamera::captureMode property to QFlags
This enables the expression of extra camera modes like
viewfinder only or capture during video recording.

Change-Id: Ie02fdeef5eb7fd6fc2f133c1afb0141e37c22b06
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-01-17 00:58:30 +01:00
Michael Goddard
c8f48841ef Add a metaData property to QVideoFrame.
Change-Id: I6614cd86e3e1e170277bfc751222b5b42cb657eb
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-13 07:54:19 +01:00
Jason McDonald
0dca769d5a Update year in Nokia copyright headers.
Update headers from before 2011 that were missed in the previous commit.

Change-Id: Ib0fd91a39ffc57117fe01280e34519c3f914fac0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-12 01:08:31 +01:00
Michael Goddard
f7bfcdfa28 Remove widgets config test.
Since it's not guaranteed that other Qt modules will be built by the
time qmake is run (and config.tests are created) we can't rely on
compilation.  Just check the module.pri variable for widgets instead.

Change-Id: I352cf6427b748b89b69ec17588ce0dd83065090f
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-01-11 01:00:42 +01:00
Michael Goddard
6b67a11032 Add the spot for spot metering mode.
Not yet fully documented in QML - needs a bit of an overhaul first.

Change-Id: Ic11684858fb872d0b4dcedf60b390571371db252
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-06 07:26:59 +01:00
Michael Goddard
c97f5f8c2e Properly handle the case where QtWidgets is not available.
It does use a config test for now, just to make it clearer.  The Mac
backend currently requires widgets, but most of the others should work
without it (just not supporting QVideoWidget/WindowControl).

The QVideoDeviceControl interface was modified to remove the QIcon
usage - it was never implemented.

Unfortunately even the QML examples need widgets for the wrapper
application, and will need to be ported to QtGui based wrapper.

Change-Id: I8a55ad5cf09ab51749510bf16f49de0bd3f0bcdb
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-01-06 05:26:01 +01:00
Jason McDonald
bc7d964a05 Update copyright year in license headers.
Change-Id: Ib82c1be5548443ef1f5e97b3d5641a2f55d212af
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-06 01:43:40 +01:00
Michael Goddard
502d3c8eb3 Restructure the source code a little.
Change-Id: I995b0fb33bdda7f01bf6266c1c50a1b17eba6760
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-01-05 01:13:44 +01:00
Michael Goddard
45a3823631 Initialize the mock player state variables.
So valgrind is less grumpy.

Change-Id: I3219fd1eaa2296bc6e158876137e0b79c4d8b714
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-04 03:43:22 +01:00
Michael Goddard
f7fdfbe7de Remove a random instantiation of a backend.
Not appropriate for a unit test.

Change-Id: I7b05bb8aa067382b34e30d0602809c9fe56b27ef
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-01-04 03:43:20 +01:00
Michael Goddard
d9dc920393 Remove some test functions that are actually integration tests.
And they're already in the qcamerabackend test.

Change-Id: If3edba9035380372a2e8d46efe1cf41e91ce5f09
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-04 03:43:17 +01:00
Jason McDonald
0811215f40 Remove duplicates of QTRY_VERIFY and QTRY_COMPARE.
These macros are now provided by testlib via the QtTest/QtTest header.

Change-Id: I6b499395888268aab315d63404e2b0eed8688615
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-12-06 08:40:25 +01:00
Jason McDonald
3171081d43 Cleanup multimedia unit tests.
Use QTEST_MAIN or QTEST_GUILESS_MAIN instead of equivalent custom main()
functions.  Also collapse each test into a single source file, in line
with most other autotests.

Change-Id: I38c7b6a9eb0ff1c9b8ac44de7d5f40d6ac6c46ea
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2011-12-05 02:32:37 +01:00
Dmytro Poplavskiy
3319639a6f Allow nested read only maps of QVideoFrame.
It's useful when video frame is accessed from multiple places
like display and encoding.

Change-Id: I8af175c780783216d8b7717cdf0744ad9bc95348
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2011-11-28 11:56:42 +01:00
Michael Goddard
9bb50446e3 QAudioDeviceInfo is actually an integration test.
It should be separated at some point.

Change-Id: I03adde303eed558d52e06f0afa673252e54c2182
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2011-11-24 05:06:44 +01:00
Jonas Rabbe
ace3d92006 Export QMediaPluginLoader so it can be used by libqgsttools_p.
Change-Id: I2af6a68646cccaa92ae8b85b67e2095dcfee485e
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2011-11-18 03:40:27 +01:00