New QtAV player has been abandoned

October 11, 2020

As you might have noticed - all various video player plugins have recently been removed from Subtitle Composer.

They were all using external video players or libraries and each one of them had it share of problems integrating and working nicely with Subtitle Composer. Different handling of audio volume, frequency of notifications, seek precision, error handling/reporting and so on. Also none was working under Wayland.

Also using different backends made it very time consuming to test changes in Subtitle Composer.

After moving the project to KDE build infrastructure I had to make build scripts of various video backends and their dependencies. That would likely amount to 100+ new packages/build scripts and who knows what else.

Instead - have decided to drop all those backend and use QtAV - library made for Qt that would handle all FFmpeg calls and rendering. QtAV seemed great at the moment, but it ended up much worse than expected.

After inspecting QtAV code when I was trying to patch/fix things I’ve decided to - remove it all again. Now Subtitle Composer uses FFmpeg libraries directly for decoding media streams and does all rendering and color conversion using OpenGL shaders. You can read all about adventures with color conversion in a post I’ll write soon.

Some people preferred using GStreamer. Over the years I had experiences with GStreamer and it’s plugins not being able to open all formats/containers/codecs (probably due to broken/bad files where FFmpeg was much more tolerant and robust) and sometimes even crashing. Also GStreamer is designed in similar fashion to Microsoft’s DirectShow - it has a pipeline with bunch of decoders/encoders/sources/sink which is very nice for hacking stuff from command line, but find it disgusting to code with.

— Mladen