| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Change-Id: Ic43abb034fa0a65b86a6e3511d29b8231ced5ec2
|
| |
| |
| |
| |
| |
| |
| |
| | |
The class DSVideoOutputControl doesn't exist anymore, and the
member is not used anywhere.
Change-Id: I9458822501b4669e5796b4dff0b187242134795c
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I6e207b49917f0d3ab1ec39b067138eefd6581a49
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes static linking issue with the plugin.
Task-number: QTBUG-56966
Change-Id: Ie5803b048970a436f017251c0afd375fce11b2fb
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|\ \
| | |
| | |
| | | |
Change-Id: I6690c4161c57734ad03ee3e03311a3e62f181e89
|
| |\ \
| | | |
| | | |
| | | | |
Change-Id: I72c166fd81e43c5a2a1b17a6e46e12d6c7389fc2
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This way it can be used in a service
Task-number: QTBUG-54506
Change-Id: I2d75b69dfbf7b345322f7625baf544af2af200c5
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\ \ \ \
| |_|/ /
|/| | /
| | |/
| |/| |
Change-Id: Ib038c5e3ebb48c0e46569a35d530fa5ceaf06a32
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The WMF plugin can now be built without the media player service. That
enables the audio decode service even when DirectShow is used as media
player backend.
The default configuration on Windows is now:
Camera, MediaPlayer -> DirectShow
AudioDecode -> WMF
Change-Id: Ic6f3c85ed849e0c603719cfb03794e6abd2d52fa
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We were using Windows' waveOutSetVolume() function to set the volume
on an audio stream. That function applies the volume on the sound
device and not on a particular stream, meaning all QAudioOutputs and
QSoundEffects were sharing the same volume. All Qt audio streams are
supposed to have their volume controllable separately; in order to
respect that, we now apply the volume ourselves on the data before
writing it to the device.
Task-number: QTBUG-43765
Task-number: QTBUG-48049
Change-Id: I407588ca40cf4216454431fe3e6ce4d8740f391d
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I00b8444e00cbf3dc0d4a7c2ff8b83e217a8966f5
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
PLUGIN_DISABLE_MMAP has been deprecated since 6.6.0 and it was recently
removed from 7.0.0. PLUGIN_MMAP is favored as of 6.6.0. The DISABLE
in the value name is unnecessary because the value is only used to call
a function whose name already indicates that's how it'll be used.
Change-Id: Ie714f0fe8e874bbd1c7d8ee998f5a65f38f24fd2
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This makes sure all mediaStatus changes are emitted, even when some
action is done on the media player as a result of a state change.
Task-number: QTBUG-49578
Change-Id: I89594da2c2efc71103a7aa64f598eea4097425f6
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-56134
Change-Id: I9c8799a96ff08f2657e4879dfbe14de3bfe3d25f
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This makes sure all mediaStatus changes are emitted, even when some
action is done on the media player as a result of a state change.
Task-number: QTBUG-49578
Change-Id: I60153cd8e1d665797a25549ab81afcfb553ce2cc
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
tests/auto/integration/qaudiooutput/tst_qaudiooutput.cpp
Change-Id: I4a30fc030c25e7b8da3eb9f386c4a5fa468df141
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Correctly emit metaDataAvailableChanged and metaDataChanged signals.
Task-number: QTBUG-46368
Change-Id: Ic79acd519b47f4d864fa335c8f75758fe9185c39
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\| |
| |/
|/|
| | |
Change-Id: I5bce2843ac62bb97efc1ccaaa9c671c4adf10640
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Don't create the camera service when the camerabin plugin is not
available on the system and print a warning.
Task-number: QTBUG-50775
Change-Id: I56c7e6297bebe4b90596cb3c0323f1d38231bceb
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some asynchronous operations return a pa_operation pointer, which can
be null if the operation fails. In some cases we were not checking that
the returned object was non null, leading to some asserts being raised
in pa_operation_unref.
Change-Id: Iff1cc67b7f79b758fa81d79e658debb1d737b29f
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I27d68b69f2ad15e930b6adab5b2ff583f4642fac
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Map MEDIASUBTYPE_MJPG to QVideoFrame::Format_Jpeg, which makes sure
that cameras that only support MJPEG are configured properly.
Task-number: QTBUG-55359
Change-Id: I732c56afc51109aba0231c8537f795e8d276c194
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-55630
Change-Id: I2f5defd78fbdd57e6121dde0287b615f7db8848b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It is expected from the user side that the QIODevice passed to the audio
input/output is handled in the very same thread it has been created in.
Previously we used the worker thread for it. Instead, schedule handling
a buffer to the GUI thread and move on.
This also helps simplifying many of the emits, as they happen in the
same thread as the target device.
Task-number: QTBUG-55894
Change-Id: I552a7a41562dccbaae5681e3c416267165720d30
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I639d42e78a2b85e939c9f8e9dd5da70cdc058857
|
| |
| |
| |
| |
| |
| |
| | |
This fixes the remaining auto tests that were failing.
Change-Id: I3b31263e7912422407cb98b4bf2db7080bcfc1a8
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The IO device was leaking in push mode, as a new one was created each
time start was called.
Change-Id: I78bb45e9e4e801772e88104b11d7baedc9e91ba8
Reviewed-by: Michael Dippold <michael.dippold@us.thalesgroup.com>
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I4a9906d2d5aa1eaf8e67773f79ca217150a53ce5
Reviewed-by: Michael Dippold <michael.dippold@us.thalesgroup.com>
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Some of the state variables were not reset correctly.
Change-Id: I22113072320dd1812529c598cda1a5f6cc8c780b
Reviewed-by: Michael Dippold <michael.dippold@us.thalesgroup.com>
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This functionality was removed in d44a327da4a956f62cc0d51,
but is still needed, as we need to negotiate the media type
with the input pin; even if we limit the scope to streaming
types.
Task-number: QTBUG-55264
Change-Id: I7cc02c5ea17cca9912c29c40813314b04b91bd18
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When start is called, the buffer is always filled starting from index 0
without regard to m_nexBuffer. m_nextBuffer could be set to 1 from the
previous playback which causes the second buffer to be filled first, which
is now the currently playing buffer. This is causing an audible hiccup
right after starting in cases where m_nextBuffer starts at 1.
Change-Id: Ia0d73638350d5258a51943d7a1c7cd6f22d068ee
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Using 'self' in a block maintains a strong reference to it, the previous
code would never release that reference and therefore leak the
AVFMediaPlayerSessionObserver object when the session was deleted.
Captured variables used in the relevant block are now marked with
'__block' to make sure no strong references are maintained.
We now also make sure the session still exist when that callback block
is called.
Change-Id: I847b524d8692559fe5884517abb5b9cc7696b4fd
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
NSView/UIView were only forward declared here which led to warnings when
calling methods on instances of them.
Change-Id: Ic2b391bb0ed8d45306dc16e2a807ce7fcae5015e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I3204cdf695f4b47730a88a7c41fc7a6de967b161
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes sure all mediaStatus changes are emitted, even when some
action is done on the media player as a result of a state change.
Also, when both mediaStatus and state are changed at the same time,
make sure both variables are updated before sending the
corresponding signals.
Task-number: QTBUG-49578
Change-Id: I8eed6692503bba1540070f6435b7ea1f5e25c023
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When both state and mediaStatus are updated at the same time, make sure
both variables are updated before emitting the corresponding signals.
Also, always emit mediaStatusChanged() signals before stateChanged() to
make sure mediaStatus changes are not cancelled by some action
resulting from a state change.
Task-number: QTBUG-49578
Change-Id: I0caea8261120595227834dbac7fed286d125bcab
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Simplify the ownership of the OpenGL resources and make it simpler
to release individual resources as needed. Previously we would
reset the texture handle without releasing it back to the system, making
us leak texture each time the video output was reset.
Also, be consistent with the type used for the texture handle.
Task-number: QTBUG-54340
Change-Id: Ic3b3c7322677a909e51aa5983fa99ccf8b290302
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On some devices and on the emulator, the preview callback must be
cleared before taking a picture to avoid a camera server freeze.
Task-number: QTBUG-54709
Change-Id: I9e4ad417fa08cddea7edfd232f5b5df40ada59ee
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The preview must be restarted after taking a picture but were doing
that only when the capture succeeded. We now also do it when it fails.
Change-Id: I8bfff06a811d9333220050e5e81561438f5a3786
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ia068b0fcc30412755639412ec03e49c740b66bed
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The size in the data chunk was missing 8 bytes.
Task-number: QTBUG-54710
Change-Id: I0530ea9d2420dd90d196993e1678003697c0ebaa
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When capturing two pictures in a row, the second capture would not
trigger the imageCaptured() signal. The reason is that capturing a
picture restarts the preview when done, which in turns clears the
cached last preview frame. The second fetchLastPreviewFrame() would
therefore not do anything.
In this situation, we now retry fetching the frame as soon as a new
one arrives (rather than bailing out).
Task-number: QTBUG-48975
Change-Id: Id5476f37641c04b0edd92bddd40711d5125887f0
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Don't emit signals while mutexes are locked.
Task-number: QTBUG-41573
Change-Id: I287b031a579cbec1cd178501df4426ceff9e9142
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Reviewed-by: Ruslan Vorobei <zvorobei@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replaced
- header.LGPL3 with header.LGPL
- header.LGPL21 with header.LGPL
Change-Id: If11396da6ff12e9122281c17fc4354b05a554ee5
Reviewed-by: Ruslan Baratov <ruslan_baratov@yahoo.com>
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Ic29cb09048003f18ff86d4546cd547be715eaec8
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For some cameras difference between preview aspect rate and capture
aspect rate is more than 0.01. Therefore it is better to use preview size
with closest aspect rate.
Task-number: QTBUG-50813
Change-Id: I1284c8ec2be1aa160a656e396a52960fa06aaa56
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Apple recommends starting/setting up a session (AVCaptureSession) on a
special queue and in the past we did this on the writer's queue.
Unfortunately, we also can access the same session from a different thread
and this results in race conditions and different weird crashes, for example,
we're calling start/stopRunning from the writer's queue, while the session
is being configured (in between beginConfiguration/commitConfiguration
on the recorder control's thread). So we have to limit access to the session
by the control's thread.
Apple docs say we have to ensure all appendSampleBuffer calls done
_before_ finishWriting. We ensure this by dispatching_sync an
empty block on the writer's queue after store-release of m_state.
We also do the same with video queue to ensure it does not try to
access viewfinder's data after stop/abort executed.
All these changes also make lock/mutex unneeded.
Task-number: QTBUG-54890
Change-Id: I38e86c879b6b62306bdfbeade65405d6ac3be9f3
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
CameraBinV4LImageProcessing::setParameter was leaking the resource fd
in some cases in the switch using return instead of break.
Change-Id: Ie56eaf4cf1d1b7531094c321f49a818632985628
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since Android 5.0 Google introduce a nasty bug[1] which calls
JNI_OnLoad more than once.
Basically every time when a library is loaded JNI_OnLoad is
called if found, but it calls *again* JNI_OnLoad of its .so
dependencies!
[1] Workaround https://code.google.com/p/android/issues/detail?id=215069
Change-Id: I81b4a94beedaad299267ac6deab2f9c3a1693a62
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1. No need in two different atomics (m_stopped/m_aborted) - the single
one 'm_state' with states (Idle/Active/Aborted) should be enough.
2. QAtomicInt::load/store actually have relaxed memory ordering semantics,
(not like std::atomic with sequential ordering as the default one)
which is not always appropriate - replace with loadAquire/storeRelease instead.
Change-Id: I4ce8c9ca7556de3d2c7e369b8a05276b2870460c
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|