Details
-
Bug
-
Resolution: Invalid
-
Not Evaluated
-
None
-
5.7.0
-
None
-
Windows 10 64-bit, Visual Studio 2015, Qt version 5.7, program is 32-bit.
Description
While debugging my program using DevPartner Studio Professional (aka. Bounds Checker), it has signaled a couple of problems.
Problem 1 (Windows implementation) : The function EvrVideoWindowControl::repaint() does
::DeleteObject(pen);
while the pen is still selected in the dc.
Problem 2 : The function "inline ~QVarLengthArray()" does free(ptr), but ptr contains 0xdddddddd. Somehow this passes without a crash in the debug version.
The call stack is :
QVarLengthArray<IBaseFilter *,16>::~QVarLengthArray<IBaseFilter *,16>() Line 90
DirectShowPlayerService::doRender(locker=0x21effe04) Line 557
DirectShowPlayerService::run() Line 1446
DirectShowPlayerServiceThread::run() Line 105
QThreadPrivate::start(arg=0x0893b9b0) Line 393
Problem 3 (not related to DevPartner) : QVideoWidget does not repaint.
The video is displayed while doing play() + pause() or setPosition(), but disappears again immediately when :
a. changing the focus
b. doing QVideoWidget::hide() and then show()
Using QVideoWidget::repaint() during a paint-event does not help.
How to reliably make QVideoWidget display its last frame and then keep on displaying it?