summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* Qt6: Port QtMultimedia from QStringRef to QStringViewKarsten Heimrich2020-06-117-7/+7
| | | | | | Task-number: QTBUG-84319 Change-Id: Ic342142dd17591159ee84139157e5ed613b03682 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove Radio supportVaL Doroshchuk2020-06-1010-968/+0
| | | | | | Fixes: QTBUG-84592 Change-Id: I3b9e51689fd542c35cb57cf6c51a141aec3034df Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Introduce QAbstractVideoBuffer::MTLTextureHandleVal Doroshchuk2020-06-107-59/+145
| | | | | | | | | | | | | | | | Added MTLTextureHandle to render metal textures. Is used by default if rhi is enabled for metal backend. Also fixed the frame renderer to create new opengl context and use provided one from the video surface as a share context. To remember, when the quick item is created and updatePaintNode is called, current gl context is set to the video surface as a property. When the frame renderer is ready, it extracts the gl context and uses it as a share one. Task-number: QTBUG-78678 Change-Id: I51ce666ca7c2adc10dd2c1d1dfed99cc9f596e2b Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* CoreAudio: Don't apply audio category if it is not neededVal Doroshchuk2020-06-094-18/+12
| | | | | | | | | | | | | | | | | | If just devices are requested, no need to apply any categories with activation of audio device. Postpone setting category and activating audio until actual playing is requested. Categories/options for input devices: AVAudioSessionCategoryPlayAndRecord with AVAudioSessionCategoryOptionMixWithOthers For output: AVAudioSessionCategoryAmbient with no options. Pick-to: 5.15 Fixes: QTBUG-83776 Change-Id: I9364bdea2882bc23039817207eca62b311841ba6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* AVFoundation: fix playback of files with spaces in their namesNick Korotysh2020-06-021-7/+7
| | | | | | | | | | | | | | | | | Used QUrl::toEncoded() instead of QUrl::toString(). Usage of QUrl::toString() leads to URLs which can contain spaces and as result such URLs are not accepted by AVPlayer, and it remains in unknown state because AVFMediaPlayerSession::processLoadStateChange() is not called at all. And as result, QMediaPlayer waits media loading forever. [ChangeLog][Platform Specific Changes][AVFoundation] Fixed playback of files with spaces in their names. Fixes: QTBUG-84585 Pick-to: 5.15 Change-Id: I69e522d048d88310803a7040f114ee808c18720b Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.15' into dev"Qt Forward Merge Bot2020-05-2920-32/+489
|\
| * Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-05-2920-32/+489
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/multimedia/audiodecoder/audiodecoder.cpp examples/multimedia/audiodecoder/main.cpp src/multimedia/playback/qmediaplayer.cpp Change-Id: I8cf1293023c09069745aa3aa6df49b1e0a8a1c22
| | * Merge remote-tracking branch 'origin/5.15.0' into 5.15Qt Forward Merge Bot2020-05-146-6/+6
| | |\ | | | | | | | | | | | | Change-Id: I9525c18e6a29b8c6cbe3398264a096bde24eca10
| | | * Merge remote-tracking branch 'origin/5.14' into 5.15.0v5.15.0-rc2v5.15.0-rc1v5.15.0Qt Forward Merge Bot2020-04-276-6/+6
| | | |\ | | | | | | | | | | | | | | | Change-Id: I6df92f98db7c18dcecdc831d46748d8111dffacb
| | | | * Fix case of header file includes for building with mingw-w645.14Marius Kittler2020-04-265-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ie0e6599234c38c5e5a75b681a911f3728871861e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | | | * WindowsAudio: Send stateChanged when QAudioOutput::reset() is calledVal Doroshchuk2020-04-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-83240 Change-Id: Iaa01ee4553f4c0c4d9a1ad829e65b40f13d3847d Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * | | Vivante: Keep only one frameVaL Doroshchuk2020-05-112-8/+4
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The imx6 vivante implementation of videonode used by qtvideosink holds reference to two frames during rendering. It releases the first frame only when it receives the third frame. This makes jerky playback when frames are not coming at constant rate. It displays the previous frame during video playback. Change-Id: If306bdcd358fac46a1fd0000ccb068424aee813a Reviewed-by: Karim Pinter <karim.pinter@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * | Merge "Merge remote-tracking branch 'origin/5.14' into 5.15"Qt Forward Merge Bot2020-04-201-4/+1
| | |\ \
| | | * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-04-201-4/+1
| | | |\| | | | | | | | | | | | | | | | Change-Id: I160b25219c806d9d3a30644fa1a5e589c5aca039
| | | | * GStreamer: Remove file when CaptureToBuffer is usedVaL Doroshchuk2020-04-201-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Capturing the image is handled by camerabin and it saves the image to a file. And we wanted to remove the file if capturing to buffer is requested, but the file is kept and not removed. Change-Id: I21404fc160bf275325deebf0f00b588de3493ee1 Fixes: QTBUG-82572 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * | | Update connect to QSocketNotifier::activatedMårten Nordheim2020-04-201-1/+1
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The int-overload will in some cases truncate the descriptor. So it's being replaced. Task-number: QTBUG-70441 Change-Id: Iffee2c8b544e6d329d02c0afea6aa9db9de38ea4 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| | * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-04-142-3/+14
| | |\| | | | | | | | | | | | | Change-Id: I9687c59d15cd816969f362d72b19f279a1a2d04e
| | | * DirectShow: Use MEDIASUBTYPE_Y800 as QVideoFrame::Format_Y8Val Doroshchuk2020-04-082-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added MEDIASUBTYPE_Y800 with GUID: {30303859-0000-0010-8000-00AA00389B71} Fixes: QTBUG-83071 Change-Id: I2e51ae1d2ae62d4d4cd7f68eecc0605bdc8c7f3a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| | * | Merge remote-tracking branch 'origin/5.14' into 5.15v5.15.0-beta4Qt Forward Merge Bot2020-04-071-6/+6
| | |\| | | | | | | | | | | | | Change-Id: Icb722ebe5b9b02791cf3593f2347e398deb837fe
| | | * WMF: Fix memory leak in MFPlayerSession::getStreamTypeVal Doroshchuk2020-04-061-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Receives a pointer to the IMFMediaTypeHandler interface. The caller must release the interface. Fixes: QTBUG-80037 Change-Id: I69682028a5deea256a79d5d067afe2e60e49c8c5 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * | Merge remote-tracking branch 'origin/5.14' into 5.15v5.15.0-beta3Qt Forward Merge Bot2020-03-281-0/+1
| | |\| | | | | | | | | | | | | Change-Id: I3a719b4e4ba75da1784fb2bc5d6c014b1e6c54ac
| | | * DirectShow: Handle QVideoFormat::BGR24 in bytesPerLine()Andy Shaw2020-03-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we are mapping from MEDIASUBTYPE_RGB24 to QVideoFormat::BGR24 then we should make sure this returns the correct value from bytesPerLine. Change-Id: I8cc31d29a03bf2c1d7682de32448db0db9656cc7 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| | * | Add AVFCameraWindowControl as QVideoWindowControl_iid implementationIhor Dutchak2020-03-237-3/+455
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AVFCameraWindowControl is a renderer backend, when QCamera viewfinder output set to QVideoWidget on macOS or iOS. As it uses native API and lets the OS handle rendering pipeline, it is an efficient alternative to default renderer backend. Task-number: QTBUG-68779 Change-Id: I4d27022655a7d9f4ad7cf99c84b570a0c48cf10a Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| | * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-03-181-1/+1
| | |\| | | | | | | | | | | | | Change-Id: Ia1bc95c071d29653a85e753964d15826ce3706f8
| | | * DirectShow: Round stop position down to available bytes in IAsyncReaderVal Doroshchuk2020-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently requested IMediaSample might contain the end time that exceeds the available bytes which causes returning an error in WaitForNext() and stopping the playback. Regarding to IAsyncReader::Request documentation: The start and stop positions should match the alignment that was decided when the pins connected. The stop position might exceed the real duration. If so, the method rounds the stop position down to the actual alignment. Fixes: QTBUG-77782 Change-Id: I644e25bfc6bb8f6d345b8424b79fb56490d82c0e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 9e96fe2cbf79a44039de0edcc854050d84b87588) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | | GStreamer: Remove dependency to gstreamer_imxcommonVaL Doroshchuk2020-05-292-13/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gstreamer_imxcommon is not official plugin. Added extracting of physical memory instead. Available since gst 1.14. Pick-to: 5.15 Fixes: QTBUG-83663 Change-Id: I4c2823f1a965c1fc5a5ab9e50ab8325884f8f6e1 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
* | | | Use QElapsedTimer instead of QTimeVaL Doroshchuk2020-05-294-10/+10
| | | | | | | | | | | | | | | | | | | | Change-Id: Ifb6418f4b554cf28412dd6256f874630fc3f5eb3 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | | WASAPI: Use QElapsedTimer instead of QTime in audio inputVaL Doroshchuk2020-05-292-3/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: I96e6778572e344122a13394ae9aec7a9b6d3ecb0 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | | WASAPI: Use QElapsedTimer instead of QTimeVaL Doroshchuk2020-05-291-1/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: If0eb56350677bd49c02f0439918a5ccfcc414770 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | | Remove forgotten includeVaL Doroshchuk2020-05-281-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | fatal error: EGL/egl.h: No such file or directory Change-Id: I30c7de1fe9fb846471ee50549afca863613309aa Reviewed-by: Liang Qi <liang.qi@qt.io>
* | | | Remove ANGLEVaL Doroshchuk2020-05-282-240/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since it is already removed from qtbase Change-Id: If3a8169705b57d2e39167e2f718524cf3fe8bb1e Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | | | GStreamer: Add missing include for QStandardPathsVaL Doroshchuk2020-05-281-0/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: If458b16be7a7a8b3f6e8e3bb74391774b41bc884 Reviewed-by: Liang Qi <liang.qi@qt.io>
* | | | Add missing overrideAlexander Volkov2020-05-269-127/+127
| | | | | | | | | | | | | | | | | | | | | | | | Pick-to: 5.15 Change-Id: I0ec719a26ad6c146e44f8e9e41b186a53cb254a9 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | | | Adapt to QString::utf16() now returning char16_t *Edward Welbourne2020-05-191-1/+1
|/ / / | | | | | | | | | | | | Change-Id: Ibf45850d9a806493df0cab33899efe1269ec65f4 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | Update qtbase dependencyFriedemann Kleint2020-03-258-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Adapt to QOpenGLWidgets split - Use new Q_MOC_INCLUDE directive where required - Fix QtConcurrent usage Change-Id: I9de650ae4fbbd397ef4fd4650c8aa5a0443d566f Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
* | | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-03-1814-66/+187
|\| | | | | | | | | | | Change-Id: I21c230900111b4881b40c451bffc3d5c2101111b
| * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-03-106-38/+47
| |\| | | | | | | | | | Change-Id: I4ea49723c74c6dccf141b65f834b5d539d2ab9d7
| | * QAlsaAudioOutput: leave IdleState as soon as there is data in the sourceCheng Sun2020-03-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes two bugs: - Once IdleState is entered (due to underflow), one would have to bring the state to ActiveState manually before the backend would start sending new data to ALSA. This behavior is unlike that of QPulseAudioOutput, for example, which will automatically transition out of IdleState once there is data present in the source device. - Whilst in IdleState the audio output would would mark bytes as being consumed from the source device, even though they were not actually being sent to ALSA. Change-Id: If5b4835df0f58b7b15f1800d3a0a1041f1ab845a Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| | * GStreamer: Allow using different resolution for capture and viewfinderVaL Doroshchuk2020-03-031-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently viewfinder resolution is overridden by image resolution. Fixed to keep it separate. Note, it might be not fully supported by gst camera implementation. Change-Id: Ia04c7819da1410f41aee458d347408f94053170b Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * AVF: Use supported pixel formats from video surface in CameraVal Doroshchuk2020-03-032-23/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QAbstractVideoSurface is waiting for the video frames in supported pixel formats. See QAbstractVideoSurface::supportedPixelFormats(). If the surface does not support device's pixel format, don't show the camera's viewfinder and don't return video frames in unsupported formats. Task-number: QTBUG-82264 Change-Id: I084674f4b093a751bc4f4941047b979766880963 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * Fix AVFVideoWindowControl/AVFVideoWidget content flick on resizeIhor Dutchak2020-03-032-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When AVPlayerLayer as a backend for AVFVideoWindowControl being resized, macOS adds animation that interferes with Qt resize routines. Disabling animation fixes visual flicks. Task-number: QTBUG-82542 Change-Id: I20a5699431369bcc2da8719b8c4a0151273f9973 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| * | Use Qt::SplitBehavior in preference to QString::SplitBehaviorEdward Welbourne2020-03-022-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step closer to that goal. Change-Id: I72aa0ccae06030043ba40f0f908826e5ca4a31ab Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | Merge remote-tracking branch 'origin/5.14' into 5.15v5.15.0-beta1Qt Forward Merge Bot2020-02-225-8/+23
| |\| | | | | | | | | | Change-Id: I04934575bd661b80b1f012a7e825dcd753d26908
| | * WMF: Fix memory leak in MFPlayerSession::getStreamTypeVaL Doroshchuk2020-02-211-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Receives a pointer to the IMFMediaTypeHandler interface. The caller must release the interface. Fixes: QTBUG-80037 Change-Id: Id0222c9f8ee0f88db8cd53c9492dce053d0bfb35 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| | * AVF: Don't override AVPlayerLayer's bounds if already setVal Doroshchuk2020-02-201-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | AVPlayerLayer's bounds can be changed while resizing, and should not be overridden by default/native size. Fixes: QTBUG-65536 Change-Id: I771b13e58606663ded80df3665454007d28836b7 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * AVF: Fix applying viewfinder settings for iOSVal Doroshchuk2020-02-183-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. If a resolution of the viewfinder is requested to be changed, it is not needed to check available formats for highResolutionStillImageDimensions (since it is viewfinder resolution and not still images). format.highResolutionStillImageDimensions returns the highest resolution still image that can be produced by the format. Using this format will cause wrong resolution in the viewfinder. 2. Seems iOS requires to call beginConfiguration/commitConfiguration to apply any changes. commitConfiguration is currently called when the camera gets active. In case if settings are changed after starting the camera, they will not be applied. To fix that, added beginConfiguration/commitConfiguration. Fixes: QTBUG-79935 Change-Id: I60b6e08887a82e4337a2a302b8e5513c65b26e61 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * | AVF: Introduce adoption of AVAssetResourceLoaderDelegate protocolVal Doroshchuk2020-02-202-12/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AVAssetResourceLoaderDelegate allows to load custom resources. Implemented resourceLoader:shouldWaitForLoadingOfRequestedResource to read data from QIODevice. The device should be seekable, and already should have all data available. Since there is a need to know total size of the stream. So the media player will wait for QIODevice::readyRead before loading the resource. Also it requires to have url together with the stream: QMediaPlayer->setMedia(QUrl("does_not_matter.mp3"), buffer); Since the backend uses extension to determine type of the stream. Fixes: QTBUG-69101 Change-Id: I8ab0b69f668ccd67c42a8e5d5c1ad518d3306cce Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-02-151-2/+3
| |\| | | | | | | | | | Change-Id: Ia0c325dc50b9a5a1cdd205609ba688ad9874f297
| | * AVF: Only resume playback after a stalled buffer if really neededDominik Holland2020-02-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When AVFoundation reports that the media is now buffered, we only should resume the playback if the QMediaPlayer is in the according state. Fixes: QTBUG-81912 Change-Id: Idba30ecf6c9c7b87a1c67896d89faa9a1bceae10 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
| | * AVF: Don't use deprecated AVPlayerItem::seekToTime::CMTimeVal Doroshchuk2020-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AVPlayerItem::seekToTime::CMTime is deprecated since 10.13 Also fixed to use accurate seeking by passing a time value of kCMTimeZero for both toleranceBefore and toleranceAfter. Fixes: QTBUG-81804 Change-Id: Ifafeb1fb5ca66ecba14d77abf315ebe6ffd45eab Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>