| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
critical sections are really unpredictable when it
comes to order of activation. It was possible that
the loop in QWinRTAbstractVideoRendererControl's
syncAndRender blocked its setBlitMode for up to 30
seconds on application start. During this time the
camera screen just stayed black. The whole approach
seems to work a lot better when QMutexes are used.
Task-number: QTBUG-63015
Change-Id: Ib1b0fa1da35fe299896068146254e4cf1d9616fb
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a new frame is ready to be rendered, our gst sink waits until the
frame is actually processed in the GUI thread, but never more than 300
ms. The time limit is there to avoid potential dead locks in specific
situations. Before, if the wait would timeout, the sink would signal
that there was an error rendering the frame, which would in turn put
the pipeline in an error state and would stop processing any further
frame. We now simply skip the frame if the GUI thread is blocked for
too long and signal that everything went fine to the pipeline.
This was already the logic in place for GStreamer 0.10 (see
qvideosurfacegstsink.cpp).
Task-number: QTBUG-60509
Change-Id: I5173a15340c0e2065bb2fb5ca3bc045ac84ba7e1
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
The switch is necessary because Multimedia for QNX 7.0.0 removes
support for PPS based monitoring. PPS itself is deprecated in QNX
7.0.0. QNX 6.6.0 is also switched to mmr_event_t based monitoring
since Multimedia for QNX 6.6.0 also supports that type of monitoring.
[ChangeLog][QNX] Switch to mmr_event_t based monitoring. PPS based
monitoring is not supported by Multimedia for QNX 7.0.0.
Change-Id: Id3ce1d8895e8ce492ecdd49cbe88ef5f0d6b0194
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-63090
Change-Id: I5e9288d0d7d31972b7ba5745819d0b6a962d3191
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Loading OVG is unstable on qemu. That needs to be skipped for
boot2qt tests.
This will conflict when merging to branch 5.10 with commit
c341b2b25697f937280fe3620629ac3d32c19613. Correct version is in
5.10.
Task-number: QTBUG-63079
Change-Id: Ic691beb3dbbfdc64ca31b380ad85d9dadbe08a90
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
| |
Task-number: QTBUG-62715
Change-Id: I6eaa7d8e697de147533090242a95479d6b81463f
|
|
|
|
|
|
|
|
|
|
|
| |
In QAlsaAudioInput::open(), one should check against the available
audio inputs and not the audio outputs.
Regression introduced in 5473621bde2be226f2f3687a80b4bfc93bbbe572.
Task-number: QTBUG-62435
Change-Id: I5db0a092a98c17964c55c9358ea1010ca05e9d6f
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-52673
Change-Id: Ia093b2836b0f137e06624f557f4ee1746726e3e3
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Since the slot connected to the frameAvailable signal may be in another
thread there is a bigger risk of it being invalid by the time the slot
is invoked. Therefore we copy the data and emit with the copy to ensure
that we don't lose the data.
Task-number: QTBUG-61817
Change-Id: I2888661d8a7f97105a85f87b08cc9ec25f8ce8c7
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the result of running the (experimental) clang-tidy check
qt-modernize-qsharedpointer-create
Discarded changes: none.
This run probably does not cover all of qtmultimedia.
Change-Id: I86a51b6a1edfe254f3fa9bff12dda359ac413df0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
| |
Change-Id: I979c7d8d01b00689269a7969b628864ca5eab991
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QSoundEffect (pulseaudio) uses a workaround for stability issues:
although the pulseaudio mainloop mutex is recursive, it utilizes a
separate lock counting. This is not the best solution, but it is a
part of a larger set of changes which improved the stability in CI
under heavy load.
QSoundEffect always calls pa_threaded_mainloop_lock/unlock() from the
same thread so the additional lock counting works in normal situation
even though it doesn't use atomic types.
However if pa_context_connect() fails, pa_threaded_mainloop_unlock()
is called without regard to current lock count. This leads to random
double-unlock aborts if pa_context_connect() fails more than once
(e.g. after the reconnect scheduled from onContextFailed()).
Fix this by always using the PulseDaemon wrappers around
pa_threaded_mainloop_lock/unlock().
Task-number: QTBUG-61725
Change-Id: I41eb9a76892a6646fd5620ef8f686473b339464f
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\
| |
| |
| | |
Change-Id: Ib4f0ad04f54dca3c71fe09a25629d2c5b604ca5b
|
| |
| |
| |
| |
| | |
Change-Id: Ife0ddc6788ddfe64e6e27e5b7403064cddcf636a
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| | |
Change-Id: Ifcf6bf24ffe1e1762796ff330f6ae1357aa83870
|
| |
| |
| |
| |
| |
| |
| | |
Binary compatibility files updated.
Change-Id: Idfb4d256ad582a601538b584dcddb71dce480227
Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We only need to wait for a new viewfinder frame if we have a
videorenderer control. If there's no videorender control, then there's
no preview set and we can therefore just save the capture image
immediately.
Task-number: QTBUG-60329
Change-Id: I9ba34919f7cd82258482507c65db6367e330e231
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use Qt 5 signal/slot syntax, range based for, member initialization.
Add message for captured images and fix some minor issues.
Task-number: QTBUG-60627
Change-Id: I1011fc95d928a9d2edaad16120acb0dc41f987d9
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-60627
Change-Id: Ib7268d2b939614e713ea6ac209f1c162002d6142
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It's possible to initiate an asynchronous image capture
(via AVCaptureStillImageOutput object) and immediately
stop AVCaptureSession. In this case image capture's callback
can potentially block forever, waiting for a semaphore: (if)
no new frames arrive after 'stop' (on whatever thread
AVFoundation/GDC chooses), this semaphore is never released.
To avoid this we try to acquire a semaphore with a (reasonable)
timeout and report an error in case of failure. To make sure
we are not leaking a semaphore and not creating a danling pointer,
we use a QSharedPointer now.
Task-number: QTBUG-61367
Change-Id: I208cd463f843bc807b53b23ac9651aab0382775a
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes g++ warnings:
..\common\evr\evrhelpers.cpp: In function 'QVideoFrame::PixelFormat qt_evr_pixelFormatFromD3DFormat(D3DFORMAT)':
..\common\evr\evrhelpers.cpp:143:5: warning: case value '842094158' not in enumerated type 'D3DFORMAT {aka _D3DFORMAT}' [-Wswitch]
case D3DFMT_NV12:
..\common\evr\evrhelpers.cpp:145:5: warning: case value '842094169' not in enumerated type 'D3DFORMAT {aka _D3DFORMAT}' [-Wswitch]
case D3DFMT_YV12:
Change-Id: I11869144b34d848bd68434d3a062852608518978
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix g++ 7.1 warning:
player\directshowplayerservice.cpp:724:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
if (SUCCEEDED(DirectShowUtils::connectFilters(m_graph, m_source, m_videoSampleGrabber->filter(), true)))
player\directshowplayerservice.cpp:726:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
break;
Amends 8e4d966f4e5546787257de046d2c3af8a19214b4.
Change-Id: I491e14e0116140d2ebb870441c2f048a2d7ddc31
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I9f764077d257dadfe1641e9bd446b6939c381173
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|/
|
|
|
|
|
|
| |
Though it's a pointer.
Task-number: QTBUG-60464
Change-Id: Ia3e896da908f42939148fffd14c660fd8da43aa2
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When m_loopCount is Infinite (i.e. -1) m_runningCount would go from -2
and down, eventuall wrapping and reaching 0 and thus stopping.
This is a theorical problem since even if we had a 1 second video it would
take lots of years to trigger but i guess it's better than
having the value of m_runningCount be unbounded
Change-Id: I340ec2157ece3334e58ab4afd77c34b478a256e9
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
| |
Sometimes m_format.bytesForDuration(delta) is larger than the QByteArray
containing the data. Therefore select the minimum of these.
Task-number: QTBUG-61085
Change-Id: I20a8ffb77095aecd2711f53d4c9fc7da7f9ae8e2
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|\
| |
| |
| | |
Change-Id: I5e0887cd2b1837d1e3de93bbabd751212488ae0a
|
| |
| |
| |
| |
| |
| |
| | |
Listing important changes and bug-fixes.
Change-Id: Ic22fbd7eaf6d00774f4d24a1bba1a7df6fa52307
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Where possible, we should be emitting the stateChanged() signal to
StoppedState when we know the file is no longer being written to. The
finializing status can be used to indicate it is finishing and when it
is actually finished then StoppedState should be used.
Task-number: QTBUG-50588
Change-Id: Ie3ac1c5cd00a6a36978e72b5485622e3302054ce
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| | |
Change-Id: I5f1312a56b9f5b9e492a475fdfd0cd9db6fe8735
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If a backend does not support streaming then playing from qrc is
impossible for -no-feature-temporaryfile case.
Change-Id: Ibb0518c4afe0598c6f3a1c03b75cc00e76b8eead
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|/
|
|
|
|
|
| |
take advantage of the system now supporting 'use' by exported name.
Change-Id: I7879d4c2e31b279bbbe17916e805ee60c108351d
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
| |
The interface is needed to implement Qt's camera control classes.
Change-Id: I468527dd1f5e9e7a0f8868f0b7addc3c069adf54
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
| |
Change-Id: Ie1c39c26ae6dec288daafb24b5aa0b6cc2bdd218
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change enables the video and audio probe functionality, so it can
be used with the media player.
[ChangeLog][DirectShow] Added support for audio and video probes in
the mediaplayer.
Task-number: QTBUG-56415
Change-Id: If6f36a693b1d22372eab130df07d435c9df5a796
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
|
| |
- Remove unused license files
- Switch old LGPLv21 license headers with LGPL one
Task-number: QTBUG-57147
Change-Id: If939b9a09e0cd5ccda7f12172363cbc8f78297e8
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Since iOS 10 the Info.plist file needs to indicate that it requires the
usage of the camera and microphone in any application that requests
them. So this adds Info.plist files to be used by the examples in that
capacity.
Change-Id: I16c6607366f57f4e950e53e1de1fbc0ac224df10
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Currently boot2qt is tested with QEMU and some tests fail. Disabling
them for now to make it possible to enable qt5 tests for Coin.
Task-number: QTBUG-60266
Change-Id: I0eadd95e202e4ff14f811856d982424608d29c44
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Make sure that the frame being processed is still valid, that is, the
size is valid and correct, and that the frame buffer is accessible.
Task-number: QTBUG-60115
Change-Id: Ic64b6f7d45d92b7923d97d6ecdc630da31abee17
Reviewed-by: Michael Dippold <mike@dippold.com>
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
|
|
| |
This fixes the issues that were causing the whole qmediaplayerbackend
test to be blacklisted on macOS.
Task-number: QTBUG-46368
Change-Id: I59a35dd50a9c07e4e4382c5facb391f5c8a27ee7
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove QT_USE_NAMESPACE from headers and enclose headers/sources in
QT_BEGIN/END_NAMESPACE. Fixes MinGW build error:
qtbase/src/corelib/global/qtypeinfo.h:246:7: error: specialization of 'template<class T> class tn::QTypeInfo' in different namespace [-fpermissive]
class QTypeInfo<TYPE > \
^
qtbase/src/corelib/global/qtypeinfo.h:265:1: note: in expansion of macro 'Q_DECLARE_TYPEINFO_BODY'
Q_DECLARE_TYPEINFO_BODY(TYPE, FLAGS)
^
helpers\directshowmediatype.h:92:1: note: in expansion of macro 'Q_DECLARE_TYPEINFO'
Q_DECLARE_TYPEINFO(DirectShowMediaType, Q_MOVABLE_TYPE);
^
qtbase/src/corelib/global/qtypeinfo.h:57:7: error: from definition of 'template<class T> class tn::QTypeInfo' [-fpermissive]
class QTypeInfo
^
Task-number: QTBUG-60118
Change-Id: Idfe7a49b50a0046a5cb17630a3ec99615ec6150a
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Newly allocated memory was passed to DirectShowMediaType::copy(), which calls
DirectShowMediaType::clear() on the target, which crashes when trying to
release a COM pointer.
Split out a DirectShowMediaType::copyToUninitialized() helper function
which does not call clear() for this purpose.
Task-number: QTBUG-59515
Change-Id: I2801f4ba2c8da618ff8a1c57c4cea215fff292b4
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The camera should ask for permission before being used. Normally this
should be handle by the user, which can provide proper reasons for why
the camera is used. To verify that we are allowed to open the camera,
and as a good default, we'll check the permission and request access
if needed.
[ChangeLog][Android] Added run-time permission checks for accessing
the camera.
Task-number: QTBUG-55992
Change-Id: Ifb4e176728aab3076fdba292e17e17d33b1260a2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
| |
Check that the position doesn't change after calling pause().
Change-Id: I4d7629c2f9cb165134279e1cc7047a5c82f394c9
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
| |
When at the end of the media, check that pause() resets the position to
the beginning and that the status changes to BufferedMedia.
Change-Id: I3c7aeb98284de8cbeb12195fbf0a308e593af67b
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
| |
- Add NV12 and NV21 formats to the tested formats.
Change-Id: Ibca6966636352dda744820f80f08ca0f040356a7
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
| |
Skip tests were the test-surface is incompatible with the backend.
Task-number: QTBUG-46368
Change-Id: Ica2c01573b15cbf6a93080bb05e932202938629f
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
|
|
| |
Not all backends supports or have an implementation that sets the
time-stamp on the video frames, so check if we do have valid time-stamps
before running any tests that depends on it.
Change-Id: I53926022a02cd87d23c493f7b392c4eb4c45a55e
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before API level 24 the display orientation (the preview) was always
set to 0. On newer versions of Android the clockwise rotation is set
to be either 0 or 180, depending on the hardware. Since we don't
want Android to apply transformation on our surface, we'll just
enforce that the display orientation is always set to 0.
Task-number: QTBUG-56536
Change-Id: Ie1aacda97540d5c97e6cbd8edb2afc53e7041e1e
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
|\
| |
| |
| | |
Change-Id: I7cd203eec77f3b5689c14b81b0862c5b70bab1a6
|