dvbsubenc: Add DVB Subtitle encoder
authorJan Schmidt <jan@centricular.com>
Tue, 7 Apr 2020 11:47:22 +0000 (21:47 +1000)
committerJan Schmidt <jan@centricular.com>
Wed, 17 Jun 2020 02:50:13 +0000 (12:50 +1000)
commit1cf3cae5e1e35c2e8eb8a919db77f2970e743676
treefc0411d02fc3ad55378912f49b85fb6406db99f0
parentf899728dd45bbf154123bca3c1c8c9e2b6af5c24
dvbsubenc: Add DVB Subtitle encoder

Add an element that converts AYUV video frames to a DVB
subpicture stream.

It's fairly simple for now. Later it would be good to support
input via a stream that contains only GstVideoOverlayComposition
meta.

The element searches each input video frame for the largest
sub-region containing non-transparent pixels and encodes that
as a single DVB subpicture region. It can also do palette
reduction of the input frames using code taken from
libimagequant.

There are various FIXME for potential improvements for now, but
it works.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1227>
24 files changed:
docs/plugins/gst_plugins_cache.json
gst/dvbsubenc/gstdvbsubenc-util.c [new file with mode: 0644]
gst/dvbsubenc/gstdvbsubenc.c [new file with mode: 0644]
gst/dvbsubenc/gstdvbsubenc.h [new file with mode: 0644]
gst/dvbsubenc/libimagequant/CHANGELOG [new file with mode: 0644]
gst/dvbsubenc/libimagequant/COPYRIGHT [new file with mode: 0644]
gst/dvbsubenc/libimagequant/README.md [new file with mode: 0644]
gst/dvbsubenc/libimagequant/blur.c [new file with mode: 0644]
gst/dvbsubenc/libimagequant/blur.h [new file with mode: 0644]
gst/dvbsubenc/libimagequant/libimagequant.c [new file with mode: 0644]
gst/dvbsubenc/libimagequant/libimagequant.h [new file with mode: 0644]
gst/dvbsubenc/libimagequant/mediancut.c [new file with mode: 0644]
gst/dvbsubenc/libimagequant/mediancut.h [new file with mode: 0644]
gst/dvbsubenc/libimagequant/mempool.c [new file with mode: 0644]
gst/dvbsubenc/libimagequant/mempool.h [new file with mode: 0644]
gst/dvbsubenc/libimagequant/nearest.c [new file with mode: 0644]
gst/dvbsubenc/libimagequant/nearest.h [new file with mode: 0644]
gst/dvbsubenc/libimagequant/pam.c [new file with mode: 0644]
gst/dvbsubenc/libimagequant/pam.h [new file with mode: 0644]
gst/dvbsubenc/libimagequant/viter.c [new file with mode: 0644]
gst/dvbsubenc/libimagequant/viter.h [new file with mode: 0644]
gst/dvbsubenc/meson.build [new file with mode: 0644]
gst/meson.build
meson_options.txt