summaryrefslogtreecommitdiffstats
path: root/src/gsttools
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-151-3/+0
|\ | | | | | | | | | | | | | | Conflicts: src/multimedia/playback/playlistfileparser.cpp src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp Change-Id: I52950def2b8283ae15797d05d4ead6a1256eba19
| * GStreamer: don't use ximagesink in QGstreamerVideoWidget.Yoann Lopes2015-03-241-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When xvimagesink is not available, we were falling back to ximagesink. That element doesn't provide some important features: it doesn't scale frames to the window size and doesn't support brightness, contrast, hue and saturation adjustments. That kind of makes it useless, at least on its own. We would need to use at least a 'videoscale' element together with it to have it working properly. We're better off letting QVideoWidget fall back to QVideoRendererControl when xvimagesink is not available. Change-Id: Ic8c62fbefa3227430e3bae24630c8b3944aabb47 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | GStreamer 1.0: fix frames being presented too many times.Yoann Lopes2015-04-071-9/+8
| | | | | | | | | | | | | | | | | | | | | | Presenting a frame originates from a gstreamer thread, we block there until the frame is actually presented in the main thread. The problem is that it was presented over and over again until the gstreamer thread was unblocked. Make sure a given frame is presented only once. Change-Id: I46f246740313968637add802f509ebffcc5c19b8 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* | GStreamer: implement unlock() in QGstVideoRendererSink.Yoann Lopes2015-04-072-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | There are cases where blocking operations happening in the video sink need to be unblocked, that's why GstBaseSink has an unlock() virtual function. Since our custom video sink blocks when starting and when rendering a frame (while waiting for the main thread to actually do these operations), we need to implement the unlock() function in order to unblock these operations when requested by GstBaseSink. Change-Id: I5cb19ea689e655f572729d931cefec8a4266c94e Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* | GStreamer 1.0: show preroll frames.Yoann Lopes2015-04-071-2/+4
| | | | | | | | | | | | | | | | | | | | We need to implement the show_frame() function from GstVideoSink, which handles both preroll and normal frames, instead of just GstBaseSink.render(), which is called only for normal frames. This was changed for GStreamer 0.10 by 3b20608f. Change-Id: I4823a575d499cd0d6f9f4cb62e0420e070a05214 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* | Remove stray <QtNetwork> includesAndrew Knight2015-03-301-1/+0
| | | | | | | | | | | | | | | | Module includes slow down the build when PCH is disabled, so don't use them. Change-Id: Ic0bf0d938ef06dea9dba6897df592311230a6529 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-03-171-26/+23
|\| | | | | | | Change-Id: Id24f14bef17b86e7027e055473f0357854780979
| * Revert "Alsa: fix crash when detecting devices."Yoann Lopes2015-03-111-26/+23
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0ab81ef59f35d103ec8174834c4fc2a4dcced453. The workaround causes software devices not to appear in the list of available devices. Besides, since the crash is caused by a bug in older versions of Alsa, the workaround was probably a bad idea in the first place. People should update Alsa instead. Task-number: QTBUG-42326 Change-Id: I37923a87180d1c5abc18d52d84f633e14ba46860 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-03-031-0/+7
|\| | | | | | | | | | | | | Conflicts: src/gsttools/qgstutils.cpp Change-Id: Ic54ab6c6560ded0db4b98f83256d997bee828083
| * Fixing camera enumeration on hotplugLibor Tomsik2015-02-251-0/+7
| | | | | | | | | | | | | | | | | | | | Emptying camera HW devices buffer when it becomes obsolete (500ms). Leaving the list filled was causing video cameras to keep on the list even when the camera was unplugged. Or vice versa, empty after the camera was plugged into the system. Change-Id: I3b38a0b327553cbb6e18dd5421cdde3ded1b7895 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-241-20/+17
|\| | | | | | | | | | | | | | | | | 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-181-22/+17
| | | | | | | | | | | | | | | | | | | | 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>
* | GStreamer 1.0: fix some problems with QGstVideoRendererSink.Yoann Lopes2015-02-181-89/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | - Correctly free resources on deletion. - Correctly stop the sink. We were stopping only when null caps were passed to set_caps() but that doesn't seem to always happen. Implement GstBaseSink.stop() which is always and consistently called by GStreamer. - Remove pre-roll support (as done previously for 0.10, see commit 3b20608f). Change-Id: I4c5808938f244f4f8a35e121a3a4a862588b752d Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | GStreamer: implemented QCameraViewfinderSettingsControl2.Yoann Lopes2015-02-181-66/+154
| | | | | | | | | | Change-Id: I4436e39c152f6c251792c1504d4a7b57db7b9d9a Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | GStreamer 1.0: fix frame rate retrieved with QGstUtils::formatFromCaps.Yoann Lopes2015-02-181-1/+1
| | | | | | | | | | Change-Id: I88e8416e50440bbd14b34a8b2b3b262b5c8401ab Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
* | Update copyright headersAntti Kokko2015-02-1222-196/+172
| | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-12-171-0/+2
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I31e377cdccf8bf5c1ea8143faf2001ac99608c27
| * GStreamer: better camera device name logic.Yoann Lopes2014-12-091-0/+2
| | | | | | | | | | | | | | | | Use the device ID for QCameraInfo::description() when the driver doesn't provide any display name. Change-Id: Iff1f17187ecb52262412f85db04d7108fae71717 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* | GStreamer: port to 1.0.Yoann Lopes2014-11-2716-329/+2300
|/ | | | | | | | | | | | | | | 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>
* Fix Clang warning about comparison of different signsThiago Macieira2014-11-241-1/+1
| | | | | | | | | | Commit 4d35f66acf90e64e6c174bee9d809713d07fcd7e changed from -1 to ~0 because ICC complained, but Clang still sees ~0 as int. So force to unsigned. qgstappsrc.cpp:144:31: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare] Change-Id: I6b0fdf8dc5df157d8e184f22dba44660e60ca3b2 Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* Add QT_GSTREAMER_CAMERABIN_VIDEOSRC environment variable.Yoann Lopes2014-10-301-5/+20
| | | | | | | | | It can be used to set which video source element should be used by the camerabin. Change-Id: I8d1cd8c4ba6fe5a89817699f645b0997e713aaca Reviewed-by: Samuli Piippo <samuli.piippo@digia.com> Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Ensure pre-roll frames are displayed when gstreamer backend is paused.Andrew den Exter2014-09-121-82/+4
| | | | | | | | | | | | Perform a seek before transitioning from the stopped state to paused or playing to force the pipeline to resupply the video sink with any pre-roll buffer it may have previously ignored during loading. And don't assume showPrerollFrames to be true if the current state is not stopped as the policy handling may have prevented an effectual state change. Change-Id: I288a70bc4da32f3534eab4b14702ca8f8fdb4222 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Fix V4L usage.Yoann Lopes2014-09-091-2/+6
| | | | | | | | | ff527de0 was submitted to 5.3 while cddbe873 was submitted to 5.4. The former's behavior was not preserved when 5.3 got merged into 5.4. Change-Id: I7435ea30634001ae6e87c316eb8a8ab6f5e988e3 Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-09-011-0/+2
|\ | | | | | | | | | | | | | | | | 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-182-0/+7
| | | | | | | | | | | | | | | | | | | | 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-2418-342/+198
| | | | | | | | | | | | | | | | | | - 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-73/+177
| | | | | | | | | | | | | | | | | | | | 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>
* | Fix change-of-sign warningThiago Macieira2014-07-071-3/+3
|/ | | | | | | qgstappsrc.cpp(54): warning #68: integer conversion resulted in a change of sign Change-Id: I0bf8c93cb5e27114a8857dc650ac506152607491 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Tell glib not to complain about the use of API recently deprecatedThiago Macieira2014-04-071-0/+1
| | | | | | | | | | | | | | | | | When building with glib 2.32 or later, without this #define, it prints a warning saying: function "g_value_get_char" was declared deprecated ("Use 'g_value_get_schar' instead") Since g_value_get_schar is new in 2.32, we can't use it without #ifdef around the call point. Since the old and new functions are identical in behavior, just ask glib not to complain about the use of old functions. I don't know which is the minimum version of glib we require, so I went for the lowest available macro. Change-Id: I33f9aa8497fc6bd50fffb3c59ee7e8e7fcdfe110 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* GStreamer: cleanup system includes.Yoann Lopes2014-04-072-13/+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>
* GStreamer: fix memory leaks.Yoann Lopes2014-03-217-7/+36
| | | | | | | Many GStreamer objects were not properly managed or never released. Change-Id: I38b3854e8b9e2264b5b647f331d3bb16b886e2d6 Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
* Alsa: fix crash when detecting devices.Yoann Lopes2014-01-301-23/+26
| | | | | | | | | Some old versions of Alsa crash when snd_device_name_hint(-1, ...) is called. This patch works around the problem by iterating manually over all the available sound cards. Change-Id: Ic380a371acc15013d137553ff30d68bed5af664e Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Yoann Lopes2014-01-301-20/+21
|\ | | | | | | refs/staging/dev
| * Fix sending End Of Stream on gst pluginDaniel Nicoletti2014-01-271-20/+21
| | | | | | | | | | | | | | | | | | | | | | | | When streaming to gst a typefind operation is performed which jumps around to find which codec the file provides, this fix the call to send an EOS before we try to read and not after which causes confusion to gst. Task-number: QTBUG-32963 Change-Id: I2658b6a4e960430c8ab422a3bee5e11956663116 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* | whitespace fixesOswald Buddenhagen2014-01-301-1/+1
|/ | | | | | | | 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>
* Allow the camerabin source selection to be overridden.Andrew den Exter2014-01-131-6/+21
| | | | | | | | | | | 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>
* use private linkage where possibleOswald Buddenhagen2013-10-311-8/+8
| | | | | | Task-number: QTBUG-34463 Change-Id: Iffbeed2f1a27fd38b5960afa9715815ac11b722a Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
* Some cleanup in the GStreamer plugin.Yoann Lopes2013-09-207-1133/+6
| | | | | | | | | | | | 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>
* QGstTools: Fix warning about unused m_intervalTimerTobias Hunger2013-09-021-0/+2
| | | | | | | Clang does complain about this member not being used. Change-Id: I02919715be43486f4646ca75deea66fc8a6a2276 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
* WMF and GStreamer: fixed incorrect frame startTime and endTime.Yoann Lopes2013-08-221-2/+3
| | | | | | | | | | | | The QVideoFrame documentation explicitly says that the time is in microseconds, however the GStreamer backend was setting the time in milliseconds and the WMF backend in 100-nanosecond units. With WMF, the time was missing from the QVideoFrame when presenting it to the video surface. Task-number: QTBUG-31731 Change-Id: I0638d2abf8eed25b3a531db67c19a18703e5b630 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>
* Reset VideoSurface pointer when deletedDominik Holland2013-04-231-2/+2
| | | | | Change-Id: Iec74c8a8b914d2c2765e0e1f319d89f3daedfe3f Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Fix warnings found by GCC 4.8 in qtmultimediaThiago Macieira2013-04-112-4/+5
| | | | | | | | qgstreamermessage.cpp:48:12: warning: ‘wuchi’ defined but not used [-Wunused-variable] qvideosurfacegstsink.cpp:383:1: warning: narrowing conversion of ‘4278190080u’ from ‘unsigned int’ to ‘int’ inside { } [-Wnarrowing] Change-Id: I678e9eb39f3963e20109bb15c9c0c0d118b5a3b2 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-1021-21/+21
| | | | | | Change-Id: Ia8c1c38aba1544603fada8c414cc856f365fd15b Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* remove obsolete DEPENDPATH assignmentsOswald Buddenhagen2012-12-161-1/+0
| | | | | | | | qmake now add CONFIG+=depend_includepath by default, making manual DEPENDPATH setup unnecessary. Change-Id: Iffd78b4c7cf8d048a822b75c481ac380b3d8d0f4 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Rename namespace QtMultimedia -> QMultimediaSze Howe Koh2012-11-061-5/+5
| | | | | | | | | | | | | | | | 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>
* fix VPATHOswald Buddenhagen2012-11-051-0/+1
| | | | | | | | | the code relied on the now removed qmake misfeature of adding DEPENDPATH to VPATH. Change-Id: I3bea30a25776eb945fbd65f9e9811c91d882893f Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-2421-506/+506
| | | | | | | | | 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>
* Remove the WA_PaintOnScreen widget attribute for vide widgetsLars Knoll2012-08-081-1/+0
| | | | | | | | | This attribute doesn't quite do what it used to do in Qt 4.x anymore, and will lead to Qt not painting the video at all. Change-Id: I2338815756cab82ae152058ff5a7b5f14e07001e Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>