]> git.sesse.net Git - pkanalytics/commit
Drop QVideoWidget.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 13 Jul 2023 09:12:04 +0000 (11:12 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Thu, 13 Jul 2023 13:18:05 +0000 (15:18 +0200)
commit3e43cd4777ddb314779f6c2be51028e14bd54e6d
tree47402b27f101b7391ae17a2a78622144baee796e
parent38bbba081db455d5f84e64bd74dcc10236fa2120
Drop QVideoWidget.

QVideoWidget is based on GStreamer and horribly buggy, so replace it with
our own homegrown code. This reuses and adapts a lot of code from Nageru
and Movit, but especially the seek code is pretty much written from scratch.

The biggest advantage is that we no longer get random hangs all the time
(which the F5 key would attempt to work around, by restarting the player).
The disadvantages are that we take on a bunch of new code, a direct dependency
on FFmpeg and OpenGL (4.6 for the time being, but can probably be reduced
to much lower if we want to target macOS), and lose sound support.
We get VA-API/VDPAU acceleration, although I'm not sure if the old code
did that for us or not.

The other motivating change is that this will allow us to implement zoom
more easily down the road.

The frame-based seeking is now actually frame-based, instead of trying to
emulate it by going +/- 20 ms.
ffmpeg_raii.cpp [new file with mode: 0644]
ffmpeg_raii.h [new file with mode: 0644]
main.cpp
mainwindow.h
mainwindow.ui
meson.build
quittable_sleeper.h [new file with mode: 0644]
video_widget.cpp [new file with mode: 0644]
video_widget.h [new file with mode: 0644]