| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: Icd9dff16b807d0bc7143a3d41f9799432035fa54
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
The video output is set after it has handled this doRender() call which
means that it would report an error with the media, even though it was
renderable. This approach ensures that it does not report an error and
will correctly report as loaded in this case.
Change-Id: I6ec6abb82dcdd8f122e198ff6a765cf83931ee10
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
QT_GSTREAMER_CAMERABIN_VIDEOSRC can contain pipeline description
and not just one video source element.
QT_GSTREAMER_CAMERABIN_VIDEOSRC="nvcamerasrc ! nvvidconv" ./app
Task-number: QTBUG-60884
Change-Id: Iebf052a6669fd17139b78949ed0bb314f1faef65
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-68933
Change-Id: Ieed8aba484c17aa56bb688fdcc9cafdb8e638fa2
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
| |
Using apartmentthreaded model for static objects can cause not calling
destructors for global objects in shared libraries.
Task-number: QTBUG-67353
Change-Id: I1554203b1d7a48ff9f0c4d2f0d6246e445a07f46
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
In case if network access manager is already released need to prevent
using it in dtor.
Task-number: QTBUG-66754
Change-Id: I9f61e284b39e920dadf771d807a4b7dce2a353f7
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When sample is ready QAudioOutput is created with sample's format.
In case when new source url is applied old format is reused in
QAudioOutput instance
which might lead incorrect playback.
Task-number: QTBUG-54262
Change-Id: I84af167412cb53726593a3bfd4193fc7cd71f332
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using WAVE_MAPPER device id (which points to default device)
is not possible to get and initialize a mixer object to set volume.
Function mixerGetID() does not support WAVE_MAPPER as a device id yet.
Since we do not know device number anymore
needs to call waveInOpen() first and after that
initialize mixer controls using hWaveIn handler.
- Fixed default volume from 0.0f -> 1.0f.
- Before QWindowsAudioInput::start() is called, use cached volume.
- After QWindowsAudioInput::start(), mixer controls are initialized.
- QWindowsAudioInput::stop() deinitializes mixer controls.
Task-number: QTBUG-61920
Change-Id: I5a94dad282618fb4a2e0f75c34008ca002bd1aeb
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Need to show errors returned from QGstreamerRecorderControl.
Also if QGstreamerCaptureSession emits an error this error will be proxied to QGstreamerRecorderControl
and back to QGstreamerCaptureSession to show it.
Task-number: QTBUG-67706
Change-Id: I285a968b15a4cc8ab1e8e99e83f8dd7e2659a1d1
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Fetching caps from video source might take sometime and hang ui thread.
Currently the caps are fetched when the camera gets ready which produces a hang.
Proposed a fix to postpone fetching caps when requested and not when camera loaded.
Task-number: QTBUG-67920
Change-Id: I7734ef96c98b2c425714eacc1fd1222fd7ee5c44
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If video renderer backend has been recreated, then it needs to update its
geometry. Which previously didn't happen and as a result no content was shown.
The geometry is now updated from within the video node.
Task-number: QTBUG-54680
Change-Id: Iadbf324f4734c9ac6c487eaedd014629ca330599
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Seems waveOutWrite() requires WAVEHDR->dwBufferLength to be even number
otherwise some crackling might be heard while playing.
And looks like it is not related to QAudioFormat, any of it produces the
issue.
Task-number: QTBUG-64931
Change-Id: I87dbe165611325d9c0291a3bffdc091397b42741
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
| |
The code that it was using to retrieve a parent window didn't always
get the right window. Using a private window prevents any confusion.
Change-Id: Ic368460c6bf150891ff51f1f3b00bbe93c6cf780
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
If IMFMediaSink is returned from IMFStreamSink needs to add ref because
caller will release it.
Task-number: QTBUG-68054
Change-Id: I6d1732f7873e09f742c072380673a08ad86fe73a
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If initialization of camera finished with an error no need to report
that camera is initialized successfully.
Using camera in this case might lead to some segfaults and other
errors.
Task-number: QTBUG-68054
Change-Id: I6a197989c2b44454a8594ff19b8c03fb08f57c7e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
The else was also missing the curly braces, but as we usually omit
else after return, let's just remove it.
Change-Id: Ia91261bbe6edf4e9b0d454d1fdf91c5cfa62e4cc
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
| |
Caught by Clang 6:
qgstutils.cpp:180:1: warning: '/*' within block comment [-Wcomment]
Change-Id: I3840d727dee443318644fffd152938f2b4df5400
Reviewed-by: Martin Smith <martin.smith@qt.io>
|
|
|
|
|
| |
Change-Id: Ie8589bb55388c1f41b1706b6571e2eec401fc415
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-63014
Change-Id: I6afacdb31f13a9e95784afaab90029a77f9fabfc
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
| |
It was possible to play resource files only by prefix ":/".
Added support of qrc schema in filenames.
Change-Id: I9e538422828ad2107ab5567d172dca8728cbc64d
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
| |
Silence the clang-cl build.
Task-number: QTBUG-63512
Change-Id: I701998d63a54b556b32fa0100bf43ef3071e598b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the class DirectShowObject. Move the ref counting code
to a macro COM_REF_MIXIN that is used for the classes that are
actually instantiated.
Fix warnings:
common/directshowpin.h(56,5): warning: 'reinterpret_cast' from class 'DirectShowPin *' to its base at non-zero offset 'IUnknown *' behaves differently from 'static_cast' [-Wreinterpret-base-class]
DIRECTSHOW_OBJECT
^~~~~~~~~~~~~~~~~
common/directshowobject.h(69,33): note: expanded from macro 'DIRECTSHOW_OBJECT'
return GetInterface(reinterpret_cast<IUnknown*>(this), ppv); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common/directshowpin.h(56,5): note: use 'static_cast' to adjust the pointer correctly while upcasting
Task-number: QTBUG-63512
Task-number: QTBUG-64157
Change-Id: Ibef143d675cd169b78fe46ff5a0c83f6e3434487
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CoTaskMemFree is declared __stdcall. This declaration causes a stack
maintenance behavior (called function pops its own arguments from the
stack) that breaks release builds and leads to crashes. By wrapping that
function into our own function (which is by default __cdecl) we get the
wanted stack maintenance behavior (calling function pops arguments from
the stack) and thus avoid these crashes.
Task-number: QTBUG-63016
Change-Id: Ibd36f4fc2680351bf41c2991e9b3f1723bb19eab
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Starting with Direct3D 11.1 GetSharedHandle is not recommended to be
used.
Instead IDXGIResource1::CreateSharedHandle should be used to get a
handle for sharing. It returns NT handle and needs to call CloseHandle.
GetSharedHandle fails with E_INVALIDARG seems due to a handle is not shared.
Task-number: QTBUG-67417
Change-Id: Ib28acb8edbf737e84f5eef91e7a3a88b2f022bcb
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When playing mp3 with QMediaPlayer and seeking is performed (IMFMediaEngineEx::SetCurrentTime)
and also IMFByteStream::BeginRead is already done (actual data has not
been read yet) but IMFByteStream::EndRead is not called.
There would be a possibility to get a deadlock when the playback gets stuck.
Possible problem call flow:
1. BeginRead is called
2. Queue finishRead and postpone it
3. SetCurrentTime to new position (is called on event loop)
4. finishRead is called
5. EndRead is called
As a result MF_MEDIA_ENGINE_EVENT_SEEKING is received but
MF_MEDIA_ENGINE_EVENT_SEEKED is never received.
Proposing to read data directly from BeginRead callback and avoid
possibility to seek when data is not read yet.
Task-number: QTBUG-67614
Change-Id: I809e5df1c05de8014ebd0a48fd008a291f39433c
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
Update the parameter description for two methods that cause QDoc
warnings. This change also seeks to improve clarity of the description.
Task-number: QTBUG-67790
Change-Id: Iafcf650b0584f8a293fc1585701f7731a34cea6b
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a custom module header, used only for documentation builds, that
pulls in also the QtMultimediaWidgets module.
Several documentation fixes to clean up warnings from clang.
Task-number: QTBUG-67790
Change-Id: I6c1013798a648250c8555eb92684ec3b33ff7531
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
| |
Remove one space that is the cause of a QDoc warning with Clang.
Task-number: QTBUG-67790
Change-Id: Iad60c6b4bdf9570c8c30e5acd641463807f3b416
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
result
The function returns a bool no HRESULT. Neither SUCCEEDED nor FAILED
returns the proper result when fed with a bool.
Change-Id: Ic46957f1f2c9098afac2e216fe5ef2dd1dee00a6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
If matchPin fails for one of the pins (for whatever reason), the loop
can just continue and check whether another unconnected pin can be found.
If this check fails for every pin, false will be returned in the end.
Change-Id: I1a58a26633b43052f3963212932d789d4800c714
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
| |
If every pin connection fails, the result of the function should be false.
It does not matter if graph->EnumFilters(&f); failed or succeeded.
Change-Id: I87ec6bcda5d5dbe60154b39e21c73af1dd06fe3d
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
|
| |
If the pin's connection state does not match shouldBeConnected, the
function has to return false instead of checking the result of the
isPinConnected call.
Change-Id: Id15f054d5847434a5bb06b91bbc1455c6fdd2ded
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
|
|
|
|
|
|
|
|
|
| |
For 64bit:
qwindowsaudioinput.cpp(420,15): warning: cast to 'HMIXEROBJ__ *' from smaller integer type 'UINT' (aka 'unsigned int') [-Wint-to-pointer-cast]
mixerID = (HMIXEROBJ)mixerIntID;
Change-Id: Icb13142b0d8868e995f47caa02784c260abfc10f
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
If a problem occurs in open() the stateChanged() signal should be explicitly emitted
regardless that current state has not been changed since QAudio::StoppedState.
Task-number: QTBUG-49569
Change-Id: I6f4e235fa4b6b3bbf0dc3946dfe1f983ac10f356
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
| |
Change-Id: Iec7442f4621ad131bf6291e0f5d013ee379c5e3b
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
| |
Change-Id: I13cf879be6fc6225552990b8196aeb39299b8e3f
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
| |
Change-Id: Ie58ee30b1ace836c620812b8063246c0d01d7214
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
| |
Change-Id: I62e3d4d1284adeea457d754d63650b5c9b81e276
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QRectF::setX() may change the width.
QRectF::setY() may change the height.
If either width or height has been adjusted incorrect target rect is applied to draw an image
which will cause some artefacts to be shown (like rectangle with a garbage)
and incorrect size of actual content.
Task-number: QTBUG-53594
Change-Id: Iee92aaf908952d7809e8ad62f8d1126b7ecac642
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If playback is paused latest video frame is shown.
If after that the window is deactivated (unfocused or hidden) the picture is cleared.
And just empty area is shown.
Provided following fixes:
1. Prevented clearing the painted video picture when the window is unfocused.
2. Repainted latest video frame again when the window gets back from hidden state to shown.
Task-number: QTBUG-65780
Change-Id: I62b3c6e25133a7d08a5060a5ab9f6b35d927fbd4
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
IMediaSeeking::SetRate() may return an error when not supported rate is
being applied.
Added a warning to inform user about incorrect rate value
also fixed a bug when the rate has been always fell back to 1.0
instead of previous value.
Task-number: QTBUG-55354
Change-Id: I85fb5572cba6920b461a023aef1bc09a981ab033
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
| |
Introduced a fix to support changing of volume for 3 bytes samples audio stream.
Task-number: QTBUG-60579
Change-Id: I4ba4a9a1cf65812ccbc46b40c78546875d5e4d73
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If the handler returns GST_BUS_DROP, it should unref the message,
else the message should not be unreffed by the sync handler.
The message is not going to be unreffed after handler call is made.
Task-number: QTBUG-64142
Change-Id: Ib44f574e95457cdfab66b390c691a8b572987d66
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since vaapi and xvimage sinks require different ranges for the properties:
brightness, contrast, hue, saturation. Added support of vaapi ranges.
It also fixes problem when contrast was always 0 as default value
which led to always show black screen.
- brightness
xvimage: Allowed values: [-1000,1000], Default value: 0
vaapi: Allowed values: [-1,1], Default value: 0
- contrast
xvimage: Allowed values: [-1000,1000], Default value: 0
vaapi: Allowed values: [0,2], Default value: 1
- hue
xvimage: Allowed values: [-1000,1000], Default value: 0
vaapi: Allowed values: [-180,180], Default value: 0
- saturation
xvimage: Allowed values: [-1000,1000], Default value: 0
vaapi: Allowed values: [0,2], Default value: 1
Task-number: QTBUG-23761
Change-Id: I8fda8ce4c6f47c4567e67c670f802a0e9f55af6e
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
No move events are being received for QVideoWidget even with enabled Qt::WA_MouseTracking.
All these events are ignored because video widget from QVideoWidgetControl
always has disabled Qt::WA_MouseTracking.
Proxied this mouse tracking property to video widget.
Task-number: QTBUG-30728
Change-Id: Ic196042596906ce8b5674b62ea66f5e035ba3cfe
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The sample size is now correctly calculated using provided bit rate via QAudioEncoderSettings.
The bit rate is calculated like
bitrate = sample size * sample rate * channel count
Fixed bug when sample size is 8 when bit rate and sample rate is 8000
which is not correct. The bit rate must be 8 * 8000.
Task-number: QTBUG-65207
Change-Id: I660fadfaaf6cc63004480fb84165252360b7f75e
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a camera is not started successfully error() signal has to be
emitted.
Added emitting an error from video source.
Emitted only first error to prevent multiple subsequent errors.
Added debug message.
Task-number: QTBUG-51825
Change-Id: I6ac936d2728213a4a64f3e4eb25ae2e2f109acca
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a camera is not started successfully,
then an error() should be emitted.
After an error the camera's state will be QCamera::UnloadedState
and status will be QCamera::UnloadedStatus.
The error signal is handled when the camera is unable to set following states:
QCamera::UnloadedState, QCamera::LoadedState or QCamera::LoadingState.
Thus additionally to QCamera::start() an error can be emitted
even when QCamera::load(), QCamera::unload(), or QCamera::stop() is
called.
Task-number: QTBUG-51825
Change-Id: Ib5ea08ed7983ea49a7bf8c0321cc5266a68d9144
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Actions intended to be performed by the unreachable code will never occur.
In CameraBinLocks::lockStatus(QCamera::LockType): Code block
is unreachable because of the syntactic structure of the code (CWE-561)
Coverity-Id: 188406
Change-Id: I55a7ef8e87673519ff4f1ad5677054b34bf66d17
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
| |
Change-Id: I74ffd5bafaef9ebbe7f12600ad831c8deb58ae64
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|