Sometimes my application crashes in QWidget::update() that is performing in non-GUI thread.

I am developing an application in which receives video frames from remote host and display them on QWidget.

For this purpose I use libVLC library that gives to me a decoded image. I receive image in libVLC callback, that is performing in separate libVLC thread. In this callback I'm trying to perform QWidget::update() method. Sometimes application crashes, and callstack is somewhere in this method. Here is the my callback code:

cpp Code:
  1. void VideoWidget::displayCB(void* picture)
  2. {
  3. QImage* image = reinterpret_cast<QImage*>(picture);
  4.  
  5. onScreenPixmapMutex_.lock();
  6. onScreenPixmap_ = QImage(*image);
  7. onScreenPixmap_.detach();
  8. onScreenPixmapMutex_.unlock();
  9.  
  10. delete image;
  11.  
  12. update();
  13. }
To copy to clipboard, switch view to plain text mode 
I know that GUI operations outside the main thread are not allowed in Qt. But according documentation QWidget::update() just schedules a paint event for processing when Qt returns to the main event loop and does not cause an immediate repaint.

The questtion is: is the rule "GUI operations outside the main thread are not allowed" appliable for QWidget::update()? Does this operation belongs to "GUI operations"?