| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
Change-Id: I4cc304daa4098bd1209152bb84cae7ee93d92933
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| |
|
|
| |
Change-Id: Ic40941bd63720eb1d753abd457f5861782f99105
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDeclarativeCameraViewfinder connects to QCamera's statusChanged() to
update its chached settings when the status becomes LoadedStatus or
ActiveStatus. However, it's updated after QDeclarativeCamera has
signaled cameraStatusChanged because QDeclarativeCameraViewfinder
connects the that signal after QDeclarativeCamera, making those
connected to cameraSignalChanged still receiving old values despite
camera.cameraStatus already changed.
This commit moves the creation of QDeclarativeCameraViewfinder into
the constructor of QDeclarativeCamera, before the later connects
to signals. This make values in camera.viewfinder reflects the correct
value by the time cameraStatusChanged is signaled.
A side effect of this change is that camera.viewfinder.resolutionChanged
and similar signals will be signaled before camera.cameraStatusChanged.
This might not be as bad as it seems; if the user of resolutionChanged
checks camera.cameraStatus, the value will be correct anyway as it's not
cached.
Change-Id: Ief0c3d55e441cc872d37de937ba54fed0f2b877d
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
|
|
|
|
|
| |
Additional to bf6ac0 commit, need to fix convert funcs
Change-Id: I8eb82234557489e66bc179e1696afc154332b656
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
When qrc media content is set, it allocates and opens QFile.
If the same content is set again, the url remains the same,
but it creats new QFile, and need to update by new stream.
Change-Id: Iee6c50135bb8304177affbe70b27d24898fc5b5c
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
When qrc media content is set, it allocates and opens QFile.
If the same content is set again, the url remains the same,
but it creats new QFile, and need to update DirectShowIOReader by new
stream.
Change-Id: If3f5c187c4e2987e1a593b45f9a46c3c1b77ce45
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
If remote source is requested to play but there is a limitation in network bandwidth,
StalledMedia status is never emitted, also the playback is not resumed after buffer gets full again.
Based on AVPlayerItem.playbackLikelyToKeepUp introduced changing the media status
and resuming the playback.
Task-number: QTBUG-49806
Change-Id: If8aa10a1ea2cee2a40c679871b836d2dca622fcd
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
|
|
|
|
|
|
| |
This amends commit f0ea2641.
Fixes: QTBUG-79014
Change-Id: Ib04d844ef64e335785408dc8d7e512a5a3651655
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Get real physical address of video frame data and provide it to
imx6 vivante videonode to prevent memory leak from kernel.
By default qtmultimedia does not depend on gstreamer-imx,
but the plugin should exist on imx platform.
So gstreamer_imxcommon will be disabled.
And should be manually enabled in yocto receipt.
Change-Id: I6e75746a2ba651d12bdd7697ae483699aad450fc
Fixes: QTBUG-73084
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
|
|
|
|
| |
Fixes: QTBUG-45064
Change-Id: I6b4a7a4b92affe80fc288e08d514092ac3d6899a
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some element can return caps with same resolution/framerate but
different features. gst_simplify_caps() won't de-duplicate this,
resulting in duplicated entries for the same resolution/framerate.
This commit add calls to also remove features from the caps in addition
to setting name to video/x-raw.
The GST_CHECK_VERSION macro is added to maintain compatibility with
earlier version of Gstreamer without GstCapsFeatures.
[ChangeLog][CameraBin] Fixed duplicated entries in supported resolution/
framerate if the underlying element uses caps' features.
Change-Id: I15101899eb0369925013ccc1d925afb890a01205
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the playback is already stopped, and after that
new position is requested twice, e.g.
stop();
setPosition(0);
setPosition(0);
this causes the playback to start.
Need to postpone setting of new position until play is requested.
Also no need to emit positionChanged when position is not changed.
Fixes: QTBUG-68778
Change-Id: Ib62942ee155d9c8ed2310132dcc6b501dfef1a04
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Currently if custom pipeline is set, old playbin elements are destroyed.
And if normal url is passed again after the custom pipeline, it is unable to play.
Because no playbin elements exist anymore.
Adding a fix to recreate playbin elements if "not a pipeline url" is passed.
Fixes: QTBUG-78079
Change-Id: I8b3498c4660639f5d757b322a136846ee82fdc28
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Media status should be emitted before any error.
Since error can cause changing the media and changing to new media
status.
Fixes
BFAIL : tst_QMediaPlayerBackend::playlistObject() Compared values are not the same
Actual (mediaStatusSpy.count()): 4
Expected (6) : 6
Task-number: QTBUG-46368
Change-Id: I8eb82e7a551d78abd143baa594cfda9bacd7e544
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
Fixed tests about start times.
Since DirectShow can provide frames with negative start time, also from
the beginning, also pixels can vary, e.g. (rgb) 255:0:0 would be 230:19:19
after decoding.
Task-number: QTBUG-46368
Change-Id: I025f7cf9238ddf9ba2a04f63e3e54b77f3cceafe
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When QDeclarativeVideoOutput::releaseResources() is called,
means the window is going to be destroyed and it is too late to use
scheduleRenderJob() to clear filters.
This beforeSynchronizingJobs will not be handled in this case.
Which produces a leak of filter's runnable.
Fixes: QTBUG-51588
Change-Id: I71ec351463a2c4136d8b7e241d61e628a1b0c64b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |
|
|
|
| |
Change-Id: I2fc8d9c8b951092498f11a4a31c6c890df9d7495
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
|
|
|
| |
Change-Id: I9aab0c5c20f97bc45fa26cc3a0faf6cf10c916d2
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
YVU formats are likely not supported by the codecs and the pipeline
will not be negotiated in this case.
Fixes
BFAIL : tst_QMediaPlayerBackend::surfaceTest(YVU formats) 'surface.m_totalFrames >= 25' returned FALSE. (Expected >= 25, got 0)
Task-number: QTBUG-46368
Change-Id: I6bf1a5822481a018549fe58aaf5fe79c79ff8456
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Need to flush when at least one frame is probed
and stop is called, EOS or QMediaPlayer is destroyed.
Fixes
BFAIL : tst_QMediaPlayerBackend::probes() '(probeHandler.isVideoFlushCalled)' returned FALSE. ()
Task-number: QTBUG-46368
Change-Id: I09ebd6608c9a1b8a0a0707d83200d75ddb435734
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 84d0d87699a2a92b3207beae30a52f25e23acb65 (CameraBin: Postpone
fetching supported viewfinder settings) checks if the camera is in
LoadedStatus before fetching supported viewfinder settings. However, if
viewfinder settings is never requested or not (yet) available during
LoadedStatus, it won't try to fetch it at e.g. ActiveStatus. In that
case, requesting supported viewfinder settings never works.
[ChangeLog][CameraBin] CameraBin plugin now fetches supported viewfinder
settings at status higher or equal to LoadedStatus if it has not been
fetched.
Change-Id: Ibd32c25feac9b1a133945e754d26181937190a24
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since ABGR32 was introduced in 5.13.0 but placed in the middle of the list,
which breaks enum values.
[ChangeLog] In Qt 5.13.0 binary compatibility was broken
for usage of the enum QVideoFrame::PixelFormat by introducing QVideoFrame::Format_ABGR32.
To minimize the impact of this, the break has been reverted,
thus introducing a binary compatibility break with earlier Qt 5.13.x versions,
but restoring compatibility with all earlier versions of Qt 5.
Change-Id: I3c490f2fc30f3b6914306b2d496724f12729338e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Decided to update only docs that the class is obsolete.
QT_DEPRECATED_SINCE is not needed.
Also due to deprecation warnings (produced e.g. by Q_DECLARE_METATYPE),
QT_DEPRECATED_X is not used.
NOTE, QMediaResource will be removed from Qt 6
Change-Id: I24c6b58f90315880839dd137cab3108809a63760
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
|
| |
|
|
|
| |
Change-Id: I0069b96f00830cd441b60bef5847b1543ba2c1af
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
|
|
|
|
|
| |
Only the Q_PRIVATE_SLOTs remain.
Change-Id: Id3daf8275e8510a99a7089d4a537d06a123b6a27
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| |
|
|
|
|
|
| |
Adding the code to a snippet file
Change-Id: Iee3a24a1d2f28bc8863cf321b0b55c0459708995
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
| |
|
|
|
| |
Change-Id: I690fa71f171b821098d33ce5482c9de467b645d5
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
| |
|
|
|
|
| |
Change-Id: I96026828c357677c84e880ea85e6e82b8c0495c7
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since using of any COM objects must be only after CoInitialize(),
otherwise CoCreateInstance() returns nothing which causes a crash.
If QMediaPlayer is moved to another thread, loading of any content will
also cause a crash because of COM is not initialized.
Proposing to use thread_local ref counter to keep each thread
initialized and avoid double initialization.
Fixes: QTBUG-77163
Change-Id: I81c67d6407b853c824edd3b42454fddf792fd90c
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |
|
|
|
|
| |
Fixes: QTBUG-76574
Change-Id: I69ef47bbd01967c3d7a0c5d1554fcdd29619ebfa
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |\ |
|
| | |\
|/ /
| |
| | |
Change-Id: Idc377c82cc1d2bd53069babc7f14618ef46dc67b
|
| | |\ |
|
| | | |\
| |/ /
| | |
| | | |
Change-Id: I6137c73fe14e171aaa184e25ebc3a8374e4d91e2
|
| | | |\
| | | |
| | | |
| | | | |
Change-Id: If27d8e3bb898607c5bf07dbfc97476859ae24646
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I282469f6c634283cec565b692b29b16cf0fdbea4
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the application seeks to a new position, the Media Session restarts
the presentation clock at the specified seek time.
The media source might deliver samples with a slightly earlier time stamp
if the seek time does not fall on a key-frame boundary.
And IMFSample->GetSampleTime will return time that is related to
a position when the clock has been restarted, and can be also negative.
So if it needs to have times from the beginning, it would require to add seeked position
to times from IMFSample.
It also reverts c4de056a6aa44567cdbf2ce91a464e597ad4af8f
Fixes: QTBUG-77849
Change-Id: I1a7cb7bd18aee73087a61d2ed2c3d644ad0fbd50
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| | | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When QDeclarativeRendererBackend is being destroyed, it clears the
surface and postpones releasing IMediaControl, which is done on worker
thread. It also calls flush() where null surface is used.
Fixes: QTBUG-77829
Change-Id: I327583c1f8fb7585dbec3c3fb7e80d0155cc4819
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |\ \ \ |
|
| | |\ \ \
|/ / / /
| | | |
| | | | |
Change-Id: Ibccd00bdb62b0cce00882bafa602d1cef8051aeb
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I57e7aa684f589159f7957d68122c0ae983b2a70c
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When the playback is stopped, QAbstractVideoSurface::stop is called
where current surface format is reset.
And when sourceRect is requested before QAbstractVideoSurface::surfaceFormatChanged()
is handled, it produces an ASSERT.
Suggesting to use cached surfaceFormat instead of removing the ASSERT.
To reproduce:
MediaPlayer {
onStatusChanged: console.log(output.sourceRect)
}
Change-Id: I73ad72f1e4968fe45266827ec5c7e3b36333ee30
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |\ \ \ \ |
|
| | |\ \ \ \
|/ / / / /
| | | _ /
| | | / |
Change-Id: I896f59dcbad36c6cebf328a2799b9fe94e72f3d2
|
| | | |/
| |/|
| | |
| | |
| | | |
Change-Id: I1ed22d646c2ff230217e1ecefaf37a0a45fa4b54
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |\ \ \ |
|
| | |\ \ \
|/ / / /
| | _ /
| | / |
Change-Id: Ic46475146abe7b8493ae343e8332736fa6dcc3af
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The feature was added in 5.12.2.
And it is relevant only for GStreamer backend.
Change-Id: I87e22e506158dc61bb7f111e74806e7eb8c28d7a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| |\ \ \
| |_|/
|/| | |
|
| | |\ \
|/ / /
| | _
| | |
Change-Id: I428528333e89214d96acef5c2ba8ea832b2b145f
|