Bug 532470 - Review Request: gstreamer-plugins-bad-free - GStreamer streaming media framework "bad" plug-ins
Summary: Review Request: gstreamer-plugins-bad-free - GStreamer streaming media framew...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Benjamin Otte
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 548482
TreeView+ depends on / blocked
 
Reported: 2009-11-02 14:36 UTC by Bastien Nocera
Modified: 2010-02-01 15:53 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-02-01 15:53:43 UTC
Type: ---
Embargoed:
otte: fedora-review+
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Bastien Nocera 2009-11-02 14:36:05 UTC
Spec URL: http://people.fedoraproject.org/~hadess/gstreamer-plugins-bad/gstreamer-plugins-bad.spec
SRPM URL: http://people.fedoraproject.org/~hadess/gstreamer-plugins-bad/gstreamer-plugins-bad-0.10.13-11.fc12.src.rpm
Description: GStreamer is a streaming media framework, based on graphs of elements which
operate on media data.

This package contains plug-ins that aren't tested
well enough, or the code is not of good enough quality.

Comment 1 Bastien Nocera 2009-11-02 14:38:26 UTC
Notes:
- gstreamer-plugins-good would need to be updated to remove plugins backported from -bad (such as the Farsight plugins used by telepathy)
- this obsoletes the flumpegdemux plugin (which got moved into -bad some time ago, and that we keep syncing with the package)
- The code here shouldn't contain any problematic source code, as this code would usually live in library depedencies)

Comment 2 Bill Nottingham 2009-11-02 15:45:51 UTC
Would this mean that we'd have gst-plugins-bad in Fedora, and some other repos would have additional gst-plugins-bad, or gst-plugins-bad-extras, etc?

Comment 3 Bastien Nocera 2009-11-02 16:10:18 UTC
(In reply to comment #2)
> Would this mean that we'd have gst-plugins-bad in Fedora, and some other repos
> would have additional gst-plugins-bad, or gst-plugins-bad-extras, etc?  

Yep, we'd have the broken code ones, and 3rd-party repos the ones with problematic code.

Comment 4 Peter Lemenkov 2009-11-06 15:08:04 UTC
I still wonder who invented such ugly naming scheme for gstreamer plugins? Who is this completely braindamaged guy, who combines all plugins into several packs, which names says nothing about their actual content.

I still hope, that sometimes there will be a great developer, who will split these good/bad/ugly/etc packages into something more suitable for end-users.

Comment 5 Hans de Goede 2009-11-07 14:30:02 UTC
I think it is a very good idea to put the eligible parts of -bad into Fedora and I would like to review this.

But I would first like to see a review by Spot of the assertion:
"The code here shouldn't contain any problematic source code, as this code
would usually live in library depedencies [sic])"

I find at least some of the muxes worrying.

Comment 7 Hans de Goede 2009-11-08 07:37:47 UTC
Spot to be clear, you were added to the CC because of comment #5

Comment 8 Tom "spot" Callaway 2009-11-09 01:13:05 UTC
I'll have to get to this when I have the proper time, but in general, code that simply does mux/demux is okay for Fedora. I'm out of the country for meetings for the next 7 days or so, so this won't happen anytime soon. Hans, if you or someone else can generate a list of the modules and the formats they support (and if possible, the types of operations they do), that will save me some time.

Comment 9 Hans de Goede 2009-11-09 10:19:43 UTC
Ok, below is a list, note that it only contains plugins in -bad which have all the code in -bad, I did not list the ones which are just wrappers around external libraries, as I assume that any problematic code for those will live in the libraries not in the wrappers.

I also left out plugins which we are already patching into our current
gstreamer-plugins-good (former farsight plugins, mpeg demux).

And I also left out all the system specific plugins which are plugins which
talk to operating system provided API's like oss4 on linux, amc on windows, etc.

aacparse:        ADIF and ADTS stream parser
adpcmdec:        adpcm decoder based on ADPCM decoders in libsndfile
aiffparse:       AIFF (.wav file) header parser    
amrparse:        .amr file header parser
asfmux:          ASF muxer
bayer:           bayer decoder (does not seem to use one of the problem algos) 
camerabin:       High level api for DC (Digital Camera) application
cdxaparse:       Parse a .dat file from (S)VCD into raw MPEG-1
dccp:            transfer data over the network via DCCP
debugutils:      Collection of elements that may be useful for debugging
dvdspu:          DVD Sub-picture Overlay element
festival:        Synthesizes plain text into audio
freeze:          Stream freezer
frei0r:          glue plugin to be able to use frei0r plugins in gstreamer
h264parse:       Element parsing raw h264 streams
hdvparse:        HDV private stream parser
id3tag:          ID3 v1 and v2 muxing plugin
legacyresample:  Resamples audio (which used to be in gst-plugins-base)
librfb:          Connects to a VNC server and decodes RFB stream
mpeg4videoparse: MPEG-4 video parser
mpegpsmux:       MPEG-PS muxer
mpegtsmux:       MPEG-TS muxer
mpegvideoparse:  MPEG-1 and MPEG-2 video parser
mve:             Interplay MVE movie format demux/mux & dec/enc
mxf:             MXF muxer and demuxer
nsf:             Nsf decoder
nuvdemux:        Demuxes MythTVs NuppelVideo .nuv files
pcapparse:       Element parsing raw pcap streams
pnm:             PNM encoder / decoder
qtmux:           QT muxer
rawparse:        Parses byte streams into raw frames
real:            Decode real audio / video using realplayer binary plugins
scaletempo:      Scale audio tempo in sync with playback rate
sdp:             configure streaming sessions using SDP
selector:        input/output stream selector elements
shapewipe:       Shape Wipe transition filter
siren:           Siren encoder/decoder
speed:           Set speed/pitch on audio/raw streams (resampler)
stereo:          Muck with the stereo signal, enhance it's 'stereo-ness'
subenc:          subtitle encoders
tta:             TTA lossless audio format handling
videomeasure:    Various video measurers
videosignal:     Various video signal analysers
vmnc:            a decoder for the VMWare VMnc video codec
                 (essentially a serialisation of RFB, the VNC protocol)

Comment 10 Bill Nottingham 2009-11-09 17:19:44 UTC
(In reply to comment #4)
> I still wonder who invented such ugly naming scheme for gstreamer plugins? Who
> is this completely braindamaged guy, who combines all plugins into several
> packs, which names says nothing about their actual content.

Sergio Leone. The other options were 'gstreamer-a-fistful-of-plugins' and 'gstreamer-a-few-plugins-more'.

> I still hope, that sometimes there will be a great developer, who will split
> these good/bad/ugly/etc packages into something more suitable for end-users.  

More seriously, I would think this is less of an issue with the current gst plugin auto-install.

Comment 13 Tom "spot" Callaway 2010-01-15 20:04:47 UTC
Okay. Apologies for the delay in reviewing this:

The following items are _NOT_ acceptable for Fedora:

aacparse:        ADIF and ADTS stream parser
amrparse:        .amr file header parser
asfmux:          ASF muxer
cdxaparse:       Parse a .dat file from (S)VCD into raw MPEG-1
dvdspu:          DVD Sub-picture Overlay element
h264parse:       Element parsing raw h264 streams
hdvparse:        HDV private stream parser
mpegpsmux:       MPEG-PS muxer
mpegtsmux:       MPEG-TS muxer
mpeg4videoparse: MPEG-4 video parser
mpegvideoparse:  MPEG-1 and MPEG-2 video parser
qtmux:           QT muxer
siren:           Siren encoder/decoder

The following items are acceptable for Fedora:

adpcmdec:        adpcm decoder based on ADPCM decoders in libsndfile
aiffparse:       AIFF (.wav file) header parser    
bayer:           bayer decoder (does not seem to use one of the problem algos) 
camerabin:       High level api for DC (Digital Camera) application
dccp:            transfer data over the network via DCCP
debugutils:      Collection of elements that may be useful for debugging
festival:        Synthesizes plain text into audio
freeze:          Stream freezer
frei0r:          glue plugin to be able to use frei0r plugins in gstreamer
id3tag:          ID3 v1 and v2 muxing plugin
legacyresample:  Resamples audio (which used to be in gst-plugins-base)
librfb:          Connects to a VNC server and decodes RFB stream
mve:             Interplay MVE movie format demux/mux & dec/enc
mxf:             MXF muxer and demuxer
nsf:             Nsf decoder
nuvdemux:        Demuxes MythTVs NuppelVideo .nuv files
pcapparse:       Element parsing raw pcap streams
pnm:             PNM encoder / decoder
rawparse:        Parses byte streams into raw frames
scaletempo:      Scale audio tempo in sync with playback rate
sdp:             configure streaming sessions using SDP
selector:        input/output stream selector elements
shapewipe:       Shape Wipe transition filter
speed:           Set speed/pitch on audio/raw streams (resampler)
stereo:          Muck with the stereo signal, enhance it's 'stereo-ness'
subenc:          subtitle encoders
tta:             TTA lossless audio format handling
videomeasure:    Various video measurers
videosignal:     Various video signal analysers
vmnc:            a decoder for the VMWare VMnc video codec
                 (essentially a serialisation of RFB, the VNC protocol)

I question the value of including:

real:            Decode real audio / video using realplayer binary plugins

Since it does nothing without the proprietary real player bits. However, there is no legal reason to prevent it.

Comment 14 Hans de Goede 2010-01-16 10:16:54 UTC
Spot,

Thanks for the review. A bit of an obious question, but to be sure: this means we
cannot use pristine upstream tarbals, but must use a special one with all the directories for the above not acceptable plugins removed, correct ?

Thanks,

Hans

Comment 15 Tom "spot" Callaway 2010-01-16 16:39:04 UTC
That's correct.

Comment 16 Thomas Vander Stichele 2010-01-26 09:16:44 UTC
(In reply to comment #4)
> I still wonder who invented such ugly naming scheme for gstreamer plugins? 

I don't think you wondered really hard because it's not that hard to find who did.  It was me.

> Who
> is this completely braindamaged guy, who combines all plugins into several
> packs, which names says nothing about their actual content.

If memory serves, the same guy that you interviewed with for a job here!

> I still hope, that sometimes there will be a great developer, who will split
> these good/bad/ugly/etc packages into something more suitable for end-users.    

And I still hope that some people will not assume everyone else is stupid just because they're talking on the internet.

Comment 17 Bastien Nocera 2010-01-26 12:00:34 UTC
(In reply to comment #13)
> Okay. Apologies for the delay in reviewing this:
> 
> The following items are _NOT_ acceptable for Fedora:
> 
> aacparse:        ADIF and ADTS stream parser
> amrparse:        .amr file header parser
> asfmux:          ASF muxer
> cdxaparse:       Parse a .dat file from (S)VCD into raw MPEG-1
> dvdspu:          DVD Sub-picture Overlay element
> h264parse:       Element parsing raw h264 streams
> hdvparse:        HDV private stream parser
> mpegpsmux:       MPEG-PS muxer
> mpegtsmux:       MPEG-TS muxer
> mpeg4videoparse: MPEG-4 video parser
> mpegvideoparse:  MPEG-1 and MPEG-2 video parser
> qtmux:           QT muxer
> siren:           Siren encoder/decoder

Apart from the muxers, I actually think the parsers are fine. We already have parsers for MP3s in Fedora, as well as mpegvideoparse (including the demuxer) in gstreamer-plugins-flumpegdemux.

Comment 18 Tim-Philipp Müller 2010-01-26 12:36:17 UTC
For what it's worth, most of these parsers are 99% GObject/GStreamer boilerplate stuff - and the rest of the code that does the actual parsing is not that different from code that is already contained in the typefinders in gst-plugins-base, esp. in case of the audio parsers.

> qtmux

Doesn't Fedora ship qtdemux from gst-plugins-good? If so, why is qtmux different?

Comment 19 Tom "spot" Callaway 2010-01-27 15:32:34 UTC
After reconsideration, these are the only items (from this list) which we cannot include in Fedora:

dvdspu:          DVD Sub-picture Overlay element
siren:           Siren encoder/decoder

Comment 21 Tom "spot" Callaway 2010-01-27 21:21:07 UTC
Lifting FE-Legal, thanks for your help Bastien.

Comment 22 Benjamin Otte 2010-01-28 11:37:03 UTC
Looks good to me.

(And sorry for asking so many questions on IRC, Bastien.)

Comment 23 Bastien Nocera 2010-01-28 14:02:30 UTC
New Package CVS Request
=======================
Package Name: gstreamer-plugins-bad-free
Short Description: GStreamer streaming media framework "bad" plug-ins
Owners: hadess
Branches: F-12 devel
InitialCC: company

Comment 24 Kevin Fenzi 2010-01-31 18:19:10 UTC
CVS done (by process-cvs-requests.py).

Comment 25 Bastien Nocera 2010-02-01 15:53:43 UTC
Fixed in rawhide.

Will push to F12 in the next round of gstreamer updates.


Note You need to log in before you can comment on or make changes to this bug.