gstreamer/gst/asfdemux/README
Owen Fraser-Green e2f4527056 Describes briefly the design of the ASF demux plugin.
Original commit message from CVS:
Describes briefly the design of the ASF demux plugin.
2003-01-23 11:20:20 +00:00

83 lines
2.4 KiB
Text

ASF Demuxer Plugin
==================
Overview
--------
This plugin is a demuxer for Microsoft's ASF Advanced Streaming Format
or ASF [1]. This demuxer only supports ASF v1.0 since the vast
majority of existing ASF files use that version. The spcification
has been derived from a third party source [2] without reference to
the original.
Design
------
The ASF format can carry any combination of audio, video or
'ASF_Command_Media' streams. For simplicity it is assumed that each
file can carry up to 16 audio streams and 16 video streams. These are
implemented as dynamic pads and appear as appropriate once the file
headers have been parsed.
(-------------------------)
! asfdemux !
! (video/raw0)---
! (video/raw1)---
! (video/raw...
--- src !
! (audio/raw0)---
! (audio/raw0)---
! (audio/raw...
! !
(-------------------------)
Known stream fourccs are:
Type Tags MIME type
------------------------------------------
H263 H263 I263
MJPEG MJPG video/jpeg
MPEG4 DIVX divx DX50 video/mpeg
XVID xvid mp4s
MP4S M4S2 m4s2
0x04000000
MSMPEG4V1 MPG4 video/mpeg
MSMPEG4V2 MP42 video/mpeg
MSMPEG4V3 MP43 DIV3 video/mpeg
WMV1 WMV1
These video stream headers is very similar to that used in the AVI
format as are the audio stream headers. In addition the content types
are basically the same also so, for compatibility with existing
plugins the src pads are set up as video/avi. This enables
compatibility with the ffmpeg plugin.
The demuxing process begins with the loop function gst_asf_demux_loop
and parses the file in a recursive tree as follows:
gst_asf_demux_loop()
+-> gst_asf_demux_process_object() <----
+-> gst_asf_demux_process_stream() \
|-> gst_asf_demux_process_file() |
|-> gst_asf_demux_process_header() --+
|-> gst_asf_demux_process_data()
+-> gst_asf_demux_process_segment()
+-> gst_asf_demux_process_chunk()
Todo
----
- Support for ASF v2.0
- Support for command media streams
References
----------
[1] Microsoft. ASF Specification - Windows Media Technologies.
http://www.microsoft.com/windows/windowsmedia/WM7/format/asfspec11300e.asp
[2] divx at euro.ru. ASF format version 1.0,
reconstruction. http://avifile.sourceforge.net/asf-1.0.htm