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 774508 - Disable unmaintained, fringe plugins by default
Disable unmaintained, fringe plugins by default
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal blocker
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 774541 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2016-11-16 06:36 UTC by Sebastian Dröge (slomo)
Modified: 2018-11-03 13:56 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sebastian Dröge (slomo) 2016-11-16 06:36:15 UTC
Considering https://scarybeastsecurity.blogspot.gr/2016/11/0day-exploit-compromising-linux-desktop.html and https://scarybeastsecurity.blogspot.gr/2016/11/0day-poc-risky-design-decisions-in.html, we should probably disable various plugins in gst-plugins-bad by default (and only enable directly or via --enable-unmaintained).

There are various others like these two plugins. I would consider everything that is basically unmaintained here, and plugins for very uncommon formats that have an alternative in ffmpeg (that works for us) or even in GStreamer.
Comment 1 Sebastian Dröge (slomo) 2016-11-16 06:36:40 UTC
Should also check if there are similar situations in gst-plugins-good/base/ugly
Comment 2 Jan Schmidt 2016-11-16 09:11:41 UTC
Ack, sure
Comment 3 Sebastian Dröge (slomo) 2016-11-16 09:43:38 UTC
Let's collect a list here then, I prepare mine in a bit. Let's distinguish unmaintained, redundant, and uncommon
Comment 4 Sebastian Dröge (slomo) 2016-11-16 17:09:16 UTC
I propose to move the following ones under the "unmaintained" flag (i.e. disabled by default):

x adpcmdec
x adpcmenc
x audiobuffer
x audiofxbad
x festival
x ivfparse
x ivtc
x jp2kdecimator
x librfb
x segmentclip
x siren
x speed
x stereo
x videosignal
x vmnc
x yadif
x bz2
x daala
x directfb
x gme
x mimic
x modplug
x mpeg2enc
x mplex
x musepack
x neon
x openal
x openni2
x opus
x schroedinger
x spc
x zbar
x vdpau

Anything to add, any comments?
Comment 5 Nicolas Dufresne (ndufresne) 2016-11-16 17:18:35 UTC
zbar, really ? This element just work, I don't see why this should be disabled by default. Opus, really you think it's unmaintained ? And librfb got updated in 1.10.

In my opinion, Element/Plugins that are known to work well shouldn't be subject to that even if they where not touched for a long time.
Comment 6 Tim-Philipp Müller 2016-11-16 17:24:41 UTC
Dunno what we're trying to achieve here tbh. What does 'unmaintained' mean, if they mostly just work fine, but aren't super-commonly used.

Maybe we should focus on things that are autoplugged in decoding pipelines first?

adpcm - well ffmpeg might have support for that, but fact is that millions of people get their GStreamer installed without gst-ffmpeg, so we'd basically be removing decoding support for the most common adpcm variant from GStreamer here for all these people, no? :)

zbar - people use that

mimic - I think we can just remove that (see other bug report)

opus - we can just remove this I think (opusparse) - not sure what its purpose is/was. I don't think it can parse the test vectors, which is the only purpose I can think of.

librfb - kinda useful, and certainly not "unmaintained" - we just bragged about all the improvements in the release notes ;)

mpeg2enc - is this the main/only decent/fully-featured mpeg-2 video encoder? How does it compare to the ffmpeg one? People use this I think.
Comment 7 Sebastian Dröge (slomo) 2016-11-16 17:26:54 UTC
(In reply to Nicolas Dufresne (stormer) from comment #5)
> Opus, really you think it's unmaintained ?

That's opusparse, the decoder/encoder are in base and work just fine. opusparse OTOH is... suboptimal.


For your other comments: taken into account
Comment 8 Sebastian Dröge (slomo) 2016-11-16 17:30:56 UTC
(In reply to Tim-Philipp Müller from comment #6)
> Dunno what we're trying to achieve here tbh. What does 'unmaintained' mean,
> if they mostly just work fine, but aren't super-commonly used.

Basically I want to get rid of all code that nobody cares enough about, and that might have alternatives elsewhere. We have enough things that are carried around in gst-plugins-bad and are actually useful, no need to add more things on top if nobody has the time to care about them, and even more it's a big amount of (bad) code (see vmnc)
 
> Maybe we should focus on things that are autoplugged in decoding pipelines
> first?

Those are the most important ones, yes. I'm fine with also just lowering the ranks of those to NONE for 1.10.1 and then we can see further later.
Comment 9 Sebastian Dröge (slomo) 2016-11-16 17:57:16 UTC
autoplugged of the ones above are:
x adpcmdec (alternative in gst-libav)
x ivfparse (alternative in gst-libav, just activated it in master)
x siren
x vmnc (alternative in gst-libav)
x gme
x modplug
x musepack (alternative in gst-libav)
x schroedinger
x spc (superseded by gme)

Opinions on which ones to set to rank=NONE for 1.10.1?
Comment 10 Reynaldo H. Verdejo Pinochet 2016-11-16 18:52:55 UTC
IMHO "unmaintained elements with known quality issues
and existing gst-usable, feature-comparable alternatives"
should be just marked for elimination[*], giving x time
for them to be saved. I'm OK with the rank=NONE in the
'x' interim, or even disabling building.

The way I see it, as long as the conditions and consequences
are clear, the temporary measure is not that important.

[*] Or demotion to bad if elsewhere?
Comment 11 Alicia Boya García 2018-03-01 18:05:03 UTC
We use opusparse in the MediaSource Extensions implementation of WebKit in order to get Opus frame durations.

WebM and Matroska files have unreliable (often missing, allowed by the Matroska spec) durations, which is a big problem for MSE.

opusparse allows us to rebuild them from the contained Opus packets, which is nice. vorbisparse is used for the same purpose too.

(It does not help with video though... that one cannot be solved in any clean way.)
Comment 12 Edward Hervey 2018-05-04 11:15:56 UTC
*** Bug 774541 has been marked as a duplicate of this bug. ***
Comment 13 GStreamer system administrator 2018-11-03 13:56:48 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/440.