mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-11 09:55:36 +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>
|
2006-02-28 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
* docs/design/draft-klass.txt:
|
* docs/design/draft-klass.txt:
|
||||||
|
|
|
@ -39,21 +39,35 @@ Proposal:
|
||||||
- functional
|
- functional
|
||||||
|
|
||||||
Categories are base on _intended usage_ of the element. Some elements
|
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,
|
is to list enough keywords so that applications can do meaningfull filtering,
|
||||||
not to completely describe the functionality, that is expressed in caps etc..
|
not to completely describe the functionality, that is expressed in caps etc..
|
||||||
|
|
||||||
* Source : produces data
|
* Source : produces data
|
||||||
* Sink : consumes data
|
* Sink : consumes data
|
||||||
* Filter : transforms data, no modification on the data is
|
* Filter : transforms data, no modification on the data is
|
||||||
intended (although it might be unavoidable)
|
intended (although it might be unavoidable). The
|
||||||
* Effect : applies an effect to some data, changes to data is
|
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.
|
intended.
|
||||||
* Demuxer : splits audio, video, ... from a stream
|
* Demuxer : splits audio, video, ... from a stream
|
||||||
* Muxer : combines audio, video, ... into one stream
|
* Muxer : interleave audio, video, ... into one stream, this is
|
||||||
* Decoder : decodes encoded data into a raw format
|
like mixing but without losing or degrading each separate
|
||||||
* Encoder : encodes raw data into an encoded format
|
input stream. The reverse operation is possible with a
|
||||||
* Visualisation : transforms audio into video
|
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.
|
* Analyzer : reports about the stream contents.
|
||||||
* Debug : tee, identity, fakesrc, navseek, ...
|
* Debug : tee, identity, fakesrc, navseek, ...
|
||||||
* Control : controls some aspect of a hardware device
|
* Control : controls some aspect of a hardware device
|
||||||
|
@ -83,37 +97,42 @@ Proposal:
|
||||||
* Payloader : encapsulate as payload (RTP, RDT,.. )
|
* Payloader : encapsulate as payload (RTP, RDT,.. )
|
||||||
* Depayloader : strip a payload (RTP, RDT,.. )
|
* Depayloader : strip a payload (RTP, RDT,.. )
|
||||||
* RTP : intended to be used in RTP applications
|
* 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:
|
3) suggested order:
|
||||||
|
|
||||||
<functional>/<media type>/<extra...>
|
<functional>[/<media type>]*[/<extra...>]*
|
||||||
|
|
||||||
4) examples:
|
4) examples:
|
||||||
|
|
||||||
apedemux : Extracter/Metadata
|
apedemux : Extracter/Metadata
|
||||||
autoaudiosink : Sink/Audio
|
audiotestsrc : Source/Audio
|
||||||
cairotimeoverlay : Effect/Muxer/Video/Text
|
autoaudiosink : Sink/Audio/Device
|
||||||
|
cairotimeoverlay : Mixer/Video/Text
|
||||||
dvdec : Decoder/Video
|
dvdec : Decoder/Video
|
||||||
dvdemux : Demuxer
|
dvdemux : Demuxer
|
||||||
goom : Visualisation
|
goom : Converter/Audio/Video
|
||||||
id3demux : Extracter/Metadata
|
id3demux : Extracter/Metadata
|
||||||
udpsrc : Source/Network/Protocol
|
udpsrc : Source/Network/Protocol/Device
|
||||||
videomixer : Effect/Muxer/Video
|
videomixer : Mixer/Video
|
||||||
ffmpegcolorspace : Filter/Video (intended use to convert 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)
|
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
|
vorbisdec : Decoder/Audio
|
||||||
vorbisenc : Encoder/Audio
|
vorbisenc : Encoder/Audio
|
||||||
oggmux : Muxer
|
oggmux : Muxer
|
||||||
adder : Effect/Muxer/Audio
|
adder : Mixer/Audio
|
||||||
videobox : Effect/Video
|
videobox : Effect/Video
|
||||||
alsamixer : Control/Audio
|
alsamixer : Control/Audio/Device
|
||||||
audioconvert : Filter/Audio
|
audioconvert : Transform/Audio
|
||||||
audioresample : Filter/Audio
|
audioresample : Transform/Audio
|
||||||
xvimagesink : Sink/Video
|
xvimagesink : Sink/Video/Device
|
||||||
navseek : Debug
|
navseek : Debug
|
||||||
decodebin : Decoder/Demuxer
|
decodebin : Decoder/Demuxer
|
||||||
level : Filter/Analyzer/Audio
|
level : Transform/Analyzer/Audio
|
||||||
|
|
||||||
Use cases:
|
Use cases:
|
||||||
|
|
||||||
|
@ -123,13 +142,13 @@ Use cases:
|
||||||
|
|
||||||
- get list of muxers (pitivi):
|
- 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)
|
klass.contains (Visualisation)
|
||||||
|
|
||||||
|
@ -137,4 +156,10 @@ Use cases:
|
||||||
|
|
||||||
klass.contains (Visualisation | Demuxer | Decoder | (Extractor & Metadata))
|
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