summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer
Commit message (Collapse)AuthorAgeFilesLines
* Get rid of plugins for MM backendsLars Knoll2021-01-2285-13853/+0
| | | | | | | | | | There's no need for having those in plugins and we can further remove abstractions and simplify our code if the code is directly compiled into Qt Multimedia. Change-Id: I5267a6a776375d99be8f0de4207f0288d963e620 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Get rid of the QMediaServiceFeaturesInterfaceLars Knoll2021-01-226-43/+0
| | | | | | | | Replace it by one virtual method in the media player control. Change-Id: I18778d2f56b9af8a16418c30c75c973e54b6add8 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Outcast of API changes for QMediaPlayerLars Knoll2021-01-222-3/+0
| | | | | | Change-Id: I6b8a57423f6b97c67382ea3613b7afdf8f706d71 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Get rid of some macrosLars Knoll2021-01-226-10/+10
| | | | | | Change-Id: Ie68f9ec729d988dcc0b232f84524a4bd11f56f8e Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move the gsttools into Qt MultimediaLars Knoll2021-01-226-5/+7
| | | | | | | | | Let's not have a separate helper lib for those. The longer term goal is to get rid of platform specific plugins anyway. Change-Id: I24c9e984c696a4ecfc4693413ad51264f6926afe Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Implement proper hardware detection using gstreamerLars Knoll2021-01-223-5/+5
| | | | | | | | | | | | | Scrap all the code that was trying to figure out supported video devices using low level code. Instead do it properly using GstDeviceMonitor. Use the chance to remove some unneccesary arguments to the methods. Change-Id: I7a45035b5340314768a096458d68f78176e58811 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix compilation of the gstreamer mediacapture pluginLars Knoll2021-01-229-16/+30
| | | | | | Change-Id: I69b7e90a18a157d85cfbde58682f464feb017b2d Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Clean up QCamera error enumLars Knoll2021-01-221-2/+0
| | | | | | | | | We only really need two error values, the others don't make a whole lot of sense. Change-Id: I8f798b1ed930ea876442390776528a32b3532e30 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove buffer format API in QCameraImageCaptureLars Knoll2021-01-217-199/+5
| | | | | | | | | | | | The only thing really supported here was JPEG, with the exception of gstreamer, where things were partially implemented. But this low level control doesn't really make sense anyway at this point. Get rid of it for now. Change-Id: Icdbc214a2e42ab92a1b34c539b039118402692bf Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Merge the viewfindersettingscontrol into QCameraControlLars Knoll2021-01-218-156/+21
| | | | | | Change-Id: I6410cc5fa9e787454a3ed61723b26238012aea6e Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Get rid of the old viewfindersettings backend interfaceLars Knoll2021-01-219-216/+17
| | | | | | Change-Id: Id7b82b445ac528a30dd67ead01ffa73af298d3d3 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Get rid of QMediaControlLars Knoll2021-01-218-16/+19
| | | | | | | | | | The class was serving no purpose that QObject doesn't offer, so remove that layer and use QObject as the base class for those controls. Change-Id: Icd434fabe88cbdba5fa54eafe6ba97ac08be61f3 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Coding style cleanupsLars Knoll2021-01-217-49/+50
| | | | | | | | Do some coding style fixes proposed by clang-tidy. Change-Id: I62584767fd7af2f98ac02653c1105d64188f5554 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Merge QCameraLocksControl into QCameraControlLars Knoll2021-01-218-356/+213
| | | | | Change-Id: I228b7ef5dbb3e782a4cf39605e2f33b3c93ba8a5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge QCameraZoomControl into QCameraFocusControlLars Knoll2021-01-218-235/+109
| | | | | | | The public API also only uses one class to control both. Change-Id: I55ba5ae168d77d7a05a21f22164aaf0752482020 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge QCameraFlashControl into QCameraExposureControlLars Knoll2021-01-219-196/+53
| | | | | | | | | | They are exposwed through one class on the front-end side, no need to complicate the API with several interfaces on the backend side. Change-Id: I4ecdc96edf71353f1b6d31cab92b7df064033e9a Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge QCameraCaptureDestinationControl into QImageCaptureControlLars Knoll2021-01-218-162/+18
| | | | | | Change-Id: Idb30411d7474fb2fe9581aa94535c1638d71161c Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Kill QCameraExposure::MeteringModeLars Knoll2021-01-212-3/+0
| | | | | | | | This was not implemented in any of our plugins. Change-Id: I3118d56016d6b77e45a2ed911a630ca70ff1da3d Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Get rid of QMediaServiceDefaultDeviceInterfaceLars Knoll2021-01-212-4/+0
| | | | | | | | Merge it into QMediaServiceSupportedDevicesInterface. Change-Id: I842218c7cb6391e86357a09d461be078a6d8a368 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* First step in cleaning up the plugin loading codeLars Knoll2021-01-214-9/+9
| | | | | | | | | | | | | | Stop assuming that there are multiple plugins providing the same service. We'll have exactly one plugin for a service in the future and not provide several. The reason is that we will focus on having one good and functional multimedia backend per platform, not the mix of many semi-functional ones as we have today. Change-Id: I809d4c99a56a48369d0ba283af78b1c41740d92a Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Disable the gstreamer mediacapture pluginLars Knoll2021-01-212-2/+2
| | | | | | | | | | camerabin is providing the same service and is more complete. Don't delete the code yet as there are a few things that should probably be added to the camerbin plugin. Change-Id: I2399a6b45b83fb42f0bd5869575cc775f887207a Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Get rid of QCameraInfoControlLars Knoll2021-01-218-162/+1
| | | | | | | | | | | | | This was completely over-engineered. Simply implement this in the QVideoDeviceControl (as that one is only listing cameras anyway). Cleanup the convoluted code in the service provider classes while we're at it. Change-Id: I2a71eaf104af2a06016399d77c2d8b4bcd417b4a Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Initial Cmake port for qtmultimediaDoris Verria2021-01-205-0/+231
| | | | | | Fixes: QTBUG-89540 Change-Id: I2cf8d0edae2769a53cadd667ab5ac4f9cb754a50 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Get rid of one abstraction layerLars Knoll2021-01-207-822/+572
| | | | | | | | The layer was only forwarding from one class to another. Change-Id: I2645b62a7beeba69d708dec0fa476fe3b46e1534 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix a bunch of compiler warningsLars Knoll2021-01-203-69/+69
| | | | | | Change-Id: I137b07f0909195019d136f1ce8926afd4bbb5e5f Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Clean up playlist handlingLars Knoll2021-01-202-2/+0
| | | | | | | | | Remove the whole plugin infrastructure and all the complexity that came with it and some other architectural decisions. Change-Id: I86bc2f1a5bddf5ba90881990c5cf49463d12ed65 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove gstreamer-0.10 code pathsLars Knoll2021-01-2019-278/+4
| | | | | | | | In fact, require gstreamer 1.12 as the minimum version. Change-Id: Iad7239dc3907ffceca1454b80f982f8f04aea518 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Get rid of the unused resource policy and availability controlLars Knoll2021-01-2013-595/+12
| | | | | | | | | The only implementation of this was using some Nokia specific library, that hasn't existed since 2012 anymore. Change-Id: Ieaec2176ad8e4fc170bb5254944fffc41edccefa Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Gstreamer: fix camerabin's supported focus point modeRatchanan Srirattanamet2020-09-231-2/+0
| | | | | | | | | | | | | Commit be7fef656a1d087d3d1d3fa102da4fce85855935 (Add support for face detection focus point mode to camerabin backend.) updated camerabin's isFocusPointModeSupported() to indicates face detection mode support. However, it forgets to remove the old code that says only auto and custom is supported, making the face detection never reported as supported. Pick-to: 5.15 Change-Id: I76627e0b72fb94cd1370bc990edd6c748086a5d9 Reviewed-by: Val Doroshchuk <valentyn.doroshchuk@qt.io>
* Gstreamer: handle delayed camera unload() in addition to stop()Ratchanan Srirattanamet2020-09-151-6/+22
| | | | | | | | | | | | | | | | | | Commit b1a0bc9d454793d705a4aba84b301d3f8dfb50ea (Prevent immediate-stop of currently-unloading gst recording pipeline) make sure that CameraBin Control will delay QCamera::unload() if the camera is busy. However, it didn't update the handleBusyChanged() to also do the unload when busy status changed. This commit make handleBusyChanged() to handle both delayed stop() and delayed unload(). This make sure that if unload() is called when the camera is busy, it will eventually be unloaded. Also update the log message to properly print the delayed action. Task-number: QTBUG-65398 Change-Id: I2a752265fb082fbc3feb895f1cf904202df155c9 Reviewed-by: Val Doroshchuk <valentyn.doroshchuk@qt.io>
* CameraBin: unset GValues after finish using themRatchanan Srirattanamet2020-09-111-0/+3
| | | | | | | | | | GValue can contain allocated memory. Not unsetting it can cause memory leak. This patch adds g_value_unset() calls to various places that miss ones. Pick-to: 5.15 5.12 Change-Id: I78e0f8f6c558ada0e7828c11094132359c579c2a Reviewed-by: Val Doroshchuk <valentyn.doroshchuk@qt.io>
* Remove the unused include of qregexp.hSona Kurazyan2020-07-091-1/+0
| | | | | | Task-number: QTBUG-85235 Change-Id: I8d3175b2bc9fe07a6f110b12b4b170ad5305397a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add ; to Q_UNUSEDLars Schmertmann2020-06-284-4/+4
| | | | | | | | This is required to remove the ; from the macro with Qt 6. Task-number: QTBUG-82978 Change-Id: I5466906d759a7cc046d77a21e2c647a4b938d070 Reviewed-by: Val Doroshchuk <valentyn.doroshchuk@qt.io>
* Use QList instead of QVectorJarek Kobus2020-06-252-9/+9
| | | | | | Task-number: QTBUG-84469 Change-Id: Id8d07836a66e4d9223341483bfe0ed251ba2806c Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Qt6: Port QtMultimedia from QStringRef to QStringViewKarsten Heimrich2020-06-112-2/+2
| | | | | | Task-number: QTBUG-84319 Change-Id: Ic342142dd17591159ee84139157e5ed613b03682 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.15' into dev"Qt Forward Merge Bot2020-05-291-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>
* | | GStreamer: Add missing include for QStandardPathsVaL Doroshchuk2020-05-281-0/+1
|/ / | | | | | | | | Change-Id: If458b16be7a7a8b3f6e8e3bb74391774b41bc884 Reviewed-by: Liang Qi <liang.qi@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-03-101-4/+6
|\| | | | | | | Change-Id: I4ea49723c74c6dccf141b65f834b5d539d2ab9d7
| * 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>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-211-1/+5
|\| | | | | | | Change-Id: I0bc0e3caceaca0def467237983d9c611c46c5d7a
| * GStreamer: Don't create encoding profile if container is not supportedVaL Doroshchuk2020-01-201-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It does not make sense to create a GstEncodingContainerProfile with a non-supported media container. The correct way to use it is to provide supported values for mediaContainer together with videoCodec. mediaContainer: "video/quicktime, variant=(string)iso" videoCodec: "video/x-h264" Task-number: QTBUG-81075 Change-Id: Ia25fff32a39dc9dd512c353d1ced7d7d7e4f6370 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | GstCamera: Watch for zoom and max-zoom property changes in Gstreamer CameraBinMohammed Hassan2019-11-202-1/+35
|/ | | | | | | | Camerabin can signal a change in those properties and we need to communicate those back to the application. Change-Id: Iaa3ce57769c10460821126a467202a6a4139d040 Reviewed-by: Pekka Vuorela <pvuorela@iki.fi> Reviewed-by: Raine Mäkeläinen <raine.makelainen@jolla.com>
* Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-10-081-0/+6
|\ | | | | | | | | | | | | Conflicts: src/multimedia/configure.json Change-Id: Ie887a5f4d718cb3e082b0e2ee996c6687af330cb
| * Gstreamer: also remove features when simplifying capsRatchanan Srirattanamet2019-10-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Small performance improvements suggested by clang-tidyAlbert Astals Cid2019-10-072-4/+4
| | | | | | | | | | | | | | | | * Add const & to function parameters * Add const & to variables assigned from functions returning const & Change-Id: Idc141bd48f37eae92a4d1775caade3c977a42391 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-10-011-1/+1
|\| | | | | | | | | | | | | Conflicts: src/multimedia/video/qvideoframe.h Change-Id: I8458c4138be05f661d6528116cbc6b18298f0a91
| * CameraBin: do fetch viewfinder settings even after LoadedStatusRatchanan Srirattanamet2019-09-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-09-126-29/+21
|\| | | | | | | | | | | | | | | Conflicts: src/gsttools/qgstvideorenderersink.cpp src/gsttools/qgstvideorenderersink_p.h Change-Id: I7fe29161d568fa3f7688abfd2f993d1b16ac3fb9