Commit Graph

109 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
Michael Goddard
0d9a5cc5b3 Fix some warnings.
Change-Id: I2ea7f6f016d34490a41e4c9449cbc92bd040de49
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-02-06 06:32:03 +01:00
Ling Hu
809bbc35c6 Add AudioEngine with new implementation
Change-Id: I5eebe662ecbce9814ed3e763db56df9be737d11f
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-06 05:35:28 +01:00
Jonas Rabbe
262f397e3e Changed plugin loader to try unloading plugin if unused
Deleting the root component can delete plugins already
used elsewhere in the application or library.

Change-Id: Ibd0afb61cf0e118eb13f9782252c1fec554ea901
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-02-06 05:35:22 +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
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
Jonas Rabbe
9d3102efe2 Added antennaConnected property to QRadioTuner and radio qml element
Change-Id: I5af8487277e0444629c710c6a0a4e890a8d35c6f
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-01-30 21:32:18 +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
817fb006c7 Add a viewfinder resolution control for camera.
For attempting to set the resolution.

Change-Id: I9f3b189b90fee95bf6430e9a74a6599ebcc38697
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-27 07:35:12 +01:00
Michael Goddard
3b00730eca Add a volume (gain) property to QAudioInput.
Only implemented for PulseAudio so far, but the API does explain that
it's optional.

Change-Id: I4543a1c81d810fe92bb08f1ed13f3a3534a371e4
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-01-25 07:18:48 +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
Michael Goddard
a9d78fbec9 Fix some static analysis defects.
A few silly errors, a few unlikely errors, a few changes that should
not have resulted in a problem but makes the code clearer.

Change-Id: Id2c82e9317d53822e4da13c94dec9595ea33b07a
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-25 06:14:56 +01:00
Michael Goddard
45659bd903 Add a feedback control for Camera.
To control capture sounds etc.

Change-Id: I4db63587be9c74f78c93081d9d46477e34f4a042
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-25 06:14:54 +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
Michael Goddard
01e7cb9950 Implement QAudioDeviceInfo operator==/!=
Compares some of the useful parts, but perhaps should be made more
tolerant.

Also refactored the auto test to properly skip if there are no
(output) devices, rather than manually skip.

Task-number: QTBUG-13723
Change-Id: I3b83f87a440a83f4237fa119a23009bc99e7626a
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-23 07:30:16 +01:00