mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
docs/design/draft-klass.txt: Some updates and clarifications.
Original commit message from CVS: * docs/design/draft-klass.txt: Some updates and clarifications.
This commit is contained in:
parent
fe37c5aad2
commit
9857a3cea2
2 changed files with 55 additions and 25 deletions
|
@ -1,3 +1,8 @@
|
|||
2006-02-28 Wim Taymans <wim@fluendo.com>
|
||||
|
||||
* docs/design/draft-klass.txt:
|
||||
Some updates and clarifications.
|
||||
|
||||
2006-02-28 Wim Taymans <wim@fluendo.com>
|
||||
|
||||
* docs/design/draft-klass.txt:
|
||||
|
|
|
@ -39,21 +39,35 @@ Proposal:
|
|||
- functional
|
||||
|
||||
Categories are base on _intended usage_ of the element. Some elements
|
||||
might have other sideeffects (especially for filers/effects). The purpose
|
||||
might have other side-effects (especially for filers/effects). The purpose
|
||||
is to list enough keywords so that applications can do meaningfull filtering,
|
||||
not to completely describe the functionality, that is expressed in caps etc..
|
||||
|
||||
* Source : produces data
|
||||
* Sink : consumes data
|
||||
* Filter : transforms data, no modification on the data is
|
||||
intended (although it might be unavoidable)
|
||||
* Effect : applies an effect to some data, changes to data is
|
||||
intended (although it might be unavoidable). The
|
||||
filter can decide on input and output caps independently
|
||||
of the stream contents (GstBaseTransform).
|
||||
* Effect : applies an effect to some data, changes to data are
|
||||
intended.
|
||||
* Demuxer : splits audio, video, ... from a stream
|
||||
* Muxer : combines audio, video, ... into one stream
|
||||
* Decoder : decodes encoded data into a raw format
|
||||
* Encoder : encodes raw data into an encoded format
|
||||
* Visualisation : transforms audio into video
|
||||
* Muxer : interleave audio, video, ... into one stream, this is
|
||||
like mixing but without losing or degrading each separate
|
||||
input stream. The reverse operation is possible with a
|
||||
Demuxer that reproduces the exact same input streams.
|
||||
* Decoder : decodes encoded data into a raw format, there is typically
|
||||
no relation between input caps and output caps. The output
|
||||
caps are defined in the stream data. This separates the
|
||||
decoder from the filter.
|
||||
* Encoder : encodes raw data into an encoded format.
|
||||
* Mixer : combine audio, video, .. this is like muxing but with
|
||||
applying some algorithm so that the individual streams
|
||||
are not extractable anymore, there is therefore no
|
||||
reverse operation to mixing.
|
||||
* Converter : convert audio into video, text to audio, ... The converter
|
||||
typically works on raw types only. The source media type
|
||||
is listed first.
|
||||
* Analyzer : reports about the stream contents.
|
||||
* Debug : tee, identity, fakesrc, navseek, ...
|
||||
* Control : controls some aspect of a hardware device
|
||||
|
@ -83,37 +97,42 @@ Proposal:
|
|||
* Payloader : encapsulate as payload (RTP, RDT,.. )
|
||||
* Depayloader : strip a payload (RTP, RDT,.. )
|
||||
* RTP : intended to be used in RTP applications
|
||||
* Device : operates on some hardware device (disk, network,
|
||||
audio card, video card, usb, ...)
|
||||
* Visualisation : intended to be used for audio visualisation
|
||||
|
||||
3) suggested order:
|
||||
|
||||
<functional>/<media type>/<extra...>
|
||||
<functional>[/<media type>]*[/<extra...>]*
|
||||
|
||||
4) examples:
|
||||
|
||||
apedemux : Extracter/Metadata
|
||||
autoaudiosink : Sink/Audio
|
||||
cairotimeoverlay : Effect/Muxer/Video/Text
|
||||
audiotestsrc : Source/Audio
|
||||
autoaudiosink : Sink/Audio/Device
|
||||
cairotimeoverlay : Mixer/Video/Text
|
||||
dvdec : Decoder/Video
|
||||
dvdemux : Demuxer
|
||||
goom : Visualisation
|
||||
goom : Converter/Audio/Video
|
||||
id3demux : Extracter/Metadata
|
||||
udpsrc : Source/Network/Protocol
|
||||
videomixer : Effect/Muxer/Video
|
||||
ffmpegcolorspace : Filter/Video (intended use to convert video)
|
||||
udpsrc : Source/Network/Protocol/Device
|
||||
videomixer : Mixer/Video
|
||||
ffmpegcolorspace : Transform/Video (intended use to convert video with as little
|
||||
visible change as possible)
|
||||
vertigotv : Effect/Video (intended use is to change the video)
|
||||
volume : Effect/Audio (intended use is to change the audio)
|
||||
volume : Effect/Audio (intended use is to change the audio data)
|
||||
vorbisdec : Decoder/Audio
|
||||
vorbisenc : Encoder/Audio
|
||||
oggmux : Muxer
|
||||
adder : Effect/Muxer/Audio
|
||||
adder : Mixer/Audio
|
||||
videobox : Effect/Video
|
||||
alsamixer : Control/Audio
|
||||
audioconvert : Filter/Audio
|
||||
audioresample : Filter/Audio
|
||||
xvimagesink : Sink/Video
|
||||
alsamixer : Control/Audio/Device
|
||||
audioconvert : Transform/Audio
|
||||
audioresample : Transform/Audio
|
||||
xvimagesink : Sink/Video/Device
|
||||
navseek : Debug
|
||||
decodebin : Decoder/Demuxer
|
||||
level : Filter/Analyzer/Audio
|
||||
level : Transform/Analyzer/Audio
|
||||
|
||||
Use cases:
|
||||
|
||||
|
@ -123,13 +142,13 @@ Use cases:
|
|||
|
||||
- get list of muxers (pitivi):
|
||||
|
||||
klass.contains (Muxer & !Effect)
|
||||
klass.contains (Muxer)
|
||||
|
||||
- get list of encoders (pitivi):
|
||||
- get list of video encoders (pitivi):
|
||||
|
||||
klass.contains (Encoder)
|
||||
klass.contains (Encoder & video)
|
||||
|
||||
- Get a list of all visualisations (totem):
|
||||
- Get a list of all audio/video visualisations (totem):
|
||||
|
||||
klass.contains (Visualisation)
|
||||
|
||||
|
@ -137,4 +156,10 @@ Use cases:
|
|||
|
||||
klass.contains (Visualisation | Demuxer | Decoder | (Extractor & Metadata))
|
||||
|
||||
- Get a list of elements that can capture from an audio device (gst-properties):
|
||||
|
||||
klass.contains (Source & Audio & Device)
|
||||
|
||||
* filters out audiotestsrc, since it is not a device
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue