Describes briefly the design of the ASF demux plugin.
Original commit message from CVS: Describes briefly the design of the ASF demux plugin.
This commit is contained in:
parent
5ee601e2b6
commit
e2f4527056
83
gst/asfdemux/README
Normal file
83
gst/asfdemux/README
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
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
|
Loading…
x
Reference in New Issue
Block a user