Just uses an integer to represent the degrees rotation from standard.
Only supports multiples of 90 - other rotation can be done with
standard QML.
Change-Id: Id4013169c5d9da473b6e5be94ba341da21c2f2a3
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Don't keep the frame after it was uploaded to texture;
Upload frame data during rendering (in material shader updateState)
instead of updatePaintNode().
Change-Id: Ia6a4063bfa02d4d20f75735649fe4f777cf50494
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Otherwise the pulse client library dislikes having methods called
with a null context.
Change-Id: I96629065b7a0e36e0d10402526cb167e65458e27
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
It's necessary to release video frames during media pipeline shutdown
or reconfiguration.
Change-Id: I386ad4d173b8731f257ec9272ef8c46a27769bd0
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
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>
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>
(Cherry-picked from 663df44fc8563c548c26a7ae21927b09664c28f2)
Change-Id: I005071bc1a8b2eae4d0660042fc8986d61804c47
Reviewed-by: Michael Goddard
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
VideoOutput element checks first for mediaObject property of
source object and if it's not available it checks
for videoSurface property.
It allows to implement video frames generator and connect it
to optimized VideoOutput QML element.
Change-Id: I8ee618cf61b9d9100f25e742c631ea8724c188dc
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Check and cap the write size in pull mode to handle the case
where user returned an invalid write size through QIODevice
Change-Id: Ie0610a63f1d5400fba87f32a99bdc38479e0e7e8
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
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>
At each userFeed, m_bytesAvailable is not updated properly in pullmode,
so the pull data size become irrelevent to the size we can actually write.
This problem is fixed by checking the actual writable size each time
before pulling the data and limit the size of the pulled and written data.
Change-Id: I6f53e6348693ddf4e3c79e90d3c3d0c1ffc713aa
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Leave texture unit 0 active at the end, since the active texture unit
is not restored by SG itself.
Change-Id: I4970a955fea5c9342cc93c1d1b07ffbfb71e5f04
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
The operator=(int) and implicit int cast operators are deprecated
and will be removed.
Change-Id: I5091d705fba45195239c901f210355e09e123faa
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Nearly all of the multimedia metatypes used in the auto tests are
now declared properly, and a large number of the types have debug
operators as well.
Removed the superfluous decls as well.
Change-Id: I42cfe37562db0c71d9811b4577fc326a3326ccc9
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
This was a XXX Qt5 thing for binary compatibility. We could also
now use QObjectPrivate if we wanted to.
Change-Id: I7d95e3adf7b0725e91e1e229646a453863e989ed
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Prepare for removal of the -qpa configure option.
Change-Id: Ibf4be58231d29cd972eb765f32b410e1eb9d7fed
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Except a comment about it in the module overview.
Change-Id: I22d9111d7917d1a3259ee1e525fd52501733454e
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Since we cleanup the decoder itself, it can crash when the stack
unwinds back into the decoder code. Similarly on a network error.
Change-Id: Ice36a3008359565f186406945973747b3134d296
Reviewed-by: Ling Hu <ling.hu@nokia.com>
(cherry picked from commit fb10bcf6cea520e1c43a77b6b88cf01ae9dc74ad)
Previously, we unconditionally ignored any plugins whose names ended
with _debug.dylib. This makes the mediaservice plugins unusable on Mac
if Qt is configured to build plugins as debug-only (which is
incidentally the default).
Change-Id: I5a8981b2251e803fa233b74c968f6eaa452d367c
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Broken by qtbase dfa24768a3243eda68d91f573050bf23f96da2dd.
Change-Id: Ie0d79eaee5c6fedfaacae69800f6aec9190f83db
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Otherwise QIODevice::read will try and allocate whatever junk is
passed in, so a corrupt chunk can result in 1GB+ allocations which
are never actually used.
Change-Id: I1ea4a5c1a5d21b1ee6f7e428105c52c0ee6ca7f7
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Because the Q_WS_* defines were removed, the Quicktime backend
stopped working. Replacing them with Q_OS_* works. Additionally,
the Quicktimer Player Service has to depend on QtWidgets.
Change-Id: I687b352191c38a91edaaf2a687ac13ed118fcf88
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Since we use an explicit backgroundaudio class,
there is no need to wait for other property to determine
the mediaobject type. So it is better to init the mediaobject
at classBegin to prevent being accessed before mediaobject initialized.
Change-Id: Ia55b8b4c1ab70cc0acbf6f49bcb3e20bdb813a88
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
The QML API already was. The C++ API still needs good documentation,
though.
Change-Id: I669f5ec7dd17d616788d71d77dc906acc0c0279f
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Reviewed-by: Ling Hu <ling.hu@nokia.com>
The config test which still exists in QtBase should be removed at a
later date, together with pulseaudio and gstreamer config tests.
Change-Id: I4bea45ab69d1bac10814fc60ecf24dbc859b0f20
Reviewed-on: http://codereview.qt-project.org/6643
Reviewed-by: Ling Hu <ling.hu@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Handle RIFX and corrupted files better. Update the autotest so that it
is run properly (and copies files properly in shadow build). Fix the
gendata script to properly create testdata.
Change-Id: I47b705507bebaef54df2835ec767c6b220c64678
Reviewed-on: http://codereview.qt-project.org/6380
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: derick hawcroft <derick.hawcroft@nokia.com>
Added a few debug operators for some useful enums, and
added tests for them. One or two other features not really
tested.
Change-Id: Idffec6ade1d4e05dbf72f3dc47dfc0d01ddddf8b
Reviewed-on: http://codereview.qt-project.org/6201
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Patch from Sami Nurmenniemi.
Emits searchingChanged(false)
when scanning is aborted because it was initiated too close to
the limits of the frequency range.
Change-Id: I15a1334c8a7058dd8eb413c2742f8f12aed7bed5
Reviewed-on: http://codereview.qt-project.org/5570
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>