Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.3.1
-
None
-
Makespec:
qnx-armle-v7-qcc
-
-
8c7cf4af3a7191538d6a83bcd9314b8bc9c0c04a
Description
When the QDeclarativeVideoRendererBackend is destroyed, the renderer control surface is set to NULL, on which the MmRendererPlayerVideoRendererControl implementation then attempts to set a QObject property, causing a segmentation fault.
This behaviour was observed by having a QML Video component on a page loaded by a QML Loader, and then loading a different page in that Loader, causing the QML Video component to be unloaded.
Stack trace:
0 QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::data qscopedpointer.h 143 0x7956d52a
1 qGetPtrHelper<QScopedPointer<QObjectData> > qglobal.h 941 0x7958ec46
2 QObject::d_func qobject.h 118 0x7958ee68
3 QObject::setProperty qobject.cpp 3788 0x797916e6
4 MmRendererPlayerVideoRendererControl::setSurface mmrendererplayervideorenderercontrol.cpp 82 0x7bc6ff10
5 QDeclarativeVideoRendererBackend::releaseControl qdeclarativevideooutput_render.cpp 122 0x7aff0722
6 QDeclarativeVideoRendererBackend::~QDeclarativeVideoRendererBackend qdeclarativevideooutput_render.cpp 81 0x7aff041c
7 QDeclarativeVideoRendererBackend::~QDeclarativeVideoRendererBackend qdeclarativevideooutput_render.cpp 83 0x7aff04e6
8 QScopedPointerDeleter<QDeclarativeVideoBackend>::cleanup qscopedpointer.h 62 0x7afef6fc
9 QScopedPointer<QDeclarativeVideoBackend, QScopedPointerDeleter<QDeclarativeVideoBackend> >::reset qscopedpointer.h 157 0x7afef1a6
10 QDeclarativeVideoOutput::~QDeclarativeVideoOutput qdeclarativevideooutput.cpp 145 0x7afec42c
11 ?? 0x7b3d4a0c
12 ?? 0x7b3d4a0c