summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add changes file for Qt 5.11.2v5.11.25.11.2Antti Kokko2018-08-291-0/+61
| | | | | Change-Id: I4d2af3eae00be23afefcfce7b1cc71d011cee126 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Gstreamer: Set video-profile to CameraBin before GST_STATE_READYVaL Doroshchuk2018-08-222-10/+12
| | | | | | | | | | | | | | | | | | | | CameraBin creates default (application/ogg, video/x-theora) video profile or sets custom defined one, but ONLY on GST_STATE_CHANGE_NULL_TO_READY. If the camera is already loaded then it is not possible to change the video profile. Since a video profile was never defined, video/x-theora was always used to record video. Moved setting video profile before it gets to READY. It fixes an issue with ignoring CameraBinRecorder::applySettings(). This also changes previous behavior when video/x-theora was always used. To apply custom video settings it requires to use QMediaRecorder::setVideoSettings before the camera enters the READY state. Task-number: QTBUG-69895 Change-Id: I3afbf1f8e7c953e2e49e9cad7e96ea0b18a29d1a Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Gstreamer: Fix gst_mini_object_unref: assertion refcount > 0 failedVaL Doroshchuk2018-08-221-1/+0
| | | | | | | | gst_value_get_sample does not return a reference to the sample. Should not call gst_sample_unref. Change-Id: Ibf71e6844b5756d85aac541a68e4e4ae4eefe498 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Gstreamer: Fix crash when resolution or frame rates are requestedVaL Doroshchuk2018-08-221-0/+11
| | | | | | | | When either resolution or frame rates have been requested when the camera is in unloaded state, caps might not have some values. Change-Id: Ie935c62d02e10f762957ecd9f89255ad0e8fbd0b Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Android: Fix the player state when play() is called with no mediaVal Doroshchuk2018-08-161-2/+1
| | | | | | | | | | | | If play() is called before any media is set, don't change the current state to PlayingState. This was inconsistent with the other backends, and required an unneeded call to stop() when a media later got set. Task-number: QTBUG-68998 Change-Id: I8281c7bf83e36e9a80f2136ca9fc2430c55e8bd6 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* AVFoundation: Use opengl context from surface as sharedVaL Doroshchuk2018-08-021-7/+7
| | | | | | | | | | | Since few opengl contexts could be used at the same time, CARenderer could use wrong context to render the video frame. If the video surface contains an opengl context then need to use it as shared regardless of existing of current context. Change-Id: Ie7e87682c73c0fd341b40c05e3f3c4a70d563242 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* DirectShow: Notify if camera has been unpluggedVal Doroshchuk2018-08-023-3/+36
| | | | | | | | | | | | | | | | | | | If being used camera has been disconnected, state and status will remain like it is still active. Also no events are sent. Previously to fix this the camera needed to be unloaded and loaded again manually. IMediaEvent provides an ability to catch device removal notification with EC_DEVICE_LOST event. Since ISampleGrabber is used to get buffers. Added a fix to check if no buffers received for some time afterwards check for EC_DEVICE_LOST event. In case if the device is lost, the camera should be unloaded. Change-Id: I3a5edf00ce8ee25d8b06800fdad833a722bdba0d Task-number: QTBUG-68035 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* DirectShow: Postpone setting camera image processing param if not readyVal Doroshchuk2018-08-022-3/+12
| | | | | | | | | | | | | Setting camera image processing parameters fails if the graph builder is not ready. We avoid this race condition by having a list of pending parameter changes which is applied when graph builder has been created. Task-number: QTBUG-69143 Change-Id: I5702ea5a2dceacff333fcf8dce05372a0208b8d9 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Bump versionOswald Buddenhagen2018-07-301-1/+1
| | | | Change-Id: I74a4a3cbe1b37e3cdf21ae31fcca53be073823b1
* Gstreamer: Use gst_bus_remove_watch() instead of g_source_remove()Peter Seiderer2018-07-251-0/+4
| | | | | | | | | | | | | Avoids critcial warning ('GLib-CRITICAL **: Source ID 10 was not found when attempting to remove it') in case the applications initiates another glib context/main loop. The new gst_bus_remove_watch() is available since gstreamer API 1.6, otherwise fall back to g_source_remove(). Task-number: QTBUG-69468 Change-Id: I4343865cb41a2d62ac4b0c0c04f60f13727f56d0 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* Fix warning on deleteLater on nullptr in QSampleCachePierre Hallot2018-07-241-2/+4
| | | | | | | | | | | | | | It is possible to have a loading thread running, but with no network manager. In that case, calling deleteLater() on m_networkAccessManager results in a warning: postEvent: Unexpected null receiver. Fix this issue by checking whether the network manager exists before calling deleteLater() on it. Task-number: QTBUG-66910 Change-Id: I818a87a605b4e906dee47c6c815a6b8112b16829 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* QSampleCache: Fix memory leakOrgad Shaneh2018-07-051-2/+1
| | | | | | | | | | | | | | and a warning on termination: QCoreApplication::postEvent: Unexpected null receiver During static deinit it is not possible to use deleteLater, as there is no event loop running at this stage. The crash that was described in QTBUG-30630 doesn't reproduce with Qt 5.10, so I guess it should be safe to just delete. Change-Id: I0c404d71e9f102018e314c890ff679f8c0952b07 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* AVFoundation: Do not use AVFVideoRendererControl if no openglVaL Doroshchuk2018-06-261-3/+6
| | | | | | | | Removed code to use AVFVideoRendererControl to avoid link error. Task-number: QTBUG-69076 Change-Id: Iea87570fa6bb95541507d2ed84b6a1aa70984370 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* AVFoundation: Fix crash when no video capture deviceVaL Doroshchuk2018-06-252-1/+5
| | | | | | | | No need to configure anything if there is no video capture device. Task-number: QTBUG-65740 Change-Id: I8de7dced14b00ab3eba560f395d7e1a4a5de1682 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* winrt: Obtain new camera sample format and size on camera changeOliver Wolff2018-06-223-0/+11
| | | | | | | | | | | | By Resetting d->cameraSampleformat to Format_User when the selected video device is changed we make QWinRTCameraVideoRendererControl reobtain the camera sample format and size during the next call of queueBuffer. This is needed as the new camera might have other values for these, which might result in a white screen after a camera change. Task-number: QTBUG-67417 Change-Id: I29e28ddf4fc278aff00ad824bda61aedad91471d Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* Doc: Move the literal codeblocks to snippet filesVenugopal Shivashankar2018-06-217-7/+127
| | | | | Change-Id: Icd9dff16b807d0bc7143a3d41f9799432035fa54 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Directshow: Don't report failure for stream source with no video outputAndy Shaw2018-06-201-3/+3
| | | | | | | | | | | 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>
* Gstreamer: Use gst_parse_launch in QT_GSTREAMER_CAMERABIN_VIDEOSRCVaL Doroshchuk2018-06-201-5/+13
| | | | | | | | | | | 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>
* Merge "Merge remote-tracking branch 'origin/5.11.1' into 5.11" into ↵Qt Forward Merge Bot2018-06-201-0/+73
|\ | | | | | | refs/staging/5.11
| * Merge remote-tracking branch 'origin/5.11.1' into 5.11Qt Forward Merge Bot2018-06-201-0/+73
| |\ | | | | | | | | | Change-Id: I42b704f9018ed69930ce928d94a837b4a5aa188b
| | * Add changes file for Qt 5.11.1v5.11.15.11.1Antti Kokko2018-06-121-0/+73
| | | | | | | | | | | | | | | Change-Id: I02b5eb7fe4888ba44ef477bd6e73aebaba212efc Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | | tst_qmediaplaylist: Fix multiple definition error in static buildsVal Doroshchuk2018-06-201-5/+1
|/ / | | | | | | | | | | Task-number: QTBUG-66480 Change-Id: I2df7877fe298f485d9bc67366d7d1251835eb9d2 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | Doc: Add missing dots (qtmultimedia)Paul Wicking2018-06-195-5/+5
|/ | | | | | Task-number: QTBUG-68933 Change-Id: Ieed8aba484c17aa56bb688fdcc9cafdb8e638fa2 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Add binary compatibility files for Qt 5.11 for QtMultimediaMilla Pohjanheimo2018-06-052-0/+34900
| | | | | | | Binary compatibility files for bic test added Change-Id: Ic8c73383cd4382052faac014eb604dbb5e64dc5f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add changes file for Qt 5.9.6Antti Kokko2018-06-011-0/+34
| | | | | | | Change-Id: Id97747f02da09bec084c492611037dcf8850e5f5 Reviewed-by: Christian Stromme <christian.stromme@qt.io> (cherry picked from commit 52f5785cfa8193f85859a27caebeb2a10f894f67) Reviewed-by: Antti Kokko <antti.kokko@qt.io>
* Add changes file for Qt 5.9.5Antti Kokko2018-06-011-0/+45
| | | | | | | Change-Id: I7325bf41f90c0fe1539a45fe643dec60a34a6547 Reviewed-by: Christian Stromme <christian.stromme@qt.io> (cherry picked from commit c70e05a8e3977918541c1f92f7d948a674919b3e) Reviewed-by: Antti Kokko <antti.kokko@qt.io>
* Bump versionOswald Buddenhagen2018-05-311-1/+1
| | | | Change-Id: Idfaf1944ec24f1b5d6fcb9ff73991b5874f7fee1
* Wasapi: Always use multithreaded concurrency model in initializationVal Doroshchuk2018-05-141-3/+1
| | | | | | | | | 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>
* QSoundEffect: Check if network access manager is already releasedVal Doroshchuk2018-05-111-1/+2
| | | | | | | | | 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>
* Merge remote-tracking branch 'origin/5.11.0' into 5.11Qt Forward Merge Bot2018-05-091-0/+75
|\ | | | | | | Change-Id: If83fb4b4d59cd1ea3ed917cbdfd3d6c64bc08a0b
| * Add changes file for Qt 5.11.0v5.11.0-rc2v5.11.0-rc1v5.11.05.11.0Antti Kokko2018-04-251-0/+75
| | | | | | | | | | Change-Id: Ie464a3ff30964f17623a5bd65b97f024d7028a43 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | QSoundEffect: Release QAudioOutput when new source url appliedVal Doroshchuk2018-05-091-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Fix adjusting volume for default deviceVal Doroshchuk2018-05-083-15/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Gstreamer: Show warning on error from QGstreamerRecorderControlVaL Doroshchuk2018-05-081-0/+3
| | | | | | | | | | | | | | | | | | | | | | 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>
* | CameraBin: Postpone fetching supported viewfinder settingsVaL Doroshchuk2018-05-082-40/+43
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Set geometry for recreated video renderer backendVal Doroshchuk2018-05-081-7/+6
| | | | | | | | | | | | | | | | | | | | | | 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>
* | DirectShow: Fix crackling when playing custom sample rateVal Doroshchuk2018-05-081-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Switch WindowGrabber to a private parent windowJames McDonnell2018-05-072-18/+25
| | | | | | | | | | | | | | | | 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>
* | WinRT: Add ref to prevent seg faultVal Doroshchuk2018-05-041-0/+1
| | | | | | | | | | | | | | | | | | | | 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>
* | WinRT: Keep camera as uninitialized when errorVal Doroshchuk2018-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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>
* | QMediaPlayer: remove else after returnAndre Hartmann2018-04-301-2/+3
| | | | | | | | | | | | | | | | 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>
* | Fix comment endThiago Macieira2018-04-271-1/+1
| | | | | | | | | | | | | | | | Caught by Clang 6: qgstutils.cpp:180:1: warning: '/*' within block comment [-Wcomment] Change-Id: I3840d727dee443318644fffd152938f2b4df5400 Reviewed-by: Martin Smith <martin.smith@qt.io>
* | QSound(Effect): Cleanup coding styleAndre Hartmann2018-04-264-11/+11
| | | | | | | | | | Change-Id: Ie8589bb55388c1f41b1706b6571e2eec401fc415 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | winrt: Fix rotation of camera imageOliver Wolff2018-04-252-24/+32
| | | | | | | | | | | | | | Task-number: QTBUG-63014 Change-Id: I6afacdb31f13a9e95784afaab90029a77f9fabfc Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | QSound: Allow to play files with qrc schemaAndre Hartmann2018-04-254-1/+40
| | | | | | | | | | | | | | | | 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>
* | DirectShow: Add overrideFriedemann Kleint2018-04-256-30/+30
| | | | | | | | | | | | | | | | Silence the clang-cl build. Task-number: QTBUG-63512 Change-Id: I701998d63a54b556b32fa0100bf43ef3071e598b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Fix DirectShow COM class hierarchyFriedemann Kleint2018-04-2413-205/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | winrt: Do not use CoTaskMemFree as image cleanup functionOliver Wolff2018-04-241-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | WinRT: Fix white screen for camera outputVal Doroshchuk2018-04-241-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | WinRT: Read data in callback to prevent deadlockVal Doroshchuk2018-04-232-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>