[ChangLog][multimedia][winrt] The winrt backend now supports camera focus
and focus lock for Windows Phone.
Task-Id: QTBUG-46120
Change-Id: Idb222798284d887a6e90a4986c69274e0ef765f5
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
avfaudioinputselectorcontrol.h:68:23: warning: private field 'm_service' is not used [-Wunused-private-field]
Change-Id: I5722a2d1bf592862af3a4d36554419a653662892
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
The abstract video buffer pointer was being reused and (improperly)
deleted when its reference count went to zero. As QVideoFrame utilizes
an explicitly shared pointer which also tracks the video buffer, simply
reuse the QVideoFrame instance instead.
Task-number: QTBUG-47373
Change-Id: Idadae205cb520a0a1d752aa20256c0567b3be699
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
We try to link in Qt5PlatformSupport, which depends on libqtfreetype, which in turn
is not installed. However we don't really need Qt5PlatformSupport, only QtCore private
headers for the JNI bridge.
Change-Id: Ic6d577081327eda7b80ce03c6fb7fd5cf024d05f
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Implement QImageEncoderControl for camera still image capture.
It provides the functions to set camera capture resolution and
get supported resolutions list.
Task-number: QTBUG-46456
Change-Id: Ideb1aa02d420be3a30d588bebf31714fa4fa6415
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Instead of an alias for QPair<qreal, qreal>.
Task-number: QTBUG-46563
Change-Id: I7e1ac68242810f7e5f7e161571a11f5de7850e29
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
We were always using shared OpenGL contexts to render media player
frames into an OpenGL texture. There's no need to do that when there
already is a current context on the current thread. This happens in
non-QtQuick cases, when the OpenGL thread is also the main thread.
Change-Id: Icb97ed49609c764263007a43b6bb481e23768111
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Lumia 530 has the same QTBUG-44838 device bug that gives black frames
when blitting to the target texture for image preview. Add it to
workaround blacklist.
Task-number: QTBUG-45920
Change-Id: Ia411793b90e487fa57b943ed7f01e370bfb84a1f
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
We need to restart the video surface when the frame size changes.
Change-Id: I81af3cb40fb40f7d157174ac96d42213880fbacd
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
The assert was always triggered, at least on OSX.
Change-Id: I9aabb6103b7f5540cff42facc448ffcf6a6de511
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
AVFoundation on iOS lacks the ability to use AVCaptureVideoDataOutput and
AVCaptureMovieFileOutput simultaneously. Right now viewfinder stops working
as soon as we add movie file output. The only workaround
we have now is to write video/audio 'maually' - creating asset writer
and feeding it with audio/video samples.
Change-Id: I33a63546783279c545f0433b5051287269825d3f
Task-number: QTBUG-37655
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
It was hardcoded to ARGB32, which is not a good idea, at least on iOS
where the necessary conversion is slow.
We now pick the QAbstractVideoSurface's preferred format, or if no
surface is set, we pick the default from AVFoundation.
As a result, the QML VideoOutput will now always use the NV12 format.
Change-Id: I65205c706455502883b8098f0b5c0577b4106e01
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
- When the video capture resolution or the image capture resolution
changes, we now always set the viewfinder resolution to the highest
available one with the same aspect ratio as the capture resolution.
We were previously not doing anything if the new capture resolution
had the same aspect ratio as the current viewfinder resolution.
- Some devices don't support using a viewfinder resolution different
from the video capture resolution. Make sure we handle this case.
Change-Id: I8d3ab7b01c56ed78d1ca838a522ba459692fc332
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
0df8d839 didn't fix all of the problems.
Task-number: QTBUG-46159
Change-Id: I4f2a390da1cca13775302aeef60c522e0da55a1a
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Padding rows & columns are included in the video frame that is sent to
the VIV direct texture. Scale the UV coordinates to ensure the padding
pixels aren't shown.
Change-Id: I8b870a95ff786f9f80f42f0cc33f468b0c9c3863
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Maximum zoom value was incorrectly reset to 1.0 when doing the transition
Active -> Loaded -> Active.
Change-Id: I799900b1597637039d6c28d1d694fb6340b10540
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
AVCaptureConnection.videoMaxFrameDuration is supported only since 10.9.
Task-number: QTBUG-46159
Change-Id: I8ea57b69e97ea3802b5c444c57ab090c4edf31e2
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
The time was in milliseconds but should be in microseconds.
Task-number: QTBUG-45571
Change-Id: I54f07975e7a6233254a338dcde8075f740b5455c
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
My last fix for iOS (4e07ff99) introduced this regression of passing
the outdated value to the native player object.
Change-Id: I01b0df8c7a0fe1382ef73b55d288a40daf024e3d
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
In QAndroidCaptureSession::stop() we call restartViewFinder() which
eventually calls QAndroidCaptureSession::stop() again, but this time
the media recorder object is already released.
Task-number: QTBUG-45637
Change-Id: I943c423398a99d98ccda1063fc16e47cba470deb
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
The microphone permission was always requested when using the camera,
even when not actually using the microphone, which can only happen when
recording a video. The permission request is triggered by adding an
audio AVCaptureDeviceInput to the AVCaptureSession, which was done when
setting the camera to LoadedState. This is now done when setting the
camera mode to CaptureVideo.
Task-number: QTBUG-45659
Change-Id: I3692797128cfb70ba5ccbc7a36b6955471039e80
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Use AVCaptureDevice::defaultDeviceWithMediaType instead of the first
device in the list of available devices.
Change-Id: I436921f99280a28d7158d345cd977a874cfb8968
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Replace sample buffer QVector with C array to avoid reallocations. The
resource needs to be protected, so use atomic indexes to prevent writing
into the same array element that is being read.
Task-number: QTBUG-45667
Change-Id: Ifd30dd128765ea4794fe8614f25ef596bba891ee
Reviewed-by: Andrew Knight <qt@panimo.net>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Certain devices give black frames when blitting to the target texture for
image preview. However, a workaround has been found that simply mapping
the buffer forces the frames to be rendered properly. As this degrades
performance on devices with hardware buffers, a blacklist is introduced
to specify which devices require this workaround.
Task-number: QTBUG-44838
Change-Id: I137a1dc4e5126e7cf9ee00cb2d7e7722bf917efa
Reviewed-by: Andrew Knight <qt@panimo.net>
8923c0ff fixed the list not being updated after plugging/unplugging a
camera from the system. However, it was only a partial fix affecting
only QCameraInfo::availableCameras(). DSVideoDeviceControl was still
internally keeping a list of cameras that was never updated, causing
the QCamera constructor to not take into account new or removed
cameras.
Change-Id: Ie5e79c46002017b1e85bfc53c6391a2a747361a0
Task-number: QTBUG-39708
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
QAudioDeviceInfo::isFormatSupported() now tries to open the device with
that format to theck if it is supported. We were before simply checking
that its parameters were included in the list of supported values,
which might be incomplete.
In addition, since the Windows API to check device capabilities is quite
limited, we now test additional common formats and add them to the
supported formats if the device can open them.
Task-number: QTBUG-42648
Change-Id: Idd0affbd6d91d4fd027a6a4c86c2f3fe008a118f
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Always report 8-bit PCM data as unsigned integer. Even though there's
no API to actually know that, it's standard on Windows. 8-bit is
unsigned and 16-bit is signed.
Task-number: QTBUG-45540
Change-Id: I4a3c09084de688ea7afc3bc147508184fb582224
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
The plugin was using some iOS 6 APIs, even though we're supposed to
support iOS 5.
Add version checks for all these APIs.
Task-number: QTBUG-44790
Change-Id: I9268963b7d3601222451ce0c948c2d024d37c86f
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
AVCaptureDevice has API to work with camera flash on both iOS and OS X
(quite limited on OS X though) - so camera flash control can be implemented
in AVFoundation plugin.
Task-number: QTBUG-37996
Change-Id: Ie9aaed09a709e7d09ccc1cedded93a69fea93975
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
The exact warning is:
> deleting object of polymorphic class type which has non-virtual
destructor might cause undefined behavior
Change-Id: I8f259def3f1f7f776fb31ace9dfcc7145426f5c0
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Cameras can be dynamically added or removed on OS X. Make sure
the cache is updated often enough so QCameraInfo::availableCameras()
return an up to date list.
Task-number: QTBUG-39708
Change-Id: Id806d52278e1a29163fcc6707da7f86c0f3e7c0d
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>