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>
Trying to put more common use cases earlier in the
list of implementation details.
Change-Id: I11195d5d2f7846dec3342d43fe3917fb13374daa
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
This allows to specify more advanced and system/codec specific settings
Change-Id: Ia0a2e94eaf56df285a219018e0beab895a2e7c2a
Reviewed-by: Ling Hu <ling.hu@nokia.com>
The frame can be released as soon as it pushed to video node.
Change-Id: Ib2621cc2a001629e722bf15b6e1ca09323170870
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
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>
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>
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>
Added missing connection to QCamera::error() signal
Added Camera.errorCode property
Change-Id: Ie0dd71d760b4b5b79b2aefaba97bc383ef2a9750
Reviewed-by: Ling Hu <ling.hu@nokia.com>
- Decrease timer period to 10ms;
- Set PulseAudio buffer size if specified by the user;
- Set PulseAudio buffer size to 40ms if not specified;
- Always request 1 chunk of data at a time in pull mode;
Change-Id: If95c097c67c3342f733bde9e699518741d7ef991
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
For rtsp streams duration information might not be available
until playback starts.
Change-Id: Id8829408a4bd2c0fc6a89f2d059d23a5a95d940e
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Add a key which is mapped against the QGstreamerMetaDataKeyLookup,
not the original Gstreamer key.
Change-Id: I2e20b102e97b9a3a7909ff925f195cd0bdff1775
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Forcing accurate seeking may be very slow for some files,
it's not intended to be used with media players.
Change-Id: I9fe759f6effa447a800aeea321cc46617c64866f
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Mithra Pattison <mithra.pattison@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
"console" is CONFIG, not QT.
also, it doesn't look too convincing if an example uses private headers
...
Change-Id: I5bc128c6268901c9842f8b842d6344bd32fc7d1e
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
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>
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>
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>
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>
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>
Use QSample::isCached instead of relying on pointers.
Also added a test for loading an invalid file.
Change-Id: I9f4f1e8c3dc3cdb4a88a756cc6cad85e68c3a1b6
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
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>
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>
So there's a consistent picture of the stream availability.
Change-Id: Id7ea166353c0151fcc11105a1e233e9fe8df9cc6
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
- setting the source while loading, and while playing;
- supported mimetypes;
- loading corrupt wave files;
Change-Id: Iff27921aaf3a67bcf88807b2a5656deb8cf2d77e
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
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>
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>
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>