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>
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>
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>
Move the current platform plugin content in a subdir in order to make
room for several plugins (at least an extra one will be needed for the
audio type).
Change-Id: If17d6a464e36014fbefda52ddb0e8f8a58697f48
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
An display invalid rect is used for invisible QML
items.
Change-Id: Ifb2a25f1c5387ab8cef1359ac6c3e2f90a42cd10
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@gmail.com>
This makes diagnosing problems remotely a lot easier.
Change-Id: I23434af5e88fb8dcdb154be34f12276eba652d4f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
The playlist watches for state changes to the EndOfMedia state, which
wasn't used in the plugin yet.
Change-Id: Ib2a014177df2273cd46baaef1392a73e54daf06c
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Previously, playback from URLs of the form "file:path/to/file" did not
work.
Change-Id: Iecd293d09f7c448438dbf259710c0aab218c2591
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Abort the singleshot timer when the media is changed, as otherwise
continueLoadMedia() was called multiple times.
Also, don't use a singleshot timer when setting a null media.
Change-Id: I19d4838c9c70e7fcaa790c223cb19ac3e0246e6b
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>