89 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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 specification
 | |
| 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/raw1)---
 | |
|     !                    (audio/raw...
 | |
|     !                         !
 | |
|     (-------------------------)
 | |
| 
 | |
| 
 | |
| Known stream fourccs are:
 | |
| 
 | |
| Type		Tags		MIME type
 | |
| ------------------------------------------
 | |
| H263		H263 I263	video/x-h263
 | |
| MJPEG		MJPG		image/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		video/x-wmv, wmvversion = (int) 1
 | |
| WMV2		WMV2		video/x-wmv, wmvversion = (int) 2
 | |
| WMV3		WMV3		video/x-wmv, wmvversion = (int) 3
 | |
| WMA1		WMA1		audio/x-wma, wmaversion = (int) 1
 | |
| WMA2		WMA2		audio/x-wma, wmaversion = (int) 2
 | |
| 				audio/x-wma, wmaversion = (int) 3
 | |
| 
 | |
| 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/x-msvideo. 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/format/asfspec.aspx (v01.20.01e, September 2003)
 | |
| 
 | |
| [2] divx at euro.ru. ASF format version 1.0,
 | |
| reconstruction. http://avifile.sourceforge.net/asf-1.0.htm
 |