summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/mediacapture
Commit message (Collapse)AuthorAgeFilesLines
* Get rid of plugins for MM backendsLars Knoll2021-01-2228-4520/+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-222-13/+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>
* Get rid of some macrosLars Knoll2021-01-223-6/+6
| | | | | | 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-221-1/+1
| | | | | | | | | 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>
* 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>
* Get rid of QMediaServiceDefaultDeviceInterfaceLars Knoll2021-01-211-2/+0
| | | | | | | | Merge it into QMediaServiceSupportedDevicesInterface. Change-Id: I842218c7cb6391e86357a09d461be078a6d8a368 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
* Initial Cmake port for qtmultimediaDoris Verria2021-01-201-0/+61
| | | | | | Fixes: QTBUG-89540 Change-Id: I2cf8d0edae2769a53cadd667ab5ac4f9cb754a50 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix a bunch of compiler warningsLars Knoll2021-01-202-10/+10
| | | | | | Change-Id: I137b07f0909195019d136f1ce8926afd4bbb5e5f Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove gstreamer-0.10 code pathsLars Knoll2021-01-203-21/+0
| | | | | | | | 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>
* Add ; to Q_UNUSEDLars Schmertmann2020-06-281-1/+1
| | | | | | | | 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>
* 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>
* GStreamer: Add missing include for QStandardPathsVaL Doroshchuk2020-05-281-0/+1
| | | | | Change-Id: If458b16be7a7a8b3f6e8e3bb74391774b41bc884 Reviewed-by: Liang Qi <liang.qi@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 devQt Forward Merge Bot2019-07-306-64/+3
|\ | | | | | | Change-Id: I329eeefafed87ff7467d21d5d099cf9897660167
| * GStreamer: Implement fetching audio/video codecs by containerVaL Doroshchuk2019-07-176-64/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moved stream types to QGstCodecsInfo and added possibility to fetch audio or video codecs by a container. Or fetch containers by audio or video codec. It would allow to debug supported codecs and containers: QGstCodecsInfo containers(QGstCodecsInfo::Muxer); QGstCodecsInfo audioCodecs(QGstCodecsInfo::AudioEncoder); for (auto &container: containers.supportedCodecs()) qDebug() << audioCodecs.supportedCodecs(containers.supportedStreamTypes(container)); Change-Id: I26bf5579db6974a166d408c4865a9ffe314e3e15 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | Eradicate Java-style iterators and mark the module free of themMarc Mutz2019-07-042-6/+2
|/ | | | | | | | | | Java-style iterators are scheduled to be deprecated, or at the very least banned from use in Qt's own implementation. Ditto for QLinkedList. Change-Id: I5471c293a7a050b92db47f7aeac15dd05bd46650 Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
* Gstreamer: Emit stateChanged(StoppedState) when recording is finishedv5.12.0-beta1VaL Doroshchuk2018-09-282-3/+3
| | | | | | | | | | | | | | | | | | | When stop is requested, the state becomes QMediaRecorder::StoppedState and stateChanged() is sent immediately, also the status is changed from QMediaRecorder::RecordingStatus to QMediaRecorder::FinalizingStatus. But since stopping is asynchronous QMediaRecorder::StoppedState is sent before recording has been fully finished. When EOS is received from gstreamer and recording has been fully stopped, the status will be changed from QMediaRecorder::FinalizingStatus to QMediaRecorder::LoadedStatus and only in this case. So fixed to send stateChanged(QMediaRecorder::StoppedState) right after LoadedStatus. Task-number: QTBUG-69402 Change-Id: Ic7429a4bfea6b1f443a105a0540737072ad42de2 Reviewed-by: Christian Stromme <christian.stromme@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>
* Replace deprecated qSort() by std::sort()Friedemann Kleint2018-02-281-2/+4
| | | | | Change-Id: I74ffd5bafaef9ebbe7f12600ad831c8deb58ae64 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* GStreamer: Add missing override and remove redundant virtualAlexander Volkov2016-12-1312-66/+66
| | | | | Change-Id: I61997676d7f002e769de499b19cbea3d96876480 Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-12-123-6/+1
|\ | | | | | | | | | | | | Conflicts: src/plugins/gstreamer/mediacapture/qgstreameraudioencode.cpp Change-Id: I7c30c2d13fdd07ee07e4449d5d3e256e988d3793
| * Cleanup all maemo/meego specific codeLars Knoll2016-11-142-15/+0
| | | | | | | | | | Change-Id: I6c6f28084c6b030928eebc53c5d0009b168ede6a Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
| * Move qtmultimedia over to the new config systemLars Knoll2016-11-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Use the new configuration system to define external libraries, configure tests and features. Don't use pkg-config outside of the configuration step. And move all command line options over from qtbase, so that we can remove them from there in a second step. Change-Id: I1aa4b557a6aee17eeceb00602005a2d28b426a26 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
* | GStreamer use QGstCodecsInfo in QGstreamerVideoEncodeYoann Lopes2016-08-232-48/+28
| | | | | | | | | | | | | | | | Dynamically retrieve the list of available codecs rather than having a hardcoded list. Change-Id: Ib9c4d75b1b397f137b9021d8b7ed8646c0e84d14 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | GStreamer: use QGstCodecsInfo in QGstreamerMediaContainerControlYoann Lopes2016-08-232-49/+11
| | | | | | | | | | | | | | | | Dynamically retrieve the list of available codecs rather than having a hardcoded list. Change-Id: Ie78513b541786da2359c1853271536db2819aaaf Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* | GStreamer: use QGstCodecsInfo in QGstreamerAudioEncodeYoann Lopes2016-08-232-67/+26
|/ | | | | | | | | Dynamically retrieve the list of available codecs rather than having a hardcoded list. Task-number: QTBUG-50567 Change-Id: I00e4aaae567759e623898244d48ce1154fbffb3d Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-071-4/+4
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/avfoundation/mediaplayer/mediaplayer.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin1/mockserviceplugin1.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin2/mockserviceplugin2.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin3/mockserviceplugin3.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin4/mockserviceplugin4.pro tests/auto/unit/qmediaserviceprovider/mockserviceplugin5/mockserviceplugin5.pro Change-Id: I5742596230dc510ba2a09eba624429bb67179194
| * consistently put {qt,qml}_{module,plugin} at the end of project filesOswald Buddenhagen2016-02-251-4/+4
| | | | | | | | | | | | | | | | this fixes static builds by ensuring that all dependencies are exported. Task-number: QTBUG-51071 Change-Id: I8e1554b648327ea2fb342b882ce8e439bd6f271d Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Updated license headersAntti Kokko2016-01-1924-336/+480
| | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I324f65c61171f36641472964d095d72e452afb3a Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Gstreamer plugin: replace foreach with range-based forAnton Kudryavtsev2016-01-156-16/+20
| | | | | | | | | | Change-Id: Ic6d0f9d6b45eae1cdadc46783cb6f5bb7c64ac8c Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | fix expensive iteration over QMap::keys() and QHash::keys()Anton Kudryavtsev2016-01-141-2/+2
|/ | | | | Change-Id: I244aa1ecf006774ebe5fb9bb5b22d37142186e39 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* QtMultimedia: Fix build with CONFIG+=use_gstreamer_camera optionDenis Shienkov2015-11-111-1/+1
| | | | | Change-Id: If2d996545cc61c019f44c3c4f311b659513ff754 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into 5.6Yoann Lopes2015-10-203-10/+15
|\ | | | | | | Change-Id: Ie1e478eca1cdfd99ccd3a3c8a07aefbfa27ccbdb
| * GStreamer: fix compilation with version < 0.10.31.Yoann Lopes2015-10-203-10/+15
| | | | | | | | | | | | | | | | | | | | Qt 5.4 and earlier required GStreamer 0.10.24 as minimum version. Qt 5.5 added code that requires 0.10.31, this code is now ifdef'd and we now support again 0.10.24. Task-number: QTBUG-48353 Change-Id: Ie708a33c0515874b003ce26a3400475075d316ca Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Yoann Lopes2015-08-242-7/+6
|\| | | | | | | | | | | | | Conflicts: src/imports/multimedia/qdeclarativeaudio.cpp Change-Id: I57c6252b084e4ed796f6f308b2e0c717d0f59b13
| * GStreamer: refactored widget and window control.Yoann Lopes2015-08-181-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of always using xvimagesink as GStreamer backend for the widget and window control (works only with X11), we now try to pick a video sink that fits the current configuration. It first tries a set of known video sinks that can work with the Qt platform plugin in use. If none is available, it dynamically picks a video sink available on the system that can be used with our backend. Even if the video sink is now picked in a smarter way, xcb is still the only supported platform plugin. The reason is that it's the only Unix plugin which can provide a valid native window handle. Additional work is needed to support other plugins like wayland or directfb. Change-Id: I3843dea363d6a0b85a6cc1f2952783b743e48ac6 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
| * Avoid races when sending EOSRicardo Salveti de Araujo2015-08-181-2/+2
| | | | | | | | | | | | | | | | | | | | In order to avoid races when sending EOS, we need to make sure that the pipeline is in playing state first. Task-number: QTBUG-45707 Change-Id: I518e89badf38bea8ab8e2cead9a1ca09659af8b2 Reviewed-by: Timo Jyrinki <timo.jyrinki@canonical.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Use QSet::intersects() instead of QSet::intersect()Sergio Martins2015-05-301-2/+2
|/ | | | | | | It's much faster. Change-Id: Iee42359147ebb76b5848f3ac2e17eb92214c8ab6 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-242-2/+18
|\ | | | | | | | | | | | | | | | | Conflicts: qtmultimedia.pro src/gsttools/qgstreamervideowidget.cpp src/plugins/gstreamer/camerabin/camerabinservice.cpp Change-Id: I883f20dc17924ab42514a1aa00d16675a0f13d99
| * GStreamer: improved logic for window and widget controls usage.Yoann Lopes2015-02-182-2/+18
| | | | | | | | | | | | | | | | | | | | Provide these controls only when the xvimagesink gstreamer element is available. This allows QVideoWidget to fallback to QVideoRendererControl when xvimagesink is not available. Task-number: QTBUG-41618 Change-Id: I59f90ea8857c7ec0ffa08be9804e5458d95b79c4 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Update copyright headersAntti Kokko2015-02-1224-168/+168
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I1c6faa4f59f8eca54f01ef20941fa60161dd7872 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | GStreamer: port to 1.0.Yoann Lopes2014-11-278-342/+157
|/ | | | | | | | | | | | | | | 0.10 is still used by default. To enable GStreamer 1.0, pass GST_VERSION=1.0 to qmake for qtmultimedia.pro. Contributions from: Andrew den Exter <andrew.den.exter@qinetic.com.au> Ilya Smelykh <ilya@videoexpertsgroup.com> Jim Hodapp <jim.hodapp@canonical.com> Sergio Schvezov <sergio.schvezov@canonical.com> Change-Id: I72a46d1170a8794a149bdb5e20767afcc5b7587c Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-09-013-10/+22
|\ | | | | | | | | | | | | | | | | Conflicts: src/gsttools/qgstreamervideoinputdevicecontrol.cpp src/plugins/gstreamer/camerabin/camerabinserviceplugin.cpp src/plugins/gstreamer/mediacapture/qgstreamercaptureserviceplugin.cpp Change-Id: Ic854589562d2deeaa0ebf75840cb8a2ee32e99de
| * Detect V4L availabilityLisandro Damián Nicanor Pérez Meyer2014-08-184-10/+25
| | | | | | | | | | | | | | | | | | | | Do not build related stuff if not found. Makes GStreamer support available on Hurd. Task-number: QTBUG-39762 Change-Id: I1f70b6975e5bef99ab2441aac4d90508bc8b64bd Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | Update license headers and add new license filesAntti Kokko2014-08-2424-456/+264
| | | | | | | | | | | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: Ied06887225df341064c12bcc14c259ae74116f2e Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* | Provide face and orientation info from gstreamer camera backend.Andrew den Exter2014-07-122-86/+5
|/ | | | | | | | | | Cleans up duplicate device enumeration code so the devices listed by the QMediaServiceProviderPlugin are the same as those in the QVideoInputDeviceControl and includes face and orientation information if available. Change-Id: Iaa4c303c973bcf3e0f7c8c2fd7a7de629bccec86 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* GStreamer: correctly handle URLs from QMediaRecorder::setOutputLocationYoann Lopes2014-07-031-1/+8
| | | | | | Task-number: QTBUG-39949 Change-Id: Idf575b126bd3531655c8abda55c9e04149a4fb85 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Fix static initialization order fiasco in some plugins.Yoann Lopes2014-06-061-100/+82
| | | | | | | | | Some static variables were initialized using QMediaMetaData values, which are also statically initialized. Task-number: QTBUG-39202 Change-Id: Ibedc0a77d96cdfa575aad122c4ec654e6830e1f7 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* GStreamer: cleanup system includes.Yoann Lopes2014-04-072-23/+4
| | | | | | | | | | | | Replaced some linux includes with <private/qcore_unix_p.h> to be more portable. Use qt_safe_open() and qt_safe_close() instead of ::open() and ::close(). Task-number: QTBUG-38061 Change-Id: Idb3f50d070ec1701cafba98e79e2e85824653a3a Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Christian Stromme <christian.stromme@digia.com>