libtheora performance regression in soldier
According to zf on IRC, libtheora has a feature called "telemetry" (misleadingly named, it's really just statistics capture) which severely slows down decoding. In Debian 10 it's enabled, because someone asked for it to be enabled a while ago.
GStreamer tries to tell libtheora to turn that feature off, but that results in libtheora turning it on, because it only skips the telemetry feature if the relevant settings are completely untouched, not if they are explicitly set to 0.
From a glance at theora/*.h
it looks as though libtheora might be behaving as documented here, which would make this a gst-plugins-base bug, but it's not completely clear.
-
As a quick workaround, we can patch our libtheora to compile it with --disable-telemetry
.
The real solution seems to be:
-
Prepare a patch for gst-plugins-base to make it only enable the "telemetry" features if their value is not 0 -
Send to upstream -
Send to Debian -
Apply in soldier- gst-plugins-base is not in soldier, Proton compiles its own
and optionally
-
Suggest to libtheora upstream that it should only enable the "telemetry" features if their value is not 0 -
Prepare a patch -
Send to upstream -
Send to Debian if accepted upstream -
Consider applying in soldier instead of disabling the telemetry feature altogether- we considered it, but we will stick with--disable-telemetry
unless someone wants the feature to be brought back
Edited by Simon McVittie