After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 740106 - openh264enc: Properties for multi-threading and fastest performance
openh264enc: Properties for multi-threading and fastest performance
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other All
: Normal enhancement
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-11-14 07:16 UTC by Robert Swain
Modified: 2018-02-12 19:22 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Robert Swain 2014-11-14 07:16:07 UTC
Currently openh264enc uses only one slice which forces it to only use one thread as threading is slice-based.

The following pull request against openwebrtc-gst-plugins on github adds a slice-mode property that can be either n-slices or auto. If auto it will use a number of slices per frame equal to the number of threads. If n-slices, it will use a number of slices per frame equal to the num-slices property.

Some other properties were also added that improve performance when disabled.

The defaults remained intact with one exception. As a final and separate commit I changed the slice-mode default to auto in order for the default behaviour to be threads=0 slice-mode=auto which makes openh264 use a number of threads and slices according to your CPU.

Patches here: https://github.com/EricssonResearch/openwebrtc-gst-plugins/pull/15

Note: openh264 currently limits the maximum number of threads to 4 - https://github.com/cisco/openh264/issues/1489
Comment 1 Sebastian Dröge (slomo) 2014-11-14 11:29:01 UTC
See my comments in the github pull request. Merging this into gst-plugins-bad will require the patch to be rebased
Comment 2 Tim-Philipp Müller 2018-02-12 19:22:35 UTC
This seems to have been done ages ago (though I note that slice-mode defaults to "n-slices" and not "auto").