From 61a50361fbb2b0166ce9ffa8a471b45b482b6eec Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Sat, 22 Dec 2001 23:22:30 +0000 Subject: Initial revision Original commit message from CVS: Initial revision --- gst/avi/README | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 gst/avi/README (limited to 'gst/avi/README') 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. + + -- cgit