gstreamer/gst/asfdemux
Stéphane Loeuillet 861ca32178 ext/dv/gstdvdec.c: remove unneeded comment from dvdec (related to DV 4CC codes in AVI files) moved them in gstreamer/...
Original commit message from CVS:
* ext/dv/gstdvdec.c:
remove unneeded comment from dvdec
(related to DV 4CC codes in AVI files)
moved them in gstreamer/docs/random/mimetypes
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_process_ext_content_desc):
don't send text tags if they are empty
fix mem leak on error path
* gst/ffmpegcolorspace/avcodec.h:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
(gst_ffmpegcsp_avpicture_fill):
* gst/ffmpegcolorspace/imgconvert.c: (img_get_alpha_info):
* gst/ffmpegcolorspace/imgconvert_template.h:
adds BGR32 and BGRA32 to ffmpegcolorspace
(still bad colors, fixing it on next commit)
helps with dvdec outputing BGR32
2005-01-08 12:25:26 +00:00
..
asf.vcproj more working plugins 2004-07-27 21:41:30 +00:00
asfheaders.c gst/asfdemux/: - fix ASF_OBJ_PADDING guid 2004-05-18 01:38:49 +00:00
asfheaders.h gst/asfdemux/: - fix ASF_OBJ_PADDING guid 2004-05-18 01:38:49 +00:00
gstasf.c gst-libs/gst/riff/riff-media.c: Add codec_data handling (like asfdemux used to do). 2004-10-01 10:50:57 +00:00
gstasfdemux.c ext/dv/gstdvdec.c: remove unneeded comment from dvdec (related to DV 4CC codes in AVI files) moved them in gstreamer/... 2005-01-08 12:25:26 +00:00
gstasfdemux.h gst/asfdemux/gstasfdemux.*: You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this feels like. I think we... 2004-06-10 04:23:03 +00:00
gstasfmux.c ext/dv/gstdvdec.c: Set EOS on the element when processing an EOS event. 2004-10-30 06:44:03 +00:00
gstasfmux.h gst/asfdemux/: Add tagging support to demuxer, split out registration in its own and prevent having some tables in ou... 2004-05-02 18:07:39 +00:00
Makefile.am gst/asfdemux/: Add tagging support to demuxer, split out registration in its own and prevent having some tables in ou... 2004-05-02 18:07:39 +00:00
README gst/asfdemux/README gst/wavenc/riff.h gst-libs/gst/riff/riff-ids.h gst-libs/gst/riff/riff-media.c add new 4CC codes f... 2004-12-13 00:47:20 +00:00

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-h323
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		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