Commit Graph

220 Commits

Author SHA1 Message Date
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
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
Michael Goddard
5ec608b006 Update documentation.
Rewrite the module overview, add video and audio overviews,
and update the camera overview. Tweak the radiooverview
slightly.

Still missing some links for examples and some fleshing out
but hopefully a lot better.

Change-Id: Id6486e20ba4a09c36d7739e327d4f9910ad083a5
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-01-23 02:49:52 +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
Michael Goddard
f050d8fe2b Use US spelling for organization.
Since it seems it was never implemented, don't keep the
legacy spelling.

Change-Id: Idc918548a4ed643ba7da35e97ce08f401e74303f
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-01-19 05:37:51 +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
Michael Goddard
b7fcfd4ea9 More minor doc fixes.
- Missing enums
- Misspelt \fn etc
- Missing QSoundEffect C++ docs
- A few typos etc

Change-Id: I3418e79b5d50a7ab86e54d79676c33d06954bef5
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-01-17 05:19:02 +01:00
Michael Goddard
508ca28196 Fix up a few doc issues
* lingering references to Mobility
* missing group tags on some classes meant they went missing
* put classes into functional groups as well (e.g. audio, camera)
* added some of the qdoc files to OTHER_FILES so they show up in Creator

There are still a lot of warnings since it seems like qdoc is not
processing the controls directory.

Change-Id: I036f8826ae63f8273b3e649cb32c091d964ce830
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-01-17 01:57:58 +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
a6268601c9 Remove antiquated \since lines in docs.
They aren't useful in the case of QtMultimedia{Kit}

Change-Id: If1b0b6625763c85907fb05beb9c440046472ddef
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-01-16 07:32:24 +01:00
Robin Burchell
b228ff95d7 Remove out-of-line uses of qMalloc/qFree/qRealloc.
Per http://codereview.qt-project.org/#change,11562,  we are trying to
remove these in favour of direct allocation,  or (in the case of inline code)
specialised out-of-line wrappers.

Change-Id: If3fb6c4851633bdbb2b2771de0180c668bb01d14
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-15 10:58:20 +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
Michael Goddard
425bc4dc8c Polish the video documentation a bit.
Change-Id: I7f76f710b64379ae6935cd86aed37914a7f85d0b
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-01-13 06:58:12 +01:00
Jonas Rabbe
96eceb5f0a Added overview documentation for the radio
Change-Id: I71b072512db51f23b0aed82545b504f9efc824d0
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-12 07:40:49 +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
24589b341c Improve the QCameraFocus and QCameraImageProcessing documentation.
Also adds documentation for QCameraFocusZone.

Change-Id: I805806e9a683244b0c03553e00bebb41e6767ff1
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-01-11 06:37:07 +01:00
Jonas Rabbe
3d88a055d0 Updated QtMultimedia declarative module to version 5.0
The QtMultimedia module should have version 5.0 to align with
Qt 5 in general. This change updates the version, but keeps
4.0 versions of the elements for compatability purposes.

Documentation and examples has also been updated to reflect
this version change.

Change-Id: Ica10c1a5ecc2c7233192a65e04ff77eb33a77e30
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-01-11 04:11:48 +01:00
Mithra Pattison
13d75ce063 Fix for QSoundEffect crash bug
When multiple QSoundEffect instances play the same wav source file
simultaneously, the system would crash due to some instances not
waiting for the underlying pulse audio stream to complete its
setup logic. QSoundEffect now waits for the stream to attain the
correct state before playing the sound.

Change-Id: Ib5a1e6bc3f1cc314054f9cdc89c10100ad546721
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-01-06 08:42:54 +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
Friedemann Kleint
3910efbda6 QtMultimedia: Fix compiler warnings.
- Fix deprecated QDeclarative includes.
- Comment out unused parameter.
- Remove trailing comma from enumeration value (Clang)

Reviewed-by: Michael Goddard <michael.goddard@nokia.com>

Change-Id: I31d54a12505f4e3a48eb4b7736a48d5dacc2c0d9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-05 08:18:37 +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
Ling Hu
6ee1977d60 add Q_OBJECT to QMediaGaplessPlaybackControl
Change-Id: I010b14f7900bd168012bb876f708397eec4dfa4b
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-01-04 06:46:10 +01:00
Ling Hu
093a3efbf3 Add new gapless playback control interface
Change-Id: If14c20af6da81dd65177102c9b955e3ebd40c722
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-01-04 03:43:32 +01:00
Mithra Pattison
f9ec11a25e Add new implementation of QSound class
Added a re-implementation of QSound, using functionality derived from
QSoundEffect. QSound API remains the same as the original 4.x version.

It offers both a static interface (with auto resource cleanup on sound
completion), as well as an object instance interface for more detailed
control.

Change-Id: I85c00dd88547f8dea9b1e1ef2da31d2f2e28a172
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2011-12-30 05:03:45 +01:00
Michael Goddard
3d7dff4f61 Fix a compiler warning.
Change-Id: Ie53ebaecc14a5bd2baa609b7cae6f0ee59aa0fd2
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2011-12-21 03:56:55 +01:00
Jonas Rabbe
4f3294930a Fix X11 and QPA compilation problems
The X11 buffer pool was using outdated APIs, and as the 'qpa'
configuration value is being removed, it caused the X11 code
to be pulled in, and therefore cause compilation failures.

Change-Id: I5fdaed854c6525716fccca44b5fbd0b850880cb9
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2011-12-13 01:22:28 +01:00
Friedemann Kleint
090e3efaeb QtMultiMedia: Fix warnings about missing return values.
In QDebug operator<< for enumerations.

Change-Id: I52309356f05a9520b7472a673450a224d7fa71d3
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2011-12-06 01:04:50 +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
Toby Tomkins
581564c990 Fixed QtMultimedia core namespace compilation.
Change-Id: Ie276a7766bd26f3e49b2bc9c1a28ec96f1e3e4b0
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2011-11-25 06:52:21 +01:00
Ling Hu
0e021ea4d1 Fix SoundEffect(pulseaudio) crash in qfeedbackmmk auto test
Task-Number: QTBUG-22779

Some pulseaudio callback may happen after SoundEffect was deleted,
thus the userdata(SoundEffect point) we passed previously may
result in potential crash with QMetaObject::invokeMethod to queue some event.

To solve this problem, the release mehtod is added to SoundEffectPrivate,
and instead of calling d->deleteLater in SoundEffect::dtor,
 d->release is called. So SoundEffectPrivate will no when it is going to
be deleted soon rather than handle everything in SoundEffectPrivate::dtor
which may be too late.

class RefObject is also added to be able to track the SoundEffectPrivate
status by pulseaduio callbacks. I thought this could be avoided by checking
the connection state of pulse stream. However, that doesn't work as expected,
stream state remains Ready when checked in callbacks even after disconnect
stream has been called. So RefObject is used instead and its lifecycle is
managed by an internal reference count.

When release is invoked,
m_ref->onDeleted is called first, this will mark SoundEffectPrivate as dead.
and then unloadPulseStream is called.
After those two invocations, we can be asured that:
1. if some pulse callbacks has been called without knowing
 SoundEffectPrivate dead, the queued invocation on SoundEffectPrivate
would be safe, since SoundEffectPrivate::deleteLater would
 be called after them.

2. Since on pulse callbacks would be executed when unloadPulseStream is called,
then at this moment if some pulse callbacks is called again, it would certainly
knows that SoundEffectPrivate is marked as dead and would not queue and
event on SoundEffectPrivate.

Now, the deleteLater can be safely called.

Change-Id: I807f29cddb677d1f4bc078fd306ed0d83d6f7dc4
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2011-11-21 10:01:11 +01:00
Michael Goddard
b279b5e280 If the sample hasn't been loaded, don't try and delete things.
Causes entirely reasonable warnings from QCoreApplication::postEvents,
when calling deleteLater on a null pointer.

Change-Id: I5f1fa526b2d57844b9c0d2e634d434e2f7867bdf
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2011-11-18 05:54:06 +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
Michael Goddard
6ea8d63729 If Pulse isn't ready, don't crash when trying to play.
Change-Id: I996581e4492004f716d44a39fb5f74c26c9f9ac2
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2011-11-17 08:33:24 +01:00
Ling Hu
c814062dff Fix volume change error on mono stream for soundeffect(pulseaudio)
(Cherry-picked from 663df44fc8563c548c26a7ae21927b09664c28f2)

Change-Id: I005071bc1a8b2eae4d0660042fc8986d61804c47
Reviewed-by: Michael Goddard
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2011-11-17 06:47:27 +01:00
Jonas Rabbe
956526a9fb Changed QVideoSurfaceGstSink to take pools from plugins
Change-Id: Iec743efc52513e2000276b9a18d1d9639c270699
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2011-11-14 07:59:19 +01:00
Michael Goddard
8ff4148342 Add qRegisterMetaTypes for the public Q_DECLARE_METATYPEs.
Also turned qtmedianamespace.qdoc into a cpp file so I
could stick the qRegisterMetaTypes into it.

Change-Id: Idd6d3e2f348f1ed45b0a35ce180d023a170e8625
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2011-11-09 01:24:18 +01:00
Jonas Rabbe
0a95ccb8f4 Added qRegisterMetatype for QVideoSurfaceFormat.
Change-Id: I7dbae1dde2f24db89479dcb23ef6fc5e29377f25
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2011-11-08 05:24:04 +01:00