[Qt-interest] QSlider::setValue() causing delays in QTimer event delivery
Josiah Bryan
jbryan at productiveconcepts.com
Tue Feb 16 18:08:19 CET 2010
Hey all -
I've got an odd problem. See, I've got a video player (using ffmpeg as
the backend) that sets a QTimer to trigger the next frame update.
I've also got a QSlider on the GUI that polls the video decoder for the
clock position and updates a QSlider with the current video position via
setValue. The polling of the video decoder is also done via a QTimer.
Alright, so that's the scenario - quite simple - video playing, and
QSlider to show the position in the video. Easy, right?
The problem is that the call to QSlider::setValue() causes the video
timer to take longer than requested by an extreme amount - often by
100ms or longer (timer set for, say, 23ms, but timer actually takes
144ms to deliver the signal.) This is very repeatable - after every
setValue call, timer event is late.
Yes, I did narrow it down to the QSlider::setValue() call in the polling
logic - with setValue() commented out, video never misses a beat. With
setValue() called, the Video timer always is late right after the
setValue() call.
I've tried calling QSlider::blockSignals(true) (and setting back to
false after setValue) - but with no effect.
Any suggestions for troubleshooting this odd problem? I'm confused as to
where to go from here or what to check.
System Info:
* Qt 4.6.1
* Linux - FC8
* Kernel 2.6.23.9-85.fc8
* KDE 3.5.8-7.fc8
* Quadro NVS 290 graphics, 4-head (Xinerama)
* NVidia Driver version 190.42
Thanks!
-josiah
--
-=-=-=-=-=-=-=-=-=-=-=-=-
Josiah Bryan
Productive Concepts, Inc.
jbryan at pciint.com
(765) 964-6009, ext. 224
More information about the Qt-interest-old
mailing list