video-converter: Implement multi-threaded scaling/conversion
authorSebastian Dröge <sebastian@centricular.com>
Mon, 20 Feb 2017 19:38:17 +0000 (21:38 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 23 Feb 2017 19:55:29 +0000 (21:55 +0200)
commit49ac382b47bfd481621a44155f9533d46a189a26
treea34f7b31d8593c2841b0d0358c0fa9fc04377367
parentd15ad75cafe5b73a6c75d5c27f8582e3e5654a1d
video-converter: Implement multi-threaded scaling/conversion

This adds a property to select the maximum number of threads to use for
conversion and scaling. During processing, each plane is split into
an equal number of consecutive lines that are then processed by each
thread.

During tests, this gave up to 1.8x speedup with 2 threads and up to 3.2x
speedup with 4 threads when converting e.g. 1080p to 4k in v210.

https://bugzilla.gnome.org/show_bug.cgi?id=778974
gst-libs/gst/video/video-converter.c
gst-libs/gst/video/video-converter.h
gst/videoconvert/gstvideoconvert.c
gst/videoconvert/gstvideoconvert.h
gst/videoscale/gstvideoscale.c
gst/videoscale/gstvideoscale.h