QuickTime playback unstable on Windows 10

I am playing back QuickTime videos with Cinder 0.9.1 on Windows 10 and have found this highly unstable. I am calling getTexture() in my update function (similar to the samples) and things generally work, but depending on format, size etc a video might play with video or audio artifacts, or it might stop playback and crash the whole application a minute later. It happens more often in release builds, but when it does happen in debug builds there appear to be invalid pointers somewhere deep inside the code that copies data into surfaces, with no real indication of the underlying problem.

mp4/h264 are particularly bad; movs with motion-jpeg encoding seem to do a bit better. I’ve been finding it extremely hard to consistently reproduce these issues. Has anyone experienced similar problems? Are there video formats that have been proven to work well with cinder/quicktime, or ones that are known to cause problems?

This has been my experience too. If I do not need alpha, I use Cinder-WMFVideo, which has been stable for my purposes. I have seen some people (experienced) mention Hap codec for reliable playback on windows. Hap supports alpha, but the downside is having to handle large files.

2 Likes

FWIW, I’ve been doing some more tests. I load multiple videos in my application and the situation appears to improve when I free MovieGlRefs for each video soon as I don’t need it anymore.

Hap Q as codec for some of the more problematic files seems to also improve the situation.

On the topic of Hap: It seems to work for me, but I’m curious whether the GPU decompression is actually utilized? I have only installed the Hap Codec, but there also seem to be various Hap CinderBlocks floating around (all 3+ years old). Is one of those necessary to “properly” use Hap?

It seems to be the case that GPU decompression of Hap needs to be implemented specifically. I started working on updating the Hap Cinderblock for 0.9.1 here: https://github.com/pholz/Cinder-Hap2

1 Like