| Specification for Stereoscopic Windows Media Files v0.2This is a preliminary specification and subject to change. ContentIntroductionIt is the goal of this specification to define a format for stereoscopic 
video files, based on Windows Media technology. The suggested format is easy to 
implement and offers the following features: 
  Configuration-free playback: Playback is possible without any prior 
  configuration. All information required for playback is embedded in the video 
  file.3D notification: Notifies the user when a 3D file is opened in a 2D 
  video playback software.Backwards compatibility (optional): 2D video playback software is 
  able to play a stereoscopic Windows Media file, rendering the left view only.High definition compatibility (optional): Encoding high definition 
  stereoscopic content in traditional side-by-side or over/under format causes 
  performance problems because current codec implementations cannot make use of 
  multi processor systems and dual core CPUs. Using separate streams for left 
  and right view solves the issue.Multi language compatibility: The format supports multiple audio 
  tracks.Digital Rights Management: A commercially viable format requires 
  support for rights management mechanisms. The specification for stereoscopic Windows Media files is built upon 
Microsoft's
ASF Specification. Multi language compatibility and Digital Rights 
Management are standard features of the Windows Media format and will not be 
addressed in this document. CodecsSMTPE VC-1 Advanced Profile (= Windows Media Video 9 Advanced 
Profile) should be used as video codec. Windows Media Audio 9 should 
be used for mono and stereo audio content, Windows Media Audio 9 Professional 
for high definition or multi channel audio content. Video StreamsLeft and right view should be either encoded as single video stream in 
side-by-side format or over/under format, or each view should be encoded as 
separate video stream. In case separate streams are used, video stream numbers should be ordered 
from left to right. The most-left video streams has the lowest number, the 
most-right video stream the highest number. It is not required that video stream 
numbers are continuous. The number of video streams is limited by the ASF format 
only. Playback applications supporting only stereoscopic viewing methods 
(requiring two views only) should be able to decode just the first two video 
streams and ignore the remaining streams. Mutual ExclusionsThe mutual exclusion object should be set for dual stream and multi stream 
layouts only. This chapter does not apply for side-by-side and over/under 
layout. An Advanced Mutual Exclusion Object should be used to define a mutual 
exclusive relationship between all video streams. The type ASF_Mutex_Unknown 
(D6E22A02-35DA-11D1-9034-00A0C90349BE) should be used.  AttributesThe following file level attributes are required to be present in the 
Extended Content Description Object: 
  
    | Name |  | Type |  | Allowed Values |  
    | Stereoscopic |  | Boolean |  | True |  
    | StereoscopicLayout |  | Unicode string |  | "SideBySideRF" (side-by-side, right image first), "SideBySideLF" (side-by-side, left image first),
 "OverUnderRT" (over/under, right image top),
 "OverUnderLT", (over/under, left image top),
 "DualStream", (separate left/right streams),
 "MultiStream" (more than two streams)
 
 |  
  
    | Remarks: |  | Side-by-side and over/under layouts provide better 
    compatibility with existing stereoscopic playback applications, but do not 
    provide compatibility with 2D playback applications. Consequently, the dual 
    stream layout is recommended when it is not possible to provide a separate 
    2D version (e.g. lack of space on DVD-ROM), else, side-by-side or over/under 
    format should be preferred. |  The following file level attributes can be present in the 
Extended Content Description Object: 
  
    | Name |  | Type |  | Content |  
    | StereoscopicSkip |  | Qword |  | Duration of the intro to be skipped by 3D video player software in 100 
    ns units. |  
    | StereoscopicHalfWidth |  | Boolean |  | Specifies if content is encoded at half horizontal resolution. |  
    | StereoscopicHalfHeight |  | Boolean |  | Specifies if content is encoded at half vertical resolution. |  
    | StereoscopicPreview |  | Byte array |  | JPEG image with a resolution of 160 x 120 pixels and a maximum size of 
    10240 bytes. |  
    | Source |  | Unicode string |  | Points to the source where the movie can be obtained; usually, but not 
    necessarily, an URL. 
 |  
  
    | Remarks: |  | StereoscopicHalfWidth and StereoscopicHalfHeight 
    attributes are only required if the half horizontal or vertical resolution 
    has not be compensated by the pixel aspect ratio. If the pixel aspect ratio 
    already stretches the video to the full resolution, StereoscopicHalfWidth 
    or StereoscopicHalfHeight must not be specified. These attributes 
    should be used for legacy content only, where the aspect ratio has not been 
    properly set during encoding. |  
    |  |  | StereoscopicPreview and Source 
    are used by the Stereoscopic Player video library. Other implementations are 
    not required to implement these attributes, opposed to the 
    StereoscopicSkip, StereoscopicHalfWidth and 
    StereoscopicHalfHeight attributes which are required for proper 
    playback. |  Implementation LevelsAll compliant implementations are required to support the attributes 
Stereoscopic, StereoscopicLayout, StereoscopicSkip, 
StereoscopicHalfWidth and StereoscopicHalfHeight. Depending on the 
implementation level, the following layouts must be supported. 
  
    | Level |  | Required Layouts |  
    | Basic level |  | "SideBySideRF", "SideBySideLF", "OverUnderRT" and "OverUnderLT" |  
    | Multi stream level |  | all of basic level plus "DualStream" and "MultiStream" 
 |  
  
    | Remarks: |  | Multi-stream level applications must be able to use the 
    first two streams of multi stream files but may ignore the remaining 
    streams. Typically, only application targeting multi-view autostereoscopic 
    displays require more than two streams. Stereoscopic Player implements the 
    multi-stream level, but does not make use of more than two streams. |  
    |  |  | The basic level can be added to existing 
    stereoscopic playback applications which already support side-by-side and 
    over/under formats fairly easily. Multi-stream level, however, requires a 
    custom file reader implementation (e.g. based on the Windows Media Format 
    SDK) because the DirectShow filters provided by Microsoft deliver a single 
    video stream only. |  
    |  |  | Digital Rights Management is beyond the scope 
    of this specification. However, support for Microsoft DRM 10 is strongly 
    recommended. |  |