Liang Qi [Wed, 8 Apr 2015 19:24:43 +0000 (21:24 +0200)]
Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: I17ddd1ce77e07cf75567e2dc723e29d54088f68e
Yoann Lopes [Wed, 18 Feb 2015 15:58:02 +0000 (16:58 +0100)]
QMediaPlayer: handle resource files in a cross-platform way.
It was the backend's responsibility to handle resource files in an
appropriate way. In practice, it was either not handled at all,
or implemented in an almost identical manner in every backend
that does handle it.
This is now dealt with in QMediaPlayer, always passing to the
backend something it will be able to play. If the backend has the
StreamPlayback capability, we pass a QFile from which it streams
the data. If it doesn't, we copy the resource to a temporary
file and pass its path to the backend.
Task-number: QTBUG-36175
Task-number: QTBUG-42263
Task-number: QTBUG-43839
Change-Id: I57b355c72692d02661baeaf74e66581ca0a0bd1d
Reviewed-by: Andrew Knight <qt@panimo.net>
Reviewed-by: Peng Wu <peng.wu@intopalo.com>
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Friedemann Kleint [Wed, 1 Apr 2015 15:09:45 +0000 (17:09 +0200)]
Fix debug stream operators.
- Use QDebugStateSaver to restore space setting in stream operators
instead of returning dbg.space() which breaks formatting on streams
that already have nospace() set.
- Fix some single character string constants, streamline code.
Change-Id: I18ae7324b172ea801aa9b5fe56ddf6fe527fdde9
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Yoann Lopes [Mon, 30 Mar 2015 14:49:52 +0000 (16:49 +0200)]
Fix incorrect warning in QML AudioEngine.
We need to do an early return when an AudioCategory is successfully
added to an AudioEngine, otherwise a warning is incorrectly shown.
Change-Id: If310c694a703242aff7f1c5ae04ad3e40c3f1acd
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Tue, 24 Mar 2015 15:50:31 +0000 (16:50 +0100)]
GStreamer 1.0: fix frames being presented too many times.
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>
Yoann Lopes [Tue, 24 Mar 2015 15:41:51 +0000 (16:41 +0100)]
Don't error out when presenting empty frames in QSGVideoItemSurface.
There's no good reason to do so. Backends can actually provide empty
frames, for example when flushing the pipeline or after stopping
playback.
Change-Id: I687c12b667e31b25e91c3201f59c52a8969d8e05
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Yoann Lopes [Mon, 23 Mar 2015 13:28:41 +0000 (14:28 +0100)]
GStreamer: implement unlock() in QGstVideoRendererSink.
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>
Yoann Lopes [Mon, 23 Mar 2015 11:07:47 +0000 (12:07 +0100)]
GStreamer 1.0: show preroll frames.
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>
Andrew Knight [Mon, 30 Mar 2015 12:35:47 +0000 (15:35 +0300)]
Remove stray <QtNetwork> includes
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>
Sergio Martins [Sat, 28 Mar 2015 17:26:20 +0000 (17:26 +0000)]
Fix QNX 6.6 build by using qSqrt() and qLn()
spectrumanalyser.cpp: In member function 'void SpectrumAnalyserThread::calculateSpectrum(const QByteArray&, int, int)':
spectrumanalyser.cpp:138:59: error: 'sqrt' was not declared in this scope
Change-Id: Ib43c693d73d2342059092094cfc3f48a0f73b4bc
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Sergio Martins [Thu, 19 Mar 2015 21:18:44 +0000 (21:18 +0000)]
Fix inconsistent overrides. [-Winconsistent-missing-override]
Change-Id: Icb3e2a640c122424704a8e4b10172ecc7602845a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Timur Pocheptsov [Wed, 18 Mar 2015 10:36:50 +0000 (11:36 +0100)]
Add NV12/NV21 support into SG videonode.
Add new fragment shaders and update declarative render (video node) to support NV12/NV21
pixel format.
Task-number: QTBUG-45021
Change-Id: I5d52007f0da56165752268d06efca156f7496b42
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Timur Pocheptsov [Tue, 17 Mar 2015 08:48:54 +0000 (09:48 +0100)]
AVFCameraViewfinderSettings - add NV12 format
Add QVideoFrame::Format_NV12 (AVFoundation has kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange
and kCVPixelFormatType_420YpCbCr8BiPlanarFullRange). Report it (set it) only if
it's supported by renderer's surface. Add bi-planar format support into CVPixelBufferVideoBuffer.
Change-Id: Ibc1c2be056bddf5cf3b595570fc40c626ee3ccf5
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Liang Qi [Tue, 17 Mar 2015 15:40:27 +0000 (16:40 +0100)]
Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: Ic09d6310fcb6d8198b6ec2dc0459c1694e9df8c9
Peng Wu [Thu, 12 Mar 2015 07:45:02 +0000 (00:45 -0700)]
Fix WinRT Audio elements cannot play Qt resouce audio files
URL argument of Windows media API SetSourceFromByteStream can not be
empty. Initial proper value for playing audio stream case.
Task-number: QTBUG-42263
Change-Id: If0bb44b60d517228bfe8b6cb30afeeb4a8ac62d3
Reviewed-by: Andrew Knight <qt@panimo.net>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Frederik Gladhorn [Tue, 17 Mar 2015 08:48:51 +0000 (09:48 +0100)]
Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: Id24f14bef17b86e7027e055473f0357854780979
Laszlo Agocs [Thu, 12 Mar 2015 13:32:34 +0000 (14:32 +0100)]
Improvide device selection in the video filter example
The non-OS X path also uses clGetGLContextInfoKHR when available,
instead of just blindly taking the first GPU device for the platform.
This way we get the correct OpenCL device in case the application is using an
OpenGL context on the same vendor's second GPU.
On Windows desktop OpenGL is now correctly forced and therefore there is
no need to waste time on runtime checks for ANGLE later on.
Remove the hard-coded custom pathes from the .pro file.
Also fixes error reporting on the OS X specific path.
Change-Id: I8d6ab867510d113d5135b61e66822381e81c995a
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Yoann Lopes [Thu, 12 Mar 2015 15:06:26 +0000 (16:06 +0100)]
QPainterVideoSurface: restore original order for the supported formats.
The formats returned by supportedPixelFormats() are supposed to be in
descending order of preference. Some formats were changed positions
in commit
66ba2197.
Change-Id: Ib52e93ba3554d80fa388a01f0b47fa049ac046ec
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Yoann Lopes [Wed, 11 Mar 2015 13:32:17 +0000 (14:32 +0100)]
Revert "Alsa: fix crash when detecting devices."
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>
Friedemann Kleint [Mon, 9 Mar 2015 11:31:11 +0000 (12:31 +0100)]
Fix uninitialized memory reads in MFAudioDecoderControl.
Initialize all members in constructor.
[W] UMR: Uninitialized memory read in MFAudioDecoderControl::handleMediaSourceReady(void) {1 occurrence}
Error location
MFAudioDecoderControl::handleMediaSourceReady(void) [c:\qt\qt-55-32\qt-55-32\qtmultimedia\src\plugins\wmf\decoder\mfaudiodecodercontrol.cpp:254]
[W] UMR: Uninitialized memory read in MFAudioDecoderControl::activatePipeline(void) {1 occurrence}
MFAudioDecoderControl::activatePipeline(void) [c:\qt\qt-55-32\qt-55-32\qtmultimedia\src\plugins\wmf\decoder\mfaudiodecodercontrol.cpp:289]
Task-number: QTBUG-40571
Change-Id: I6f97cf72284f739ceffcf65162963d00de979ea2
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Friedemann Kleint [Mon, 9 Mar 2015 11:34:40 +0000 (12:34 +0100)]
Free d in QAudioBuffer &QAudioBuffer::operator =(const QAudioBuffer &).
Task-number: QTBUG-40571
Change-Id: Idc2dcc7d254873edda653b9c9eb8d88cbb91d4f6
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Timur Pocheptsov [Wed, 4 Mar 2015 15:34:32 +0000 (16:34 +0100)]
AVCaptureDeviceFormat - avoid duplicates (OS X/iOS)
Excluding video range (iOS) is not the right way to avoid "duplicates" - with
other devices there can be also duplicates (formats with the same resolutions),
but completely different pixel formats. Since we do not know what they will be in advance,
we take the media subtype from the initial preset for a capture device and use it
as a filter. Update viewfinder and image encoder settings controls.
Change-Id: If20aea24b19b43574d5c3e9bf2ba85f50fc08916
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Yoann Lopes [Thu, 26 Feb 2015 15:16:49 +0000 (16:16 +0100)]
Android: fix some MediaPlayer signals not being emitted on first load.
When loading the first media while the video output was not yet ready,
mediaChanged() and mediaStatusChanged() signals were not emitted.
That's because in that particular situation, the backend believed
the delayed loading was a reload of the same media.
Change-Id: If5dfbf383ea2dac065fc26b70640ebfb2c52862d
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Tue, 24 Feb 2015 13:37:39 +0000 (14:37 +0100)]
Improve QMediaPlayer auto tests.
Use test data only for test functions that require it.
Change-Id: I7fde1ba53ee8d2f5294597fd309a6e7d7dbbe15d
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Frederik Gladhorn [Tue, 3 Mar 2015 17:18:12 +0000 (18:18 +0100)]
Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
src/gsttools/qgstutils.cpp
Change-Id: Ic54ab6c6560ded0db4b98f83256d997bee828083
Frederik Gladhorn [Tue, 3 Mar 2015 17:13:51 +0000 (18:13 +0100)]
Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: Idd1e7cf9f11d05b8d1a19ba349474eda67bc705a
Timur Pocheptsov [Thu, 12 Feb 2015 09:17:09 +0000 (10:17 +0100)]
Image encoder control - version for OS X/iOS
QImageEncoderControl - implementation for AVFoundation plugin (OS X/iOS,
at the moment iOS >= 7.0).
Change-Id: Ibc2c3ae48252dd4698e263f5abca5c328482d5e7
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Timur Pocheptsov [Tue, 10 Feb 2015 08:29:29 +0000 (09:29 +0100)]
Viewfinder settings control (1) for OS X/iOS
QCameraViewfinderSettingsControl - version for AVFoundation plugin
('obsolete' viewfinder settings control interface, camera session uses v2
instead). v1 is implemented using v2 (the v2 object from camera service).
Change-Id: I81207b52b0ba5a67e64465f0e5e0c80d7267df3e
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Timur Pocheptsov [Wed, 28 Jan 2015 16:51:19 +0000 (17:51 +0100)]
Viewfinder settings control (2) - version for iOS/OS X
QCameraViewfinderSettingsControl2 - version for AV foundation plugin
(the new settings control interface implemented).
Change-Id: I3fbfb87925e57c914d43eb711fa5422e26981207
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Timur Pocheptsov [Fri, 20 Feb 2015 08:43:39 +0000 (09:43 +0100)]
Add AVF camera utilities - general aux. functions/classes
Move configuration lock class into avfutility.h + add several standalone functions
to work with AVCaptureDeviceFormat/AVCaptureDevice etc. - utility functions that are not
specific to any class.
Change-Id: Idba544248772a3b2a4e00dddb377b1c0e62b8085
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Andy Shaw [Thu, 26 Feb 2015 23:31:59 +0000 (00:31 +0100)]
Check for the quick module before adding the videonode plugin
Change-Id: I050356086f5d82221968016754eb01c1b8f35490
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Yoann Lopes [Fri, 19 Dec 2014 19:08:58 +0000 (20:08 +0100)]
DirectShow: implemented QCameraViewfinderSettingsControl2.
Change-Id: I42ed49676e2fbc7207d8fe4579ad1fc0d62df138
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Frank Osterfeld [Tue, 24 Feb 2015 21:40:55 +0000 (22:40 +0100)]
ios: Enable volume and mute functionality
AVPlayer::setVolume and setMute also exist on iOS, so no need to ifdef
them to be OS X-only. As they require iOS 7.0, add runtime checks to
ensure that the methods exist.
Task-number: QTBUG-39240
Change-Id: I10810705cef8e5d8c18e4c79a15fa06425ea57f9
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Reviewed-by: James Turner <james.turner@kdab.com>
Frank Osterfeld [Sun, 22 Feb 2015 12:15:03 +0000 (13:15 +0100)]
ios: Do not leak texture cache objects
Do not recreate m_textureCache if it already exists. This changes the
memory allocation behavior of a simple iOS example program from
linearly increasing to constant over time.
Change-Id: I6ff13b586c653fb7b4cadfa9f4ebf985b07ee455
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Libor Tomsik [Tue, 24 Feb 2015 12:51:34 +0000 (13:51 +0100)]
Fixing camera enumeration on hotplug
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>
Frederik Gladhorn [Tue, 24 Feb 2015 16:38:46 +0000 (17:38 +0100)]
Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
qtmultimedia.pro
src/gsttools/qgstreamervideowidget.cpp
src/plugins/gstreamer/camerabin/camerabinservice.cpp
Change-Id: I883f20dc17924ab42514a1aa00d16675a0f13d99
Oswald Buddenhagen [Tue, 24 Feb 2015 15:23:09 +0000 (16:23 +0100)]
Bump version
Change-Id: Ie3aa84629ab6d8515f9db4924fb36a0dd8b0cb47
Laszlo Agocs [Mon, 23 Feb 2015 13:50:11 +0000 (14:50 +0100)]
Add Linux and AMD support to the OpenCL filter example
Change-Id: I1ea91f93677c53322c3867db6069e4362c58cebd
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Oswald Buddenhagen [Tue, 24 Feb 2015 10:02:24 +0000 (11:02 +0100)]
Merge dev into 5.5
Change-Id: I715a549b4cc10220a6e3b48799fdc38865a9345e
Friedemann Kleint [Fri, 20 Feb 2015 13:35:55 +0000 (14:35 +0100)]
Fix some qdoc-warnings.
qtmultimedia/src/multimedia/qmediaserviceprovider.cpp:850: warning: Cannot find 'defaultDevice(...)' in '\fn' QMediaServiceSupportedDevicesInterface::defaultDevice(const QByteArray &service) const
qtmultimedia/src/multimedia/qmediaserviceprovider.cpp:850: warning: Cannot find 'defaultDevice(...)' in '\fn' QByteArray QMediaServiceSupportedDevicesInterface::defaultDevice(const QByteArray &service) const
qtmultimedia/src/multimedia/video/qabstractvideofilter.cpp:261: warning: Undocumented parameter 'parent' in QAbstractVideoFilter::QAbstractVideoFilter()
Change-Id: I72bfc1dc7697cd1323cb7aad16539932ace9d8ea
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Sergio Ahumada [Sun, 22 Feb 2015 22:21:39 +0000 (22:21 +0000)]
Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/dev
Rafael Roquetto [Thu, 12 Feb 2015 10:04:11 +0000 (08:04 -0200)]
Remove BlackBerry PlayBook support.
Change-Id: I21f9c21bd3badd30f3a989ce3412c9ad03f5f21d
Reviewed-by: Bernd Weimer <bernd.weimer@pelagicore.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Yoann Lopes [Thu, 5 Feb 2015 15:37:58 +0000 (16:37 +0100)]
GStreamer: some improvements with the camerabin's capture settings.
- Don't pretend we support changing the image or video capture
settings while the camera is active. The pipeline needs to be
restarted in order to renegotiate caps.
- Improved retrieving the supported capture resolutions and frame
rates when using wrappercamerabinsrc. We now always get the
supported values directly from the video source.
Change-Id: I107193288e370af105a25d16568a8f5a76022ada
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Thu, 5 Feb 2015 15:34:27 +0000 (16:34 +0100)]
GStreamer: improve camerabin audio settings checking.
Don't try setting a sample rate or a channel count equal to 0.
Change-Id: Ib2e1728f0d9af09df9c4d3fd1322b5cb174a2981
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Thu, 29 Jan 2015 15:17:21 +0000 (16:17 +0100)]
GStreamer camerabin: don't recreate camera source on device change.
Change-Id: If62573b11c8e3112d386d93de9a504f49965d597
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Thu, 29 Jan 2015 11:35:40 +0000 (12:35 +0100)]
GStreamer: remove unused function and enum.
Change-Id: I67b329784d94e60b94c10d4a8942d02b050e0b2c
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Thu, 29 Jan 2015 11:24:45 +0000 (12:24 +0100)]
GStreamer: runtime check for controls that require GstPhotography.
Exposure, Flash, Focus and Locks controls were always initialized,
even when the GstPhotography interface was not available (on desktop
for example), causing some warnings and fooling the user in believing
that these features were available.
These controls are now lazily initialized and only when
GstPhotography is available.
The zoom control is not compile-checked anymore since it doesn't
actually require GstPhotography.
Change-Id: I5e8315d796dd920c9c29ccfa4155707f5f0fd7dc
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Wed, 28 Jan 2015 14:17:57 +0000 (15:17 +0100)]
GStreamer 1.0: fix some problems with QGstVideoRendererSink.
- 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>
Yoann Lopes [Mon, 19 Jan 2015 13:20:53 +0000 (14:20 +0100)]
GStreamer: implemented QCameraViewfinderSettingsControl2.
Change-Id: I4436e39c152f6c251792c1504d4a7b57db7b9d9a
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Mon, 26 Jan 2015 12:29:00 +0000 (13:29 +0100)]
GStreamer 1.0: fix frame rate retrieved with QGstUtils::formatFromCaps.
Change-Id: I88e8416e50440bbd14b34a8b2b3b262b5c8401ab
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Wed, 21 Jan 2015 13:11:42 +0000 (14:11 +0100)]
GStreamer: fix camerabin state and status changes.
Not all status changes where reported and setting the QCamera
to LoadedState was not actually loading anything.
State and status changes have been refactored.
Camera status is now reported directly by the camera session.
Setting the camera state to LoadedState now sets the camerabin to
GST_STATE_READY, that allows to query for camera capabilities without
having to start the camera (and have a valid viewfinder).
Change-Id: I249b1ad32690679ff34a427410bc709ed3ab461c
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Wed, 11 Feb 2015 11:40:10 +0000 (12:40 +0100)]
GStreamer: improved logic for window and widget controls usage.
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>
Sergio Ahumada [Tue, 17 Feb 2015 15:12:14 +0000 (16:12 +0100)]
Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: I89bfde0a1618ebf3b34948c1c1f74c2cbf5d8abf
Sergio Ahumada [Tue, 17 Feb 2015 13:14:26 +0000 (14:14 +0100)]
Fix BSD license headers
Change-Id: I639ed933b789393fa50630af133e51abe3d7fae3
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Yoann Lopes [Fri, 13 Feb 2015 16:20:03 +0000 (17:20 +0100)]
Compile Alsa and PulseAudio plugins only when enabled by configure.
They are enabled by default, this simply makes sure -no-alsa and
-no-pulseaudio work.
Change-Id: I8e921381363064bb65b414152eab27c08a551dc4
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Yoann Lopes [Fri, 13 Feb 2015 15:51:34 +0000 (16:51 +0100)]
Use configured GStreamer version.
The gstreamer version detected or set by the configure script can be
overridden by passing GST_VERSION=<version> to qmake qtmultimedia.pro.
Change-Id: I6f2eac3705d3d6fe0ec8e79042017add6751ee8c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Frederik Gladhorn [Fri, 13 Feb 2015 12:10:48 +0000 (13:10 +0100)]
Merge remote-tracking branch 'origin/5.4' into dev
Change-Id: I5575a4ba13212c9bfe73a3de3ef17c6528beafc3
Antti Kokko [Thu, 12 Feb 2015 06:47:32 +0000 (08:47 +0200)]
Update copyright headers
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>
Yoann Lopes [Mon, 9 Feb 2015 16:37:10 +0000 (17:37 +0100)]
Android: fix adjusting camera viewfinder resolution.
The viewfinder resolution must be in the same aspect ratio as the
image capture resolution. When adjusting the viewfinder resolution to
comply with that restriction, we assumed that the ratios had to be
exactly equal. Though, in practice, there can be a small difference.
For example for resolutions 2592x1952 (ratio=1.3278) and resolution
640x480 (ratio=1.3333).
Task-number: QTBUG-37525
Change-Id: Ia5a6dd3a4a6d901b24bf74f8aa4e34bffe61f89b
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Sergio Ahumada [Wed, 11 Feb 2015 09:05:21 +0000 (10:05 +0100)]
Fix some typos
Change-Id: Iaf8f50741d3103480668b4a654a202d8a363bc45
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Frederik Gladhorn [Tue, 10 Feb 2015 21:28:00 +0000 (21:28 +0000)]
Merge "Merge remote-tracking branch 'origin/5.4.1' into 5.4" into refs/staging/5.4
Sergio Ahumada [Wed, 4 Feb 2015 14:47:38 +0000 (15:47 +0100)]
bic: Add 5.{1,2,3,4}.0 bic data for linux-gcc-amd64
Remove the ia32 data since there are no linux x86 machines in
the CI system (which makes the data useless from an automated
testing point of view) and most people use x64 these days anyway.
Change-Id: Ib62195d0b992a52d3a87f460283b1f2813f0e5eb
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Yoann Lopes [Tue, 10 Feb 2015 10:44:58 +0000 (11:44 +0100)]
Clarify documentation for QImageCapture's 'ready' property.
Unlike what was described in the documentation, it's not permissible to
call capture() while 'ready' or isReadyForCapture() is false. All
backends emit an error in that case.
Updated the documentation to reflect that behavior.
Change-Id: Icb326e65376b65eadd4c68b67e0ee30beddf1a04
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Joni Poikelin [Tue, 10 Feb 2015 08:02:20 +0000 (10:02 +0200)]
Encode urls passed to media player properly
Task-number: QTBUG-44383
Change-Id: I2c63d5530ad76474ccad8ad69493419dd46032fa
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Frederik Gladhorn [Tue, 10 Feb 2015 09:34:52 +0000 (10:34 +0100)]
Merge remote-tracking branch 'origin/5.4.1' into 5.4
Change-Id: I4167d268505cbc0b7b57888928670ae05302f4cb
Sergio Ahumada [Fri, 6 Feb 2015 12:46:44 +0000 (13:46 +0100)]
Replace blog.qt.digia.com with blog.qt.io
Change-Id: I2c0a3ba90c3343b362cd756584979f1b08405d34
Reviewed-by: Tero Kojo <tero.kojo@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Timur Pocheptsov [Fri, 19 Dec 2014 09:54:31 +0000 (10:54 +0100)]
Camera zoom control - version for the AVFoundation plugin
AVFCameraZoomControl for AVFoundation plugin (videoZoomFactor in
AVCaptureDeviceFormat). iOS only.
Change-Id: I585b8df4c2a477971ada7bd81fabbd44f2371d98
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Timur Pocheptsov [Wed, 14 Jan 2015 11:18:53 +0000 (12:18 +0100)]
AVFCameraExposureControl - exposure control for iOS
Exposure control, version for AVFoundation plugin (this code is using
quite a new API, iOS >=8 only).
Change-Id: I6871a758e8dfb98ab46b66d91a44142163e0bb44
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Timur Pocheptsov [Tue, 13 Jan 2015 16:32:27 +0000 (17:32 +0100)]
AVFCameraFocusControl - focus control for iOS / OS X
Camera focus control for AVFoundation plugin (iOS/OS X).
Change-Id: I0a79e7057ecbb66413debb8eac0f48ff679fc7ba
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Sergio Martins [Wed, 4 Feb 2015 16:28:21 +0000 (16:28 +0000)]
directshow: Fix plugging/unplugging a second camera
When having more than 1 camera (like one laptop integrated webcam
and a separate one) you had to restart the application for QCameraInfo::availableCameras()
to work.
Change-Id: I47cfa928cfd9500524b81a4bf8ec5ebff0b79879
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Friedemann Kleint [Thu, 5 Feb 2015 12:57:59 +0000 (13:57 +0100)]
Fix memory leak in QWindowsAudioDeviceInfo::availableDevices().
Task-number: QTBUG-44305
Change-Id: I8c5afd6d5c77ef1ef81c3b752c6246dc50406794
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Yoann Lopes [Wed, 21 Jan 2015 13:09:08 +0000 (14:09 +0100)]
Camera: update viewfinder settings on Loaded status.
Change-Id: I9a341c7500b09d39554118689e6e83cd1b798e39
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Sergio Ahumada [Tue, 3 Feb 2015 20:07:04 +0000 (21:07 +0100)]
Add the library prefix to QObject in public header
Change-Id: I3add728003f4199fe7adec364487cc9b60a8c4cf
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
James Turner [Mon, 12 Jan 2015 13:51:25 +0000 (13:51 +0000)]
iOS video frame render implementation.
Uses CVTextureCache, iOS only for now, OS-X code could be ported
but will need further work to support TEXTURE_RECTANGLE in the
QVideoNode classes.
When we can’t share a context, falls back to an offscreen window,
FBO rendering and grabbing a QImage.
Change-Id: I23b831fdcc63aeb1b67b7741d8d56779470240d3
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Laszlo Agocs [Thu, 8 Jan 2015 13:32:41 +0000 (14:32 +0100)]
Add video filtering support to VideoOutput
Add the QAbstractVideoFilter base class and integrate it with VideoOutput.
This can be used to perform arbitrary filtering or image processing
on the frames of a video stream of a VideoOutput element right before
the OpenGL texture is provided to the scenegraph by the video node.
This opens up the possibility to integrate computer vision
frameworks or accelerated image processing with Qt Quick applications
that display video streams using Qt Multimedia.
Conceptually it is somewhat similar to QVideoProbe, this
approach however allows modifying the frame, in real time
with tight integration to the scenegraph node, and targets
Qt Quick meaning setting up the filter and processing the results
of the computations happen completely in QML.
[ChangeLog] Added QAbstractVideoFilter that serves as a base class for QML
video filtering elements that integrate compute, vision, and image processing
frameworks with VideoOutput.
Change-Id: Ice1483f8c2daec5a43536978627a7bbb64549480
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Andy Shaw [Mon, 2 Feb 2015 09:00:06 +0000 (10:00 +0100)]
Ensure the system libraries are linked when -opengl dynamic is used
Task-number: QTBUG-43211
Change-Id: Id543c74233f547c61164b9d32a5f6a3f6d1bc1b3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Yoann Lopes [Fri, 30 Jan 2015 13:10:00 +0000 (14:10 +0100)]
Added 5.4.1 change file.
Change-Id: Icde0e9aadb47dbf5a0b0bb22258b66b13cd5c75c
Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
Peter Seiderer [Wed, 28 Jan 2015 19:25:35 +0000 (20:25 +0100)]
Fix no-opengl pixel format check (reenables Format_RGB24)
Disable Format_RGB24 only in case of QOpenGLContext::LibGLES by
moving the no-opengl endif after the check against Format_RGB24.
Change-Id: I389ae2bb32dc8b2c55ec801f52d820620630b1c0
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Yoann Lopes [Fri, 23 Jan 2015 11:22:50 +0000 (12:22 +0100)]
Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/dev
Laszlo Agocs [Fri, 16 Jan 2015 12:43:35 +0000 (13:43 +0100)]
Fix initialization order
Avoid the following warning:
In file included from qgstreamerplayersession.cpp:34:0:
qgstreamerplayersession.h: In constructor ‘QGstreamerPlayerSession::QGstreamerPlayerSession(QObject*)’:
qgstreamerplayersession.h:203:10: warning: ‘QGstreamerPlayerSession::m_usingColorspaceElement’ will be initialized after [-Wreorder]
bool m_usingColorspaceElement;
^
qgstreamerplayersession.h:197:17: warning: ‘GstElement* QGstreamerPlayerSession::m_videoSink’ [-Wreorder]
GstElement* m_videoSink;
^
qgstreamerplayersession.cpp:107:1: warning: when initialized here [-Wreorder]
QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
^
Change-Id: Ic4dfe6ead19db8d581cc7de622f478e63524715b
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Yoann Lopes [Mon, 19 Jan 2015 13:35:33 +0000 (14:35 +0100)]
Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
.qmake.conf
src/plugins/gstreamer/camerabin/camerabinsession.cpp
Change-Id: I66a6f3efc5391013934b6b321073c31f25e1de26
Oswald Buddenhagen [Fri, 16 Jan 2015 20:06:40 +0000 (21:06 +0100)]
Bump version
Change-Id: I29a6579deefb4ca80bb014c43ee34697fa89bd47
James Turner [Mon, 12 Jan 2015 17:15:28 +0000 (17:15 +0000)]
Rename camera classes to avoid name clash.
Change-Id: I08fe8f7e75bdbf2c4975863642072061741b5bc6
Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Yoann Lopes [Fri, 12 Dec 2014 11:00:06 +0000 (12:00 +0100)]
New camera viewfinder settings API.
There already was a control interface for the viewfinder settings
but no real public C++ API and a partial QML API.
This patch adds a new C++ API and improves the QML API.
Supported viewfinder settings are resolution, minimumFrameRate,
maximumFrameRate and pixelFormat. The camera can be queried for
the supported values for each of these settings.
A new control interface was created to match the new API.
Change-Id: I289fea038fe46277a5516c956a64280da09ed985
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Laszlo Agocs [Thu, 8 Jan 2015 13:10:20 +0000 (14:10 +0100)]
Add resolution and fps on mfw_v4lsrc
Add support for changing resolution and frame rate with mfw_v4lsrc.
This is essential for embedded applications that are not happy with
the default VGA@30.
This makes constructs like the following functional on devices like
i.MX6 with MIPI cameras:
Camera { viewfinder { resolution: "320x240"; maximumFrameRate: 15 } }
Change-Id: Ia297afdb5ca51c6e55ad45dce37fdab7da3a5cfb
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Laszlo Agocs [Fri, 19 Dec 2014 13:38:18 +0000 (14:38 +0100)]
Migrate to categorized logging in Quick 2 video output
Enable qt.multimedia.video to get the logs. Also enhance the printing
when creating the video node implementation. It is essential to have
an easy way to figure out what handle and formats the node in use
supports.
Change-Id: Idf3a9f076ba03b5e613c19f2347204c841850b45
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Laszlo Agocs [Fri, 19 Dec 2014 11:19:04 +0000 (12:19 +0100)]
Support byte ordered QImage formats in pixelFormatFromImageFormat
For QVideoFrame purposes they are equivalent.
Change-Id: I776c60aa8ca848e58499bbd0c1fc25c457d46ef6
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Timur Pocheptsov [Tue, 9 Dec 2014 19:10:08 +0000 (20:10 +0100)]
AVFImageCaptureControl - invalid connection
AVCaptureConnection from AVCaptureStillImageOutput becomes invalid
as we remove/add AVCaptureDevice.
Change-Id: I698ffcc0b91b76cd5d7c25e4b244eaa0aa459159
Task-number: QTBUG-42035
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Friedemann Kleint [Wed, 7 Jan 2015 08:21:10 +0000 (09:21 +0100)]
Add missing includes for QDataStream/QIODevice.
After qtbase/
90e7cc172a7521396bb2d49720ee4ceb9a9390b3,
QStringList no longer includes QDataStream.
Change-Id: Ibe3e1e6542e1b592adaabe3f8ffd3268efaf289b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Laszlo Agocs [Mon, 5 Jan 2015 14:43:51 +0000 (15:43 +0100)]
Support YUV420P in the i.MX6 video node
Camera input is often in this format. Until now the lack of GL_VIV_I420 (which
was presumably missing in older versions of the extension?) in the format list
resulted in falling back to the built-in i420 node instead of the zero-copy imx6
one. This is now corrected by adding the correct format mapping.
Change-Id: I6e891bb3bb07d64ccd5b2d170b052f677c8bd19c
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
Frederik Gladhorn [Mon, 29 Dec 2014 15:17:38 +0000 (16:17 +0100)]
Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/dev
Dmitry Shachnev [Tue, 23 Dec 2014 12:21:13 +0000 (15:21 +0300)]
Fix some typos in strings.
s/Endianess/Endianness/
s/changable/changeable/
Change-Id: I91a43ff6e6143f2d3fc0a93aa8bbf34a415eea90
Reviewed-by: Andrew Knight <qt@panimo.net>
Gabriel Hege [Mon, 22 Dec 2014 12:17:42 +0000 (13:17 +0100)]
Fix: static linking on Linux with both PulseAudio and Alsa plugins
Fixed multiply defined symbols when linking statically with both
PulseAudio and Alsa plugins enabled:
The private classes In/OutputPrivate had identical names and have been
renamed.
Change-Id: I9415beeeed9fb0e14ead3f0ab906f343b3934341
Task-number: QTBUG-43514
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Jani Heikkinen [Tue, 7 Oct 2014 10:12:05 +0000 (13:12 +0300)]
remove unnecessary LICENSE.GPLv2
Change-Id: Ic2be97ac71f2dbf48925b2ee7fb4ab291c7573c7
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
Frederik Gladhorn [Wed, 17 Dec 2014 15:53:41 +0000 (16:53 +0100)]
Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
.qmake.conf
Change-Id: I31e377cdccf8bf5c1ea8143faf2001ac99608c27
Frederik Gladhorn [Wed, 17 Dec 2014 11:59:05 +0000 (12:59 +0100)]
Merge remote-tracking branch 'origin/5.4.0' into 5.4
Change-Id: Ice62a75ba6ff094e22e8affbecf26f4d3bf2f282
Oswald Buddenhagen [Fri, 12 Dec 2014 12:48:26 +0000 (13:48 +0100)]
Bump version
Change-Id: I7e93575a6e3767485e2a5430312e87527b2c9b2d
Andrew Knight [Thu, 11 Dec 2014 08:52:18 +0000 (10:52 +0200)]
winrt: Add missing QAbstractVideoSurface::stop() call.
This was preventing the surface from restarting with a different format.
Change-Id: I1f86ddb1b16618f167183c7e2fcb32658df578f3
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Andrew Knight [Fri, 5 Dec 2014 08:26:32 +0000 (10:26 +0200)]
winrt: Fix encoding properties
These should match the capture mode. Additionally, there was a semantic
error preventing the encoding properties from being properly selected.
This fixes a bug in which the viewfinder was receiving frames too large
for display as an OpenGL texture.
Task-number: QTBUG-41065
Change-Id: Ia82c8f44bba1692a219edc5f9d78fc76c3d8a4ba
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Andrew Knight [Thu, 11 Dec 2014 07:48:52 +0000 (09:48 +0200)]
winrt: Fix camera auto rotation
There is no Windows Runtime API to find the camera sensor rotation, so
assume that phones always have a camera mounting of 270 degrees. Tablet
and webcams remain mounted at the default (0 degrees). As the frame is not
flipped automatically by the system, the scan line direction is set to
BottomToTop for front-facing cameras to achieve compatibility with
other platforms.
Task-number: QTBUG-41066
Change-Id: Icf17ecd4aca9fa9d5b24d94e5b21b63ee6f21f28
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>