| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I7a3e2f612883a7dc0e4a318f2531706488a2cf3c
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoiding code duplication is a noble goal, but the examples need
to be self-contained. E.g. Qt Creator sometimes does copy the example
(and just the example) to a tmp directory, where navigating out of
the source directory will fail.
Change-Id: I009c3f253fea9bf260f9cd58a58f2541a249d3af
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 8d9ffe8ae68d34b05e6219fd9f1fc5009638e4d6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
We can always assume that the example is built with at least the
current Qt version it is shipped with. Everything else is not
supported.
Change-Id: I1cd58c976f6916de7bc4465741f2820c30d73b33
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 2b206cf3695afe17fb364120ae89587185d16294)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-95731
Change-Id: I07addf322e0b42532a39f2c355f5c631b3cdb411
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 535ba8dfce973ee72fc2a6e5b912cbbf65b283cb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-95170
Change-Id: I8d057e1d578ff27be0fb79f8708cfe58391b4d46
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
(cherry picked from commit 88ab61f05d9964fed012c1a9149cb5af17059c8e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-95655
Change-Id: Ibebc3666241ee0edf0b5907687e581f977fd3e55
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit c1e7e276fab20436c0f94800634f7e84fd9cbe99)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
It seems that application permission API was removed from
QCoreApplication. We should use QtAndroidPrivate instead.
Change-Id: Ia664deb72f15ea35dcec0c1d26d962ef676dce13
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit 507c51185cbee143f951d60b469ac5d7a6ad823c)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
| |
Change-Id: Id2115bc09ba44e0ad993b3a84a57063b8bcd628a
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We regression-test in the CI by building examples with qmake.
This partly reverts commit 7b28765dd0898e0638555e990308dc2fa09b79da.
Fixes: QTBUG-95065
Change-Id: Ib146eeb974d4e94d580597dbaae93378aa5561a9
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 8b5076c297ecd989fd66e7a41404d1c7741740db)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Bring fixes from the dev branch into 6.2. We'll probably
need one final downmerge of dev into 6.2 before moving
over to a regular cherry-picking model.
Change-Id: I47dd493df3379d1ee916dce7be2d48a756bf3668
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Correctly respect the aspectRatioMode when calculating the
render rectangle. This works fine on xvimagesink. The vaapisink
doesn't fully respect it (at least with current AMD drivers), but
that is a bug in the vaapi implementation.
Set the fullscreen flag on the sink when going fullscreen, so that
it can apply any possible optimizations.
Clean up the code dealing with brightness correction etc, as that
is currently not used or supported.
Change-Id: I8e4d005901fa1ee59892d647f9359d8edb96664e
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The external texture can now be sampled directly. The external matrix
from the SurfaceTexture needs some adjustments to be correct for us.
The slow path can now be toggled via a build time define (handy for
testing).
There is an additional performance improvement in the uniform data
update for the video node (no need to create a QByteArray - and so
malloc - on every frame, we can rather write into the provided one).
Also a crash fix for when opening a new video in e.g. the mediaplayer
example. (querying the externalMatrix() from the videobuffer should
be skipped when there is no buffer due to switching video sources)
That said, there may be some other issues left because switching videos
in the mediaplayer example does crash sometimes still.
Change-Id: I6542782f4c6e32e0ad8fa0276bc8baac6dda7cad
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This requires the new support in qsb to replace a shader with
a custom one so that we can have a shader for the external sampler.
It also breaks abstractions a bit, as we now need to pass the
video frame into the method to get the uniform data.
This is because the external sampler shader requires a per frame
transform on the texture coordinates to be used. The code abuses
the colorTransform uniform that is only used for YUV shaders to
pass that transform to the vertex shader.
Change-Id: Ic934d55507356f310f9beb074d7209bf6fcc8fdd
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
They are anyway directly coupled, the additional indirection
doesn't do anything but complicate the code.
Clean up handling of the RHI pointer for the video sink and
properly react to window changes.
Change-Id: Ic3be738b8c822ccb2d1a15f428abfe116d567ed6
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
AVFAudioDecoder uses the audio track's AudioStreamBasicDescription to
specify the format for the decoded audio. However, the bitsPerChannel
field is irrelevant for compressed formats and is always 0, so we can't
use it to determine the decoded audio's sample format from it. Set a
default sample format (Int16) in this case.
Fixes: QTBUG-95360
Change-Id: Ibdf597e177838bd339749fbdc126334707e4ebd9
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The QML examples have QML in the name, and therefore are tagged
with 'qml'. Make sure that the examples using MultimediaWidgets
are also tagged with 'widgets'.
Pick-to: 6.2
Change-Id: I02495f6d08b24e1f84a975d1d7bd9118bf1c4e7a
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It is not obvious why the example did go to quite a length to
make ffpeg a separate dynamic library. Just build it always
as a static library. The code is LGPLv2.1, but that is compatible
with the BSD-3-Clause license of the example.
Also move the actual application out of the sub-app directory
into the top level directory. This is much more intuitive to use.
Pick-to: 6.2
Change-Id: Ib6173ce21dab78d02190fb0b38c90629b41d26cd
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Do not activate camera until it is not set
Change-Id: Ief04826f93bb6c52b82d8f0f764d6af93bb8d1ad
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Fix compilation for error: call to member function 'arg' is ambiguous.
Change-Id: I536a6ddcbf188c6ca84227f709546960cffb17e1
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit contains two fixes:
1. QCameraDevice is set to default since commit:
e045ee08c84fbc6d1c6837e34c30f88c09cd2cdb. That is why check for not
starting up camera (without setting device) need to be removed;
2. After commit 2f018aad29cebe4b4db3f69ff2d5e11f8ba2cad2 there was an
assertion in android cameraSession for starting preview (for not set
video output). Assertion is removed from code. Before testing for camera
start - video output is set;
Change-Id: I9931d49c8388c92f7159b302afe5e1f5e629e764
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
From d90a02dc9b8d69bd8346ff165d3c11e5603bc2be, videoSink is created by
default in QVideoWidget constructor. sizeHint is not empty anymore -
check removed.
Change-Id: I012844fdf2504bba118e9437f11d25a10cb6fe4e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
It seems that paint() method is called faster than waitForPaint().
Additional check for that case was added to test
Change-Id: I81ab3070258878578e4eb5ae849b878ed7ca91a2
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I0ede9b5eb535850336350519e2b4597fc8ec752b
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The iMX8 pipeline is somewhat broken as they send the data over in a
format that can't be handled directly by the sinks (although it's
marked as a supported format). To handle this a special imxvideoconvert_g2d
conversion element is required in the pipeline before the sink.
To make this work, we simply check whether the element is available and in
that case assume that it's required and use it.
Change-Id: I68ee38b56ca21ed7d3d8d8134b4c9b443bf6037d
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add begin/endConfig() methods to QGstPipeline that can be nested if
required. Those methods take care to pause the pipeline before changing
it's layout, and restarting playback afterwards if required.
Ported QGStreamerAudioInput over to use this instead of trying to change
the pipeline without pausing.
Adjust all other places where we do pipeline changes to use the new calls.
Change-Id: Ibe1b6c94a761bcc402c1c16368cc471d3efb2db9
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QGstPipeline can be copied, but the position and rate variables
should be explicitly shared. Move them into the d pointer to
get correct semantics.
Change-Id: I257893e292ad7255d9c7d3796e097fa352952ca4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use the regular 'pause pipeline, do changes, play' mechanism to
manipulate the pipeline instead of doing the change while running.
This mechanism is much more reliable, and we can issue a proper
flush of the pipeline to get immediate audio changes.
Also improve the code that sets the QAudioOutput in the gstreamer
media player so that it can dynamically handle changes there as well.
Change-Id: I38ad302ec8c81417f0d920e26ec2db213093cd9a
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This makes it possible to keep state there, simplifies the API and
makes it possible to add a flush() call there that can be accessed
from outside the QGStreamerMediaPlayer class.
Change-Id: I34bbc2111b72139c9c06132ba2a6bf278e8be07d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After calling setPosition() while being paused, gst_element_query_position()
can return false while the pipeline is still prerolling the new
position. So simply return the last position in that case instead
of 0.
Also moved some methods that are only used on the pipeline from
QGstElement to QGstPipeline so that we can cache the position there
without having to add data to every element.
Fixes: QTBUG-95251
Change-Id: Ice56975fcf7d519f0dd54db75103b97b025cd085
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Set the gstreamer elements into a null state before destroying them.
Change-Id: Ic9a0a1820b377ed887bfbb0fffb9d6ff3500ce53
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Properly determine whether seeking is allowed on the given
source. Add an auto test.
Fixes: QTBUG-95246
Change-Id: I6a81a4690c6f9d53ef1ef9c217a3077fa63c05d0
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The decoder uses the Android NDK Media library. The source
of decoder is set using AMediaExtractor_setDataSourceFd after
retrieving the fileDescriptor. This accepts both file and content
scheme files. The decoder writes a temp file of the output.
Task-number: QTBUG-93462
Change-Id: I3665bf26543654da64baacc1aebd776474fa44f4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Bartlomiej Moskal <bartlomiej.moskal@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When trying to get supported channels and sample rates for input
devices using OpenSL, many error messages are thrown because of
incorrect params provided or because of missing RECORD_AUDIO
permission which is required for that api. Opt out for a list
of default channels and sample rates if the latter permission
is not granted.
Also, get rid of ifdef blocks since this code is used on Android
only.
Pick-to: 6.2
Change-Id: Id4b9922259618b785b3e6cfc3ceae261a789ab98
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update the list of supported decoders/encoders for video/audio/images
on Android according to the official Android docs.
Pick-to: 6.2
Change-Id: I20a566b3e6ec218c7ba16bbd9c4e932b5b899032
Reviewed-by: Bartlomiej Moskal <bartlomiej.moskal@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The current supported sdk version is 23+, so it's not needed to
check for api level to be greater than an older level.
Pick-to: 6.2
Change-Id: I272c7ae4bfaf7b510c735ba3cd8cd82eccbaffac
Reviewed-by: Bartlomiej Moskal <bartlomiej.moskal@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Allow audio{Input,Output}sChanged() to be called for
Bluetooth audio devices.
Pick-to: 6.2
Change-Id: Ib50e01b7e43d639a18156697ba6479232c4ccf24
Reviewed-by: Bartlomiej Moskal <bartlomiej.moskal@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Ensure we don't emit the signal more often than required by moving
some state logic into the platform independent code and fixing the
logic in the gstreamer backend.
Fixes: QTBUG-95317
Change-Id: I9fcf581bf3992763c1874723faa7909cee2162f9
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
From Androrid SDK version 28 we are allow to use setPreferredDevice[1]
For previous Androrid SDK version default audio input device is used.
[1]https://developer.android.com/reference/android/media/MediaRecorder#setPreferredDevice(android.media.AudioDeviceInfo)
Change-Id: I95c96a3bdb9b7980288446814ac42b1fe0fe4f86
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before this change, onCameraOpened() method was never triggered.
That is why supported modes for: focus, exposure and whiteBalance were
not set.
It was missing from the commit:
1955e9f3fb527a8e1a33f51e0a50b7627a1ac8fe, when onCameraOpened method was
moved to qAndroidCameraControl
Later in commits: 424614afde0ca3cb7479296c093689e98a0c6f13 and
0c40d337ae107d5ab2fde5da022c071c64c67e0e, CameraImageProcessing and
CameraExposure was merged to CameraControl. Each time after removing not
needed class, connection to opened signal was removed, but not added
(into CameraControl).
Additionally fix the order for disconnecting signals from cameraSession
Change-Id: Ic12fdb1bd9c91cb6b39d50a77c4f8fef9b242f92
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before commit 8fc76abb75b8a97bb5ef695d4bc8d59c6ef0c0b5,
in QAndroidCameraSession::onCameraPreviewStopped() method, statusChanged
signal was emitted only in StoppingStatus.
It was changed to (always) call setActive(false) - which triggers
QAndroidCameraSession::close() and release camera.
When we start video recording, before updating resolution,
preview need to be stopped. After mentioned change, stopping the preview
will automatically stop recording. That is why only 1 second movies are
recorded (using recorder example).
Change-Id: I6715c52c4a48cc36ea73639555eeebf33134756b
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
CameraSession will be created by default, but not set to captureSession.
That will allow to set Video Sink any time. CameraSession will be set to
captureSession only when it will be needed (when camera device is set).
When camera is cleared and set once again, the same QVideSink will be
reused.
Change-Id: I72035a0d445dc6ecf43f9b2bc206f4b4ffd8f4bf
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I3d567188efcba5567afb487009e60b0c5569d9e6
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is part of the porting documentation structure in Qt 6, and
all modules part of Qt 6 should have such a document. Add skeleton
doc so that the dev team can extend with real content, and to
ensure that automated lists contain correct entries, etc.
Fixes: QTBUG-95378
Pick-to: 6.2
Change-Id: I8230ebd1c8fa6caaa60ba70d71397a941c5dae0f
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I342536e89469a6127d8136b8d6cea563c66518bf
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The public permission API is being postponed until 6.3, for now,
we can use the private API.
Change-Id: Idbcbe06996f8334bd7d5b4cab86132c35fdc0862
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ic26bf9edcc002e58793b220bcd15283de35c9b1f
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It seems that signals: statusChanged and stateChanged were already
removed (8fc76abb75b8a97bb5ef695d4bc8d59c6ef0c0b5 and
af1182b5e29afa0cd69f929d54da224019707214)
In commit 3c59ba2b3ce96f578b2d677ecc1fbf7da0b2e27f Camera locking API
was removed. Timer for onRecalculateTimeOut is not needed anymore.
Change-Id: Ic4cda7c6195bcbd861f6cb1a825a42b331bc23a5
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I5ab3ae3ba9652cb6000e26f5000300d00db488e4
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
| |
| |
| |
| |
| | |
Change-Id: Ia703b4676548f7409e079820b345e2580e76ecbc
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
| |
| |
| |
| |
| | |
Change-Id: Ie6c13c09316f28c651791d49c5b84c5c05ae3b9e
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|