This also makes sure that if you attempt to load an invalid media file
while another file is playing that the old session is stopped.
Task-number: QTBUG-30411
Change-Id: Ied4dbaffeac50465112c1e94e7c69d1600a6de51
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Reviewed-by: Dan Winkler <dantwinkler@gmail.com>
Disable the camera part as it's using APIs not supported for the PlayBook
Change-Id: I4e06a74e8a9e5a00e19e443b8aa304cf2bce2216
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
/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>
m3u8 is just a unicode version of m3u so we can already handle these
without any extra coding other than adding it as a format
Change-Id: Icec0f1844bd2b0a0ea3c39b98f7b06cc402a3309
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
This also prevents anything meaningful from working, but it is a
good starting point.
Change-Id: Idaf495ec29f611ee5342c79318bc3ace1d852747
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
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>
If the camera viewfinder shows the front camera
we mirror the image now to avoid that on rotation
of the device the image tilts to the wrong side.
The captured image however is not mirrored.
Change-Id: I6127b8ee6552553efe56ebec81991f0bd7597f47
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
For now it only implements the audio output part.
The plugin can be used on all QNX systems (including BB10) that
provide a libasound version < 1.0.10.
Change-Id: Ifcfd871558d5d2bfb9e8a5f5ef0cfe009c0a111d
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
If the application is not supposed to play back DRM secured media,
we grab the pixel data from the native mmrenderer window now
and make them available to the QAbstractVideoSurface of the
QVideoRendererControl. This allows the usage of all transformations
on video output inside QtQuick.
Change-Id: I73d05404b1ac9c5f74a234d9393b981a6fbcb317
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Since the conversion from NV12 to RGB on the CPU does not scale
for larger photo/video resolutions, this patch uses a different
approach. It uses the low-level screen API to grab screenshots
of the native viewfinder window and provides them as QImage to
the QAbstractVideoSurface. Even for large resolutions this
is quite performant.
Change-Id: I59a7cbe6850b3b07575ea10026f3180cfd22e935
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Provide an implementation of QMetaDataReaderControl for the
QMediaPlayer.
Change-Id: I58c04e40ae3f07013450997410d0a379273c7bde
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Fix the selection of the video viewfinder resolution depending
on the features provided by the camera. If the viewfinder is responsible
for encoding the video frames, the resolution of the viewfinder
and the video output must match. Otherwise only the ratio must match
and we can use a lower resolution for the viewfinder to improve
the performance of the NV12->RGB frame conversion.
Change-Id: I66ace84841a69be84f83bf9c5240cd23d96fbb76
Reviewed-by: Bernd Weimer <bweimer@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Before audio is played we always seek to position 0. Unfortunately, due
to a recent change in mmrenderer, playback stopped working for
"non-seekable" media. There is a check now, whether the media is
seekable or not.
Change-Id: Ieafd8d1364f7ce0194f4fa17d3efe894aa1b289b
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Ensure that the taken photos are always upright.
As long as the QCamera API does not provide information about
the native orientation of the camera, we have to do the rotation
inside the BBCamera plugin.
Change-Id: Iebb04a5417274c2baee5e944dadf10fc706484d9
Reviewed-by: Bernd Weimer <bweimer@rim.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Listen to the CAMERA_STATUS_POWERUP signal, which is sent
after standby, and trigger a restart of the viewfinder
in this case.
Change-Id: I426f23657844bb270ddfd0e4bfb35880040aa583
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Make sure that the texture is upright when the device is upright.
When rotating the device, it's the applications responsibility to
rotate the texture of the viewfinder (e.g. through the
QDeclarativeVideoOutput::orientation property).
Change-Id: I6e453ce9bdde5197104533f844b1079b3c3db908
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reimplement all camera related controls as they are supported by the
BB10 camera API.
Change-Id: Ie7d2258be22c1c1821489bd7074b80cff4242afa
Reviewed-by: Bernd Weimer <bweimer@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Move the mediaplayer related code in its own subdirectory.
This is a preparation for adding camera support in the future.
Change-Id: I880ff90e154165c2a3a31fd2b51e1dd224fea8fd
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
It also applies to QGraphicsVideoItem when used on a GL viewport.
We now have a new video sink that is based on Microsoft's EVR sink, we just
replace the default Presenter with our own. Frames are rendered into D3D
surfaces using DXVA, then copied into a shared D3D/EGL surface and finally
bound to a GL texture to be used by the video surface.
The shared D3D/EGL surface is a feature provided by ANGLE and therefore Qt
must be compiled with ANGLE for this new video sink to be compiled and
used.
Change-Id: I0b7b9968eed5488f9ef1a2dcca5213bd0af232ab
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
When using our custom MediaSink with RGB formats, Media Foundation fails
sometimes to resolve the topology. Inserting ourselves a ColorConverter
transform in the topology resolves the problem.
The ColorConverter transform cannot handle dynamic frame size changes
(this can happen with H264 videos for example) so we also need to insert a
Resizer transform to handle transparently frame size changes.
Change-Id: Id7f37a0af65f142fbe6d420ad7b2c1ac2156c21b
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
YUV and other compressed frame formats are always TopToBottom. Only for uncompressed RGB formats the sign of their height is used to indicate the scanline direction.
Change-Id: I6474783583672861eeeb538b79d14ee3d6995f59
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@gmail.com>
CGRect == NSRect only in 64-bit mode.
Don't add -framework QuickTime based on the host arch,
use QT_ARCH instead.
Change-Id: I829bc1bcfe37f70a07e8c55a5bc7dee90aaa981a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
For the VideoRendererControl, also stop the video surface at the same
time.
This fixes a crash when changing video.
Change-Id: I49484f8b277c345dafb3e5947cf5d23df15546f3
Reviewed-by: Jason Barron <jason@cutehacks.com>
Fixed the way the custom MF Transform (getting the frames) works:
- Recreate it whenever we load a new media
- During media type negotiation between nodes, the MFT should support
the same types as the video sink supports
- Allow input and output types to be changed as many times as needed,
otherwise the topology cannot be resolved in some cases
Change-Id: I7ca77e1a3dee83643f1a97f2e6ada9c5c0e88309
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Names are case sensitive when cross bulding for mingw on unix.
Change-Id: I355b9388241c7c5fefb05b6f0c231efec4530c7e
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
qt is already added by spec_pre.prf, warn_on by default_pre.prf, and
no_private_qt_headers_warning by qt_build_config.prf.
Change-Id: Ia5cee420d577dd0ae0120cb2dd430d4ddd29ebcf
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>