Fixes the "libqavfmediaplayer.dylib 0x0000000110fa7c8c -[AVFMediaPlayerSessionObserver unloadMedia]" crash on Macs.
The problem was: writing to memory that had already been released. If not sure, one should always check if the objects exist before deleting it.
Solution tested on OSX 10.7, 10.8, 10.9
[ChangeLog][qtmultimedia][avfmediaplayersession]
Task-number: QTBUG-34213
Change-Id: Iac108711851c348e96e73542b4e71653007eeb54
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
That way we reduce count of temporary QString instances.
Change-Id: Id806c68ea616828c2355c07b8576616fa6a8da17
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Enables basic software rendering support for iOS.
Change-Id: Icd29076ea627295819ede6d9680de576ba39b34e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Previously a QGLWidget was used as a target for the
AVFVideoFrameRenderer. This was uncessary as it is possible to render
directly on top of the QWidget using the CoreAnimation Framework.
Change-Id: I08923c85fd56c8874c1d8c187ae5145e220fab92
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This commit disables the video components of the AVFoundation
mediaplayer backend when building for iOS and enables the use of
QMediaPlayer with audio assets.
Change-Id: Iadd6f9c61ed1e656301326e90a22cbca6428b654
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
They previously had the multimedia services they provided as keys. This
was a problem when several plugins were available on the same platform,
providing the same multimedia service, but with different features or
capabilities. Since they had the same key, only the first plugin in the
directory was loaded.
Nevertheless, it was actually working until commit 732dcfe7 in qtbase,
as all plugins were loaded even when sharing the same key.
The services a multimedia plugin provides are now declared in the
'Services' property. To preserve compatibility with third-party plugins,
if that new property doesn't exist it falls back to the 'Keys' property.
Task-number: QTBUG-31868
Task-number: QTBUG-31476
Change-Id: Ic3ba32eeef21b69b922bd3d4feb111101559d132
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
qmultimedia.h is included in more places, but qmediametadata.h is
larger. This patch should reduce unnecessary #include-ing.
Change-Id: I4a3d174bafc555d794bb75087c1f6b79745ae903
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
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>
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>
avfvideowidget.mm:120:9: error: non-constant-expression cannot be narrowed from type 'int' to 'GLfloat' (aka 'float') in initializer list [-Wc++11-narrowing]
x1, y1, zValue,
^~
Change-Id: I5a08bf8b53cf029dbdfaeaa03f4babd6d49d62ad
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
QGraphicsVideoItem was not working because the QPainterVideoSurface was
unable to paint BGR32 format OpenGL textures. Now if the QGraphicsView
window has a QGLWidget viewport, we use the GLTextureHandle to render
the video, otherwise we fallback to the software QImage rendered case.
Task-number: QTBUG-28017
Change-Id: I9304e0a2536f15075ae34cdd509ef24fbc18604e
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
AVFMediaPlayerService::requestControl was returning the video output
control after the video output was created, and this could result in
unexpected behavior, as well as prematurely calling releaseControl on
the video output. This should fix the "player" example on OS X.
Change-Id: Ie23b1176272a1f9daa5edeec856141ac52a450c7
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
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>
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>
This plugin would be used on Mac 10.7+ where without the QuickTime C API
our QT7 media player performance was crippled.
Change-Id: Iaadb1990a8f63393c4cd02d096624e0fed42b40f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jason Barron <jason.barron@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Objective-C declarations may only appear in global
scope, moved them out of Qt namespace
Change-Id: Icb136be75f544e5929ac28f0ba0681211b81a983
Reviewed-by: Lars Knoll <lars.knoll@digia.com>