| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I761867053d5175b5cf1d12c01ca6285b4a9aedbb
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
The PulseAudio stream must be ready to write data to it, otherwise an
assert is raised.
Change-Id: Iaa108124a135b018aa84845a37665895a005f380
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
| |
When loading a new QSoundEffect source, the data in the stream must
be flushed to avoid that the old source plays right before the new one.
Task-number: QTBUG-48982
Change-Id: Iff14884edb2fb4851f93e67ff8191b77ebb16359
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
As of version 10.12 (Sierra), the name of Apple's desktop operating
system will be macOS. Change all occurrences where the platform is
discussed to use the macro \macos (defined in the documentation
configuration in qtbase).
Change-Id: I1ba3b1e3c11870523516d3a13790d40dd0803aad
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@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.
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a playlist contains an invalid media, QMediaPlayer normally
continues to the next media. If an invalid media was first in the list,
the backend would never go into PlayingState, which would then cause
the media player to never start the next item in the list (thinking
it's stopped).
We now always transition to PlayingState when starting playback of a
playlist, regardless of the backend going into that state or not.
Change-Id: I4227f937e7a619afbd8adbe2fccedfa5d43ad89a
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>
|
|
|
|
|
|
|
|
| |
Check the state of the media player when trying to play or pause
without a loaded media.
Change-Id: I6685f196457630eb9f4e834426c8e1b9a9eaf8dc
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
| |
Change-Id: If2336e9c550ef8264d0853be83972a6170a9746b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
QUrl::resolved can be used to resolve relative paths, but not by
passing them via QUrl::fromLocalFile (8a33077 in qtbase made QUrl
more strict). To resolve both relative and absolute local paths
against a local directory, QUrl::fromUserInput(3 args) does the job.
Change-Id: Ifc01bbd590978f939f9538e70d12f2f3704d7b5d
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes texture name leak when changing media player's source. Texture name
shold be deleted by OpenGLResourcesDeleter class, but when player's source is
changed OpenGLResourcesDeleter's texture name is reassigned with new one
without old name deletion.
This change deletes OpenGLResourcesDeleter's current texture name when new name
is assigned.
Task-number: QTBUG-54340
Change-Id: I22bbd60b4462b0034fd115f0582ea43b9bcaee4b
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
| |
The surface was never cleared in the EVR presenter. It could lead to
situations where the presenter would use a destroyed surface.
Change-Id: If2223f09f6f8c20c06345bed40803da10dcf4ae3
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a regression caused by ba8127639857232d8a. The change
assumed that the AndroidSurfaceTexture class could cope with changing
textures, but since the callback from the SurfaceTextureListener was
tied to the initial, invalid, texture handle, it would only work as
long as there were only one texture; all textures would register
the callback to the same invalid handle.
This change maps the callback directly to the android texture object,
instead of the texture handle.
Task-number: QTBUG-54340
Change-Id: I39568d0f97fa6b9cb1182efaca568b16a26f0d09
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the DirectShow graph is done being built, there's no need to wake
up any blocking calls on the main thread since setting a source is done
asynchronously anyway.
This could cause synchronous operations (like stopping or changing the
video output) to end prematurely if called while a source was still
being loaded, in turn causing the deadlock.
Task-number: QTBUG-54504
Change-Id: I4f534e637bfca6d3020a3bc28725c8c7042941d5
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change ensures that the next media file to be played back will start
playing at position 0. Without this change, it would start playback at the
last position of the previous media file.
In the play() function, when attempting to play a video, we first go into
the loading state which just defers playing until later. Since we set the
state to “Playing”, we now accept events from mm-renderer. It sends us a
position update which ends up being from the previous video. Since we’re
in “Playing” state, we trust this event is right and set our internal
m_position variable to that value. Once the media has loaded, play() is
called again and then we hit the call setPositionInternal() which seeks
the media to our internal m_position (the position we got from mm-renderer).
To resolve this, we now will call setPosition in the stop function that
will cause mm-renderer to seek to 0 just before it stops playback
(as recommended in documentation) so that any events we get from mm-renderer
when we move to the “Playing” state will be related to the current media.
Change-Id: I8ae35e57dd690bbae1fb996c1feb15ee4addab55
Reviewed-by: James McDonnell <jmcdonnell@qnx.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Be more permissive while checking loops remaining.
Remove file BLACKLIST
Task-number: QTBUG-46689
Change-Id: I15b5fb55ee770a190b2c21dd8cf1fad45665a73c
Reviewed-by: Milla Pohjanheimo <milla.pohjanheimo@qt.io>
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Asserting is too heavy and can cause false positive on devices like the
Lumia 535, where focus is supported, but not setting a focus point.
Later on we check for existence of the control during the
initialization, so it is safe to continue here.
Task-number: QTBUG-54278
Change-Id: Ie68ff754d742888bdd6f4047e07d207707c90c91
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
NetBSD does not have -ESTRPIPE, so use it only when defined.
http://netbsd.gw.com/cgi-bin/man-cgi?errno+2+NetBSD-6.0
and https://mail-index.netbsd.org/pkgsrc-wip-discuss/2013/10/27/msg002529.html
Change-Id: I92921a16fcae95f58a870aea98ca66f5a5d30a12
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The list of devices was cached on startup and was never updated
when a device was plugged, unplugged or if the default device changed.
We now use the event subscription mechanism in PulseAudio to get
notified of these changes and update the list accordingly.
Change-Id: I5fe1c81494702aa9d38b91009621629dc9606323
Reviewed-by: Karim Pinter <karim.pinter@theqtcompany.com>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
| |
See http://comments.gmane.org/gmane.comp.lib.qt.devel/25771
Change-Id: I9fc15721bf7a26d5da82739a6c83e76e33bb2827
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
Make sure the device format is always set in the same way.
We don't actually set the format anymore when it's the same as
the current one. We also make sure the frame rate is preserved.
Change-Id: I1c68239bc99d9c3cef920effcf47fc253220c26f
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
Since the active viewfinder resolution can be overridden by the image
and video capture resolutions, we need to re-evaluate the viewfinder
settings whenever the capture mode changes.
Change-Id: Ibdb7a070585cf67ebb2fcfb95ccbdd105f5f41cf
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make sure the video is recorded in the same orientation as the device.
That means the top of the video matches the physical side of the device
which is on top when starting recording.
This patch makes sure the behavior is the same as on Android. In a
future version, we should have an API to pick the desired orientation
of the recorded video.
Change-Id: Ia8bbfe621a0e54de3cb6bfe0a520f37e8a932539
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
| |
Change-Id: I24d3da1417142bc80bc6b6c1c8124c246afe03db
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
| |
Change-Id: I5097a0450f5836e48a697249619a1822775f3ad8
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
|
|\
| |
| |
| | |
Change-Id: I0b4fde2a47b428fd04012a8dbec16fd14797b8dd
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
c84bdf63e4de16586eda3c45d5c3c3b2dc4fe089 introduced a potential crash on
Windows Phone as querying for photo resolutions still might return video
properties. As a result, querying for ImageEncodingProperties will fail
and the function returns no resolution at all causing an assert later
on.
Instead of checking for the stream type passed to
getMediaStreamResolutions we have to check for the property type of the
list itself.
Task-number: QTBUG-53714
Change-Id: I7bfc48ebf1fef4f9165135af604ce6c91a418438
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I5e4d301ff056b3de2da8f9a5271d36364bfd5dc8
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QWinRTAbstractVideoRendererControl::setActive was using
QThread::requestInterrupt previously to indicate to the render thread
that it is supposed to quit.
However, when switching cameras you cannot tell the render thread to
continue rendering. Instead start() is called and then the render thread
recognized the previous interrupt request, resulting in a quit and no
further rendering happening.
Instead we wait for the render thread to complete by using shutdown().
Task-number: QTBUG-53722
Change-Id: Ibee2ed4f64400ca14c788984a73df4be0653ed2b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I44620b8513fdf20ebc0e093368044133eabdd6b3
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|