⚠️ Forum Maintenance: Feb 6th, 8am - 14pm (UTC+2)

QMovie jumpToFrame() API and CacheAll mode related problem

  • Dear All,

    I am trying to use QMovie to play some .gif animation. Regarding the FastForward and Rewind function support, QMovie::jumpToFrame API is used. In order to make this API work properly, we have to enable the QMovie::cacheall mode. The problem is when we enable CacheAll, there will be memory leak. It seems someone else report the same problem but there is no solution. (Sorry I have not posted the bug number or link here).

    So does anyone have a good solution for this QMovie problem or any good suggestion on alternatives for playing .gif in Qt?

    Thanks and Regards,

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Can you explain more about that memory leak ? At least the link to the exact bug report would be a good thing.

  • Hi,

    Maybe I should not call it memory leak. For the cacheall mode, the whole content of the .gif will be cached in the memory. This buffering process occur when you play/fastforward/rewind and it took some time. So you will see the memory usage increase continuously till a very big value( for a 60M gif, it will increase to 900M).


  • Lifetime Qt Champion

    What kind of gif are you loading ?

  • I think the QMovie should improve its cacheing method instead of limiting the user usage of .gif file.

  • Lifetime Qt Champion

    That doesn't answer my question, what kind of gif is it ? What are the image characteristics ? A 60M file looks like a very big animated gif so it might not be the best format for such an animation.

    QMovie caches each frame of your gif in a format suitable for displaying. If you think it's not optimum you are welcome to improve the class.

Log in to reply