Commit Graph

211 Commits

Author SHA1 Message Date
Dmytro Poplavskiy
74383cb40c Added QAbstractVideoBuffer::release virtual method
It's useful when the buffer pool stores QAbstractVideoBuffer
instances instead of underlying system buffers and
allows to avoid reallocation of QAbstractVideoBuffer instances.

The default implementation deletes the buffer,
so this change is source compatible.

Change-Id: I7dadd7dac529748b5eb33e5aa7c2d0578b8b1634
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-07 08:28:08 +02:00
Dmytro Poplavskiy
62749d654d Removed encoding options from Audio/Video encoding controls
They are replaced with encoding options from
QAudio/Video/ImageEncoderSettings.
This also allows to specify options without
requesting controls.

Change-Id: I507e68cdb8cb46325689804d27c6d0561cada50b
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-07 08:28:08 +02:00
Michael Goddard
f53788ae42 A number of documentation fixes.
* Remove references to private QMediaServiceProvider class and point
  new backend writers to irc/mailing lists
* Wrong or missing parameter names
* Fix a few links
* Correct a few property data types
* Various other things to keep qdoc happier

Change-Id: I5c8800d65c00f0783541afef35990bd3918acab7
Reviewed-by: Angus Cummings <angus.cummings@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Daniel Kovacic <daniel.kovacic@nokia.com>
2012-06-07 07:05:57 +02:00
Michael Goddard
a8ec84e3ca Clarify the metadata functionality of QMediaPlayer.
By linking to QMediaObject functions.  Also clean that up a bit so it's
a bit more useful for people looking for higher level functionality.

Change-Id: Ie452122c4d55f88326a7b71c5882dfe38f489791
Reviewed-by: Angus Cummings <angus.cummings@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Daniel Kovacic <daniel.kovacic@nokia.com>
2012-06-07 07:01:42 +02:00
Michael Goddard
32337e5440 QVideoWindowControl moved to QtMultimedia, fix docs.
Change-Id: I870e5997822b60d8fba07e28ff907cbb3fef6036
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
2012-06-07 05:03:31 +02:00
Stephen Kelly
b93032a7df Use QPointer instead of QWeakPointer to track QObjects.
The latter is to be deprecated.

Change-Id: I01998be880feba0819a9bc51f9bec48fd4601789
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-06-07 02:17:22 +02:00
Lars Knoll
487010e579 Remove the last remainders of the old plugin system
Port the last two currently unused plugins (v4l and wmf) over to the new plugin
format.

Fix documentation that still mentioned Q_EXPORT_PLUGIN.

Change-Id: I18200dd792e8973687e92180fc41d11395b35132
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-05 12:44:29 +02:00
Angus Cummings
786ecd937c ensure important docs are built by the automated publisher
this workaround makes sure that qdoc can find the \class
and \namespace declarations.

Change-Id: I950e6fbc10064f438d7f282ff20783acdf20de27
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-06-01 07:25:57 +02:00
Dmytro Poplavskiy
9ce3b81cff Fixed not initialized QVideoFrame mappedCount member
Change-Id: Ic0b915df120222b0bb440698c010f0e83ccce8c3
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-05-30 06:50:18 +02:00
Dmytro Poplavskiy
b51e1bfa66 Replaced camera viewfinder resolution control with settings control
It allows to specify a number of camera fiewfinder parameters
including frame rate, resolution and pixel format.

It also allows to extend the list of parameters without breaking source
or binary compatibility.

Change-Id: Ibea85a968ab7ee7b8d1ae34c7fcbac8f5586f53f
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
2012-05-22 03:42:05 +02:00
Dmytro Poplavskiy
63db99a8ee Added custom parameters to Audio/Video/ImageEncodingSettings
This allows to specify more advanced and system/codec specific settings

Change-Id: Ia0a2e94eaf56df285a219018e0beab895a2e7c2a
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-18 05:28:35 +02:00
Dmytro Poplavskiy
9fb8bdd509 Fixed typo in QCamera::Status documentation
Change-Id: I8ee9db0e91eceaa20a46713370a9cbd03ead6444
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-18 05:28:29 +02:00
Angus Cummings
b96ca81108 Very minor C++ doc changes
Reordering some enum's so values are listed ascending
Replace 'The' with 'the' in some briefs

Change-Id: Ibc5042389687598ddaaf11e72acaa688b85fd4cf
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-16 06:14:30 +02:00
Angus Cummings
9e6d03584a Minor doc fixes for QML
renaming QML element to QML type
removing some \fn tags that were making the docs not build
some rewording
some new signal docs

Change-Id: I9b350dad1780276959aef4105e53b91082a6083e
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-05-16 05:21:25 +02:00
Dmytro Poplavskiy
fdb5c419c4 Gst backend: allow rendering other video buffers than allocated
Moved checking the buffer type to the buffer pool
instead of comparing the buffer type in QVideoSurfaceGstSink.

Some gstreamer elements may push other buffer instance than
provided by sink but with the same data pointer.

Change-Id: Iab3bf4da2d5eeb5d2a9375aa609a89515b067ce3
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-14 08:37:45 +02:00
Dmytro Poplavskiy
25d95a0e63 Added QMediaRecorder::OutOfSpaceError error code
Change-Id: Ib09208a84f83f00992878f881ee2120932779a16
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-14 08:37:24 +02:00
Dmytro Poplavskiy
5a2de6d2fa Declare and register metatypes for media encoder settings classes
Change-Id: Ib3a42409045fe55c7a410b5ec52bd284f3475417
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
2012-05-04 15:19:12 +02:00
Thiago Macieira
b2b92dad82 Change uses of {to,from}Ascii to {to,from}Latin1
This operation should be a no-op anyway, since at this point in time,
the fromAscii and toAscii functions simply call their fromLatin1 and
toLatin1 counterparts.

Task-number: QTBUG-21872
Change-Id: Ic591779a3431999c007fb0ff362c7e25ce54097e
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
2012-05-04 13:36:08 +02:00
Thomas McGuire
025f4d2ee1 Support QVideoWindowControl in the QtQuick Video element.
Change-Id: I953899a3ec92856955d36528057b0d45f9c26394
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-05-03 10:34:10 +02:00
Lev Zelenskiy
c45a5a0b42 Implement QGstreamerVideoRenderer::stopRenderer()
Surface has to be stopped when
QGstreamerVideoRendererInterface::stopRenderer() is called.
This fixes a media player issue when video output is not cleared
when media is set to 0.

Change-Id: Ifdc851797519dcdf95db86e8dcec93b3866c388e
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-05-03 04:10:33 +02:00
Dmytro Poplavskiy
f62213fee8 Fixed typo in QMediaRecorder::Status metatype registration
Change-Id: Id370b272b6c6c992762b1aefecb6cfbc7c916f2a
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-02 07:03:07 +02:00
Dmytro Poplavskiy
b36e2f5209 Replaced QMediaRecorderControl::play/stop/pause with setState
This allows to introduce new states without breaking BC.

Change-Id: I03c064cec92d6745b251a51cfb301e7f01f4b765
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-02 04:59:17 +02:00
Dmytro Poplavskiy
b7935a84d7 Added QMediaRecorder::status property
QMediaRecorder::state property represents the user request and
changed synchronously during record(), pause() or stop() calls.

Recorder status is changed asynchronously
and represents the actual status of media recorder.

This also makes API more consistent with QMediaPlayer and QCamera.

Change-Id: I80b4aaa70bb88e555c492908da8c29d0fc5ed5ea
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-02 03:15:01 +02:00
Dmytro Poplavskiy
af932e8653 Added QCamera::UnloadingStatus and StoppingStatus values.
These statuses are useful when the camera is stopped and/or unloaded
asynchronously. Previously the status was changed to
LoadedStatus or UnloadedStatus immediately,
even while camera was still active.

Change-Id: Id11021a150b0d34791ea631d7a62086cc0727220
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-05-01 02:29:34 +02:00
Friedemann Kleint
4be845d092 QtMultimedia: Fix deprecation warnings.
Use QVariant::canConvert instead qVariantCanConvert.

Change-Id: I3c924a0bb508a451623da250fb9d410cf70a91f0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-30 16:37:07 +02:00
Jonathan Liu
641474ab10 Fix MinGW-w64 compilation
Change-Id: I812b53e822947a9f85d6523722c6a4f9e57e0426
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-04-30 11:04:05 +02:00
Jonas Rabbe
a3b6eabd45 Split gstreamer plugin into smaller plugins providing fewer services
The gstreamer blob has been split into four plugins: audiodecoder,
camerabin, mediacapture, and mediaplayer.
Note: camerabin is still disabled because it is untested camerabin2
implementation.
A new qmake configuration use_gstreamer_camera has been introduced
and is needed for the mediacapture plugin to expose the camera
service. This configuration has been disabled by default.
Shared functionality has been moved to the internal gsttools library.

Change-Id: Ifb2604f440cfa97513d39f5d7978766c88eaec45
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-27 09:22:09 +02:00
Lev Zelenskiy
4d1579d37b QSampleCache: Add a method to check whether a sample is cached.
At the moment there is no way to tell whether a sample
returned by QSampleCache comes from cache.
This functionality is required for a unit test.

Change-Id: Ice23bb39b8e4f0a58b9297b46bb19b9a8c34b53c
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-27 05:05:38 +02:00
Michael Goddard
d6cba78516 Fix a compiler warning.
Change-Id: If82ec145b9076c1418460fa4d59595e0a60e5a0f
Reviewed-by: Jun Zhu <jun.5.zhu@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-04-27 05:05:35 +02:00
Michael Goddard
b2d581b42e Fix a possible stale pointer access if we can't connect to PulseAudio.
We free the mainloop but didn't check validity before calling lock or
unlock.  Also we might need to unlock the main loop before freeing
it in some other error cases.

Change-Id: Iadf1049324cdf37ca9841b82e53e33afdcba8cb2
Reviewed-by: Jun Zhu <jun.5.zhu@nokia.com>
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
2012-04-27 05:05:32 +02:00
Lev Zelenskiy
cd5e90f00a Still need to count usage even when capacity is zero.
When the sample is removed we need to decrease sample cache usage,
even when capacity is set to zero.
Otherwise we're getting wrong usage after capacity is changed.

Change-Id: I38820c0f9441abec3086189698ec5a904e1e9b6f
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-25 04:04:59 +02:00
Lev Zelenskiy
c718043588 Do not try to complete flush operation if stream has changed.
There is a problem when sound effect already has a sound loaded and
we try to load new sound with setSource().
When sampleReady() is called between emptyStream() and emptyComplete()
it unloads the current stream and creates a new stream.
As a result pulse audio crashed in emptyComplete() while calling
pa_operation_unref(pa_stream_cork(
m_pulseStream, 1, stream_cork_callback, m_ref->getRef()))
with the new m_pulseStream.

Change-Id: Idff4fe6037d3f3f116734dc0facabaafa3db14a2
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-04-25 04:03:02 +02:00
Thomas McGuire
7c84225cc8 Move QVideoWindowControl out of widgets.
There is no widget dependency in it, and this enables the QML
Video element to support video overlays later.

Change-Id: I7ebcde350f9595a9f7c319663ff745930535a8a7
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-25 04:02:15 +02:00
Friedemann Kleint
c177d8d69e QtMultimedia: Fix compiler warnings.
Change-Id: Ic0edfa95c03103550d22bfdf88c33fdbd6f41e3c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-04-24 11:48:04 +02:00
Dmytro Poplavskiy
e2f5779d2a gst player: clear the buffer pool when the video sink is stopped
Buffers were kept allocated until the player is destroyed or
next media played.

Change-Id: I8a0c85da3a82ac6883075a1d0674143783c7f010
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-20 08:47:32 +02:00
Lev Zelenskiy
f1c4093f37 Disconnect probe control in case source was destroyed.
Change-Id: Ibc4583af8acf7d28ee2504f246840a26e3a527be
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-20 08:47:10 +02:00
Michael Goddard
e657397f66 Adjust to changed QUrl::isRelative() semantics.
Paths with a leading slash were previously considered relative (with
no scheme) but now they aren't.  So take the opportunity to tweak the
path resolution code

Change-Id: I7b02cb85403ebb151dba274db0c05459ef536f18
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-04-20 07:52:09 +02:00
Michael Goddard
5f7b64346d Expose the audio category information for streams.
QAudioOutput and QSoundEffect now have a category property so that
system volume mixing or processing can be applied.

Initially just pulseaudio supports this but Windows Vista etc should also
work.

Change-Id: I6855b08367e5a055ac7dfcffd644c98bfd7c5a4e
Reviewed-by: Ling Hu <ling.hu@nokia.com>
2012-04-16 10:56:34 +02:00
Angus Cummings
e24f4fed53 expanding unit test for QAudioDecoder
Looking for feedback concerning:
implementation of the change
desired functionality of QAudioDecoder

Changed the behaviour of QAudioDecoder for
more sane error output

Change-Id: I82193a94b6fe1ef4202a4ac7bd95c607e0bee9c6
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-14 06:57:33 +02:00
Michael Goddard
e057fd9e8a Move QAudioDecoder to public.
To get better feedback between alpha & beta.

Change-Id: I3620825fb9c2bb9de69951cf1d583b191d62cb0d
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-04-11 03:32:00 +02:00
Michael Goddard
8484b0ff9c Fix a number of doc errors and warnings.
* Document a few missing classes/functions/methods
* Fix a number of QML snippets that wouldn't work as standalone snippets
* Add files to .pro so they show up in Creator..

Still the mysterious lack of controls dir documentation persists :/

Change-Id: I57162371a4d966e4db5bdb1b71d1baf9c0ca57c3
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-04-11 03:31:52 +02:00
Jonas Rabbe
c532850fd1 Updated a lot of minor fixes to the docs and removed warnings from qdoc
Change-Id: Ib7fd75fb93c038f9e8fa9d71b6ad01fb27b97622
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2012-04-05 03:54:02 +02:00
Ling Hu
6e177b4dce Minor improvements on resource-policy interfaces
Change-Id: I3e9c7c4d1fca90e0fb97b0058e9b5a5e34940025
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-26 09:14:30 +02:00
Thiago Macieira
45bd0d938e Rename the daemon global static to pulseDaemon
There's a daemon() function declared in unistd.h.

Change-Id: I1063e71248a5236a5bb6b8f10804c469c8d1f788
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-03-25 06:29:52 +02:00
Ling Hu
138242fb2d Added resource policy support though internal plugin system
Change-Id: I374be17d49b6a5eed0b1ed94d0b9ca5f9a2caa9b
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-23 09:53:49 +01:00
Angus Cummings
5d6494f248 resolving some warnings in qtmultimedia docs
Change-Id: I9df926f64548a5d53382448ca4eef8d428339aa3
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
2012-03-22 06:47:05 +01:00
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
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
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