mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-16 13:04:18 +00:00
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
1 changed files with 83 additions and 0 deletions
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…
Reference in a new issue