summaryrefslogtreecommitdiffstats
path: root/gst/avi/README
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2001-12-22 23:22:30 +0000
committerAndy Wingo <wingo@pobox.com>2001-12-22 23:22:30 +0000
commit61a50361fbb2b0166ce9ffa8a471b45b482b6eec (patch)
tree9e3b1428b9e2d1a0d404b501f2329911bc6f0a50 /gst/avi/README
parenta2c423bbad0ef5dbc7698c2e27221594d296018d (diff)
Initial revision
Original commit message from CVS: Initial revision
Diffstat (limited to 'gst/avi/README')
-rw-r--r--gst/avi/README72
1 files changed, 72 insertions, 0 deletions
diff --git a/gst/avi/README b/gst/avi/README
new file mode 100644
index 00000000..7ccd6206
--- /dev/null
+++ b/gst/avi/README
@@ -0,0 +1,72 @@
+The avi decoder plugins
+-----------------------
+
+The avi decoder consists of a set of gstreamer plugins:
+
+ - demuxer (avidemux)
+ - avi to gstreamer type converter (avitypes)
+ - windows dlls wrappers.
+
+the avidecoder element uses the above plugins to perform the avi
+decoding. It is constructed as a custom bin which initially only has
+the demuxer element in it. The demuxer has a set of padtemplates for
+raw audio and video.
+
+ (------------------------------------)
+ ! avidecoder !
+ ! (video/raw)...
+ ! (----------) !
+ ! ! demuxer (video/avi, auds).. !
+ ! ! ! !
+ ! -src ! !
+ ! / ! (video/avi, vids).. !
+ - src ! ! !
+ ! (----------) (audio/raw)...
+ ! !
+ (------------------------------------)
+
+the demuxer has a set of padtemplates for the raw avi header properties.
+
+The avi decoder will act on the new_pad signal of the demuxer element
+and will attach an avitype plugin to the new pad. Caps negotiation will
+convert the raw avi caps to the gstreamer caps. If the src pad of the
+avitypes plugin are compatible with the avidecoder padtemplate, the
+avitype pad is ghosted to the avidecoder bin, this is the case where no
+codec is needed (for raw PCM samples, for example).
+
+When the avitypes caps are not compatible with one of the avidecoder
+templates, a static autoplugger is used the find an element to connect
+the demuxers pad to the decoders padtemplate.
+
+When no element could be found, an windec plugin is attached to the
+demuxers pad and the avitypes plugin is removed from the decoder.
+
+
+example:
+--------
+
+ An avidecoder that has a video pad (decoded with windows dlls) and an
+ audio pad (raw PCM).
+
+ (----------------------------------------------------------------)
+ ! avidecoder (--------) (------) !
+ ! !avitypes! !windec! /-- (video/raw)
+ ! (----------) /-sink src--sink src ----- !
+ ! !demuxer (video/avi, ! ! ! ! !
+ ! ! ! auds).. (--------) (------) !
+ ! -sink ! (--------) !
+ ! / ! (video/avi, !avitypes! !
+ -sink ! ! vids).. ! ! !
+ ! (----------) \-sink src -------------------- (audio/raw)
+ ! (--------) !
+ (----------------------------------------------------------------)
+
+
+
+TODO
+----
+
+automatically generate the padtemplates from all possible avi types
+found in the registry.
+
+