summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer
Commit message (Collapse)AuthorAgeFilesLines
* Normalize signal & slot signatures in connectionThiago Macieira2014-02-033-4/+4
| | | | | | | Profiling shows Qt Creator spends 2% of its load time normalizing Change-Id: I1a4bef16be79ced35c47da865153ebe1bee22f9c Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Yoann Lopes2014-01-3011-93/+367
|\ | | | | | | refs/staging/dev
| * Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-01-2211-93/+367
| |\ | | | | | | | | | Change-Id: Ifcb0e0bac29c11980ea2a9d67b12e1b79c4bd9f6
| | * Fix incorrect/missing application of recording settings in camerabin.Andrew den Exter2014-01-175-17/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't set profiles if no settings are specified. Apply all settings before starting a pipeline as the mode can switch without being restarted and incompatible video recording settings can prevent the pipeline starting even in image capture mode. Set audio encoding settings and encoder profiles if they are supplied. Change-Id: I06febf977c2cae306383f9dbaae0f81f531b4757 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| | * Fix writing orientation and date exif tags in camerabin.Andrew den Exter2014-01-172-4/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Orientation tags need to be transformed from the string tag returned by gstreamer to the orientation in degrees. Date tags need to be inserted with gst_date_time_new_local_time. Finally setting a tag value shouldn't clear all other tags. Change-Id: I28922148251084c12cf6c93d9b097fa5df41da9d Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| | * Remove workaround for resolved gstreamer bug.Andrew den Exter2014-01-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reloading the capture pipeline before recording is unnecessary and introduces a big pause. Don't do it. https://bugzilla.gnome.org/show_bug.cgi?id=649832 was resolved in gstreamer 0.10.23 Change-Id: I0de02af52dcc193bce7a4e3e61407ae1c2d3818c Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
| | * Allow the user to specify the viewfinder resolution instead of guessingAndrew den Exter2014-01-176-71/+247
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Guessing badly prevents the camerabin pipeline from loading at all and the fallbacks used are not representive of the capabilities of most cameras. So either stay out of the process and let gstreamer negotiate a resolution if it can, or use a resolution supplied through the viewfinder settings control by someone hopefully better informed. Task-number: QTBUG-30842 Change-Id: Iec2dcc2476f38822f9e0d02301e46a1f49b7c6da Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | | whitespace fixesOswald Buddenhagen2014-01-304-5/+5
|/ / | | | | | | | | | | | | | | remove trailing spaces & expand tabs. Change-Id: I05ef110abed90f13b47752760ffb4567a11a6a5e Reviewed-by: Yoann Lopes <yoann.lopes@digia.com> Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
* / Use QStringRef instead of QString whenever possible.Jędrzej Nowacki2014-01-153-3/+3
|/ | | | | | | That way we reduce count of temporary QString instances. Change-Id: Id806c68ea616828c2355c07b8576616fa6a8da17 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Only acquire resources as required in gstreamer backend.Andrew den Exter2014-01-1311-24/+105
| | | | | | | | | | | Make resources required for capture optional and disable just the capture features if they are not available, so the camera viewfinder can be displayed and images captured without blocking the music playback and the other way around. Change-Id: Ic9692195156d994ccd4a911ae41d2242a00d575b Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Fix playback with exotic gstreamer pipelines.Andrew den Exter2014-01-131-1/+7
| | | | | | | | | | Extend the list of raw video formats, and allow the playbin flags to be overridden by an environment variable when the default isn't suitable for whatever reason. Change-Id: I4c7d821b0ce29f5ad2dc0341e378ffd17c489e98 Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Fix configuration of camera settings in camerabin backend.Andrew den Exter2014-01-133-5/+44
| | | | | | | | | Enable gstphotography interfaces if the compile check passes, and implement missing pieces of whitebalance and focus configuration. Change-Id: Icd24dfd148204f8d8218176593c3120427a13e1e Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Allow the camerabin source selection to be overridden.Andrew den Exter2014-01-133-44/+54
| | | | | | | | | | | Prefer the default camera-source element if there is one or an element identified by an environment variable to a static list of possible elements which may not be appropriate for the target environment. Change-Id: I53816c949307953780f9046eb11e09effe059be0 Reviewed-by: John Brooks <john.brooks@dereferenced.net> Reviewed-by: Andy Nichols <andy.nichols@digia.com> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* GStreamer: add missing breaks in QGstreamerRecorderControl.Yoann Lopes2014-01-061-0/+3
| | | | | | Task-number: QTBUG-34914 Change-Id: I8237201cb656a3cde23e3d750939fe11e35519cd Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Some cleanup in the GStreamer plugin.Yoann Lopes2013-09-207-38/+29
| | | | | | | | | | | | Removed QGstreamerVideoOverlay and related classes. It was used as 'Window' control but performs worse than QGstreamerVideoWindow which does basically the same thing using GStreamer ready-made components instead. Removed X11 dependencies and related configuration tests. It was only needed for QGstreamerVideoOverlay. Change-Id: I2ad2636ccf0060e56cd64f3d9e5b3c24dc75f5a3 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Change libresourceqt's .pc file.Robin Burchell2013-08-051-1/+1
| | | | | | | | The one public port of this library to Qt 5 changed the .pc to libresourceqt5, to avoid clashing with the Qt 4 version. Change-Id: I6a248606e20c4e7a8f432612ca00aded846264d9 Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Multimedia plugins now have a unique JSON metadata 'Keys' property.Yoann Lopes2013-06-216-6/+12
| | | | | | | | | | | | | | | | | | | | | They previously had the multimedia services they provided as keys. This was a problem when several plugins were available on the same platform, providing the same multimedia service, but with different features or capabilities. Since they had the same key, only the first plugin in the directory was loaded. Nevertheless, it was actually working until commit 732dcfe7 in qtbase, as all plugins were loaded even when sharing the same key. The services a multimedia plugin provides are now declared in the 'Services' property. To preserve compatibility with third-party plugins, if that new property doesn't exist it falls back to the 'Keys' property. Task-number: QTBUG-31868 Task-number: QTBUG-31476 Change-Id: Ic3ba32eeef21b69b922bd3d4feb111101559d132 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Decouple qmediametadata.h from qmultimedia.hSze Howe Koh2013-05-145-0/+7
| | | | | | | | qmultimedia.h is included in more places, but qmediametadata.h is larger. This patch should reduce unnecessary #include-ing. Change-Id: I4a3d174bafc555d794bb75087c1f6b79745ae903 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Fix crash on idle status change with 64 bit architectures.Andrew den Exter2013-04-171-1/+1
| | | | | | | | | | bool and gboolean are not necessarily the same size on all architectures, and if gboolean is larger than bool then passing it as an argument to g_object_get can trash the stack. In this case overwriting some of the session pointer. Change-Id: Iaa7be6a327e9f69212bd7d5bb372d33f2026db0f Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* Fix warnings in qtmultimediaThiago Macieira2013-04-032-1/+3
| | | | | | | | | /camerabinresourcepolicy.cpp:100:42: error: unused variable 'oldSet' [-Werror=unused-variable] camerabincontrol.cpp:167:54: error: 'resourceSet' may be used uninitialized in this function [-Werror=maybe-uninitialized] qaudiooutput_pulse.cpp:416:20: error: unused variable 'bytesWritten' [-Werror=unused-variable] Change-Id: Idafd85b7985673f1f22d868b5f1b1e46a60ada4a Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* GStreamer: fixed build when using GST_PHOTOGRAPHY.Yoann Lopes2013-02-2812-185/+328
| | | | | | | | | | | | CameraBinExposure was reimplementing the Qt4 version of QCameraExposureControl instead of the refactored version of Qt5. Zoom features were still handled in CameraBinFocus but these have been moved to their own control in Qt5. Task-number: QTBUG-29300 Change-Id: I0c71cac6011137bc5457f0d362da44c72039004a Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* make use of qtHaveModule()Oswald Buddenhagen2013-01-111-2/+2
| | | | | | | Change-Id: I14da5455b7dd4681254e1652395df5f5c65746bd Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-1086-86/+86
| | | | | | Change-Id: Ia8c1c38aba1544603fada8c414cc856f365fd15b Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Add PLUGIN_CLASS_NAME to qtmultimedia pluginsMiikka Heikkinen2012-12-104-0/+4
| | | | | | | | Needed for automating static plugin loading. Task-number: QTBUG-28131 Change-Id: Ia392b112fc46dedd34c9ffdbd6e874dbbfeaef83 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix QGstreamerPlayerSession::availablePlaybackRanges()Andras Becsi2012-11-282-20/+15
| | | | | | | | | | | | | | | Since buffering information through buffering queries is only valid if progressive download buffering (on-disk caching) is enabled or local media is played and we explicitly disable on-disk buffering because of cleanup issues with gstreamer availablePlaybackRanges() always returns an empty range for online media. Seeking is also possible using http range requests therefore if valid playback ranges could not be determined we should return the [0..duration] range unless the source is a live stream or the duration is unknown. Change-Id: Idbebc0fdde5053c6f9c0b3794c6d122492c6239c Reviewed-by: Zeno Albisser <zeno.albisser@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Remove nonfunctional mediaDownloadEnabled propertyAndras Becsi2012-11-203-24/+3
| | | | | | | | | | | | | | I suppose this was introduced after an API freeze to try to support on-disk buffering but since the code does not set the GST_PLAY_FLAG_DOWNLOAD flag on the player element the feature is not only undocumented but also nonfunctional. If on-disk buffering is needed we should add proper API to enable/disable it for all backends which might be possible with Qt 5.1 the earliest. Change-Id: I6b42a06166509db0023a3e0263ecc3a36f0d2bdb Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Clean up QGstreamerPlayerSessionAndras Becsi2012-11-202-18/+3
| | | | | | | | Remove dead code and fix compiler warnings about unused and uninitialized variables. Change-Id: I809d905e13234db1dbc1b9c2a0ac887c5c712fc7 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Media is always set to be seekable with the gstreamer backendAndras Becsi2012-11-201-16/+9
| | | | | | | | | | | | | | Since the used mechanism for querying whether the media is seekable was unreliable the code has been commented out and the media always set to be seekable. Query for seeking capabilities after the duration is known in updateDuration() which retries to determine the duration multiple times if unsuccessful and use gst_query_parse_seeking to check if the media is seekable or not. Change-Id: I141dfb1616dc59f8c92a698ddb2867f63a2656b9 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com> Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Rename namespace QtMultimedia -> QMultimediaSze Howe Koh2012-11-0610-13/+13
| | | | | | | | | | | | | | | | Main code, examples, tests and docs updated. Method: 1. Mass find+replace "QtMultimedia::" -> "QMultimedia::" 2. Hand-modified declaration in qtmedianamespace.h/cpp For consistency (with minimal disruption), namespaces with a "Qt" prefix will be renamed. Part of the Header Consistency Project (http://lists.qt-project.org/pipermail/development/2012-October/007570.html) Change-Id: I1fbc43a1aa91d996aa61869fcd8d05186bf7cf6d Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Rename namespace QtMultimedia::MetaData -> QMediaMetaDataSze Howe Koh2012-11-066-153/+152
| | | | | | | | | | | | | | | | | | Main code, examples, tests and docs updated. Method: 1. Remove unused forward-declarations, "class QMediaMetaData" 2. Mass find+replace "QtMultimedia::MetaData" -> "QMediaMetaData" 3. Un-nest from the QtMultimedia namespace in qtmedianamespace.h For consistency (with minimal disruption), namespaces with a "Qt" prefix will be renamed. Also, Qt guidelines don't include nested namespaces (http://lists.qt-project.org/pipermail/development/2012-October/006756.html) Part of the Header Consistency Project (http://lists.qt-project.org/pipermail/development/2012-October/007570.html) Change-Id: I40e59c1cf58c1792725e735e9285c51bc5f226b1 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* adjust to qt_plugin.prf changesOswald Buddenhagen2012-11-054-22/+4
| | | | | | | | | | DESTDIR and INSTALLS+=target are set up automatically now. note that in the qmediaserviceprovider test we must override that. also, TARGET munging is done automatically. Change-Id: Ida5d5601e22b099134d1ec07ace713e0d0986bd6 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Make QGstreamerPlayerSession 'VAAPI-aware'.Yoann Lopes2012-10-172-0/+86
| | | | | | | | | | | | | | | | At the moment the GStreamer player pipeline is not setup properly when the VAAPI plugin is available, resulting in no video being shown. Added 'video/x-surface' as one of the default raw formats for the decodebin. Don't use vaapidecode when the video sink is not compatible. This is a preliminary patch to support VAAPI. In the current state vaapidecode will never be used as none of our video sinks support the video/x-surface format. Change-Id: I39f339b483d4052dd1e29c2b0ef06343d5670224 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-2486-2064/+2064
| | | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: Id77334cfb15de096941c88e32d04ca07b4eb4709 Reviewed-by: Janne Anttila <janne.anttila@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix gstreamer plugin build for platforms with qreal -> floatRomain Pokrzywka2012-09-141-1/+1
| | | | | | | | | | simple case of qFuzzyCompare with double and float. I kept m_volume as double rather than changing it to float, to mimic the behavior of the mute variable. Change-Id: Ife2f58f60738215ebd430ba94bef885c09994e72 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@gmail.com>
* centralize load(qt_build_config)s in .qmake.confOswald Buddenhagen2012-09-124-8/+0
| | | | | Change-Id: Ie07a32729ec8679f799613f8f6ccdd9c1b6bf7c9 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* Use QStandardPaths instead of QDesktopServicesThiago Macieira2012-08-022-4/+4
| | | | | | | | | The use of QDesktopServices for getting paths is deprecated in favour of QStandardPaths. Change-Id: I93c4a15dd65962d668c90e78f3f33f357e2450bb Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
* Replaced endpoint control with audio input and output controlsDmytro Poplavskiy2012-07-244-20/+20
| | | | | Change-Id: I981aabe39d106ced4ee1240db9e5b653c6fa5e91 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* Added volume property to QMediaRecorderDmytro Poplavskiy2012-07-196-4/+49
| | | | | Change-Id: I19f727107651c9f640ca1c010a3764f05aef8820 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* Gst player backend: removed fifo based stream playback fallbackDmytro Poplavskiy2012-07-193-137/+5
| | | | | | | | | | It was used on systems without appsrc element support, but since the appsrc is part of base elements for a long, thre is a very little value in fifo based fallback. Change-Id: I162233cbb55821443c892f00ebd29c0498ae7152 Reviewed-by: Ling Hu <ling.hu@nokia.com> Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* Camerabin camera service: configure default video settingsDmytro Poplavskiy2012-07-168-24/+107
| | | | | | | | | encodebin doesn't like the encoding profile with ANY container caps, if container and codecs are not specified try to find a commonly used supported combination Change-Id: Icbde042bd17d9682112fb8bbb8f0d506f6ddebe1 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* Updated the camerabin2 based camera with QtMultimedia changesDmytro Poplavskiy2012-07-1643-190/+746
| | | | | | | | | | | | | | Moved it to the separate plugin as the rest of gstreamer based services; Updated with libqgsttools_p changes; Implemented QMediaRecorder::status property; Made gst_photography dependency optional, it's not always available on desktop; Added video recording case to auto integration test; Moved backend implementation into qt namespace Task-number: QTBUG-26046 Change-Id: Iacfc1a6e263a4c0201d5eb28d04c960b87a230c0 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* Gst capture: use QDesktopServices for default storage locationDmytro Poplavskiy2012-07-091-0/+6
| | | | | Change-Id: Icff46f2dc88572beab2eb835e24424f15ff05616 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* Gst capture: report the actual media location to applicationDmytro Poplavskiy2012-07-041-0/+2
| | | | | Change-Id: I2ebc7b9607fe499e2465428118bff3fe98e58672 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
* Gst Capture: image capture fixesDmytro Poplavskiy2012-06-293-2/+25
| | | | | | | | | Report camera is ready to capture only in image capture modes; Emit capture failed if camera not configured for capture Change-Id: Ia2b92e2f8c760db948185a29c3e5ceae81dd3af4 Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com> Reviewed-by: Ling Hu <ling.hu@nokia.com>
* Gst capture service: capture mode fixesDmytro Poplavskiy2012-06-293-6/+22
| | | | | | | | | | Fixed reporting the current capture mode Set the correct default capture mode Allow viewfinder only and Video+Image capture modes Change-Id: Ib12504304bca22fe664631ff5ffbc0a392ba34a8 Reviewed-by: Ling Hu <ling.hu@nokia.com> Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
* Gst capture: don't wait for pipeline to stopDmytro Poplavskiy2012-06-292-15/+0
| | | | | | | | State changes to lower state are synchronous in gstreamer Change-Id: Ib87eabfeee9ec100f24efbaa989ec909ac7f9a1b Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com> Reviewed-by: Ling Hu <ling.hu@nokia.com>
* Allow gst video capture startup without viewfinder attached.Dmytro Poplavskiy2012-06-291-1/+2
| | | | | | Change-Id: I5f0b7dc12f4ee8e988d6107047d963949bcdb5bf Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com> Reviewed-by: Ling Hu <ling.hu@nokia.com>
* Rename availabilityError to availability.Michael Goddard2012-06-292-3/+3
| | | | | | | It's perhaps clearer in the usual case. Change-Id: Id3cef82ac83f8c9b538b3315281664ce1c6a2b96 Reviewed-by: Ling Hu <ling.hu@nokia.com>
* Rename a few controls.Michael Goddard2012-06-2912-28/+28
| | | | | | | | | | The encoder controls could be confused with actual encoding, so make clear they are just settings. Also, the end point selector controls were not named very well. Change-Id: I27f8bf9c865c5f295abad97c01ef98752af42613 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Ling Hu <ling.hu@nokia.com>
* build system cleanupsOswald Buddenhagen2012-06-254-4/+4
| | | | | | | | | | | | | | | | | - load(qt_module) => load(qt_build_config) - remove: - CONFIG+=module (obsolete) - code relating to module version headers (automated now) - %mastercontent assignment (automated now) - QT_BUILD_*_LIB defines (automated now) - pointless QPRO_PWD assignments - pointless DEFINES+=QT_MAKEDLL - pointless and commented out include and depend paths - qmake -project boilerplate Change-Id: I8f4586403848fe8f2dff4e889b389956ffcdea59 Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com> Reviewed-by: Michael Goddard <michael.goddard@nokia.com>