I admit I haven't read the whole above post, but I have a quick possible solution to your problems. Make your mouse move event as fast as possible, for example by implementing it like this:



Qt Code:
  1. ... // constructor
  2. m_timer.setInterval(100);
  3. m_timer.setSingleShot(true);
  4. ...
  5.  
  6. ...::mouseMoveEvent(...){
  7. m_timer.stop();
  8. m_timer.start();
  9.  
  10. }
To copy to clipboard, switch view to plain text mode 
Connect the timers timeout() signal to something like this:
Qt Code:
  1. ...::timerTimeout(){
  2. emit mouseMoved(QCursor::pos());
  3. }
To copy to clipboard, switch view to plain text mode 
Then connect your frame loading routine to the mouseMoved(QPoint) signal. This way you'll be loading frames only if mouse wasn't moved for 100ms. All previous mouse moves will be ignored.

This small change should make a huge difference (you might need to adjust the timer interval to fit your needs).