Search code examples
silverlightmediaelement.jsms-media-foundation

Does the Silverlight player support H264/MultiView Coding (3D) Videos?


Given that the Player Framework allegedly supports 3D MVC encoded video via the Media Foundation, which MediaElement.js's Silverlight Player uses, Does the later support playing stereoscopic 3D video?

Regards,


Solution

  • Quick Answer: 'Absolutely'

    I will take a quick hack at this question, only because I use Media Foundation a great deal, and I believe your question is mostly focused on Media Foundation's support for 3D video.

    I have not used Silverlight's player, nor have I utilized the 3D video capabilities of Media Foundation, however as I am dealing with video streams in general, I constantly see API documentation which confirms the 3D support. There is much more than the links below, but should provide sufficient evidence.

    A couple enums:

    MFVideo3DFormat
    MFVideo3DSampleFormat

    A few attributes:

    MF_ENABLE_3DVIDEO_OUTPUT
    MF_MT_VIDEO_3D
    MF_MT_VIDEO_3D_FIRST_IS_LEFT
    MF_MT_VIDEO_3D_FORMAT
    MF_MT_VIDEO_3D_LEFT_IS_BASE
    MF_MT_VIDEO_3D_NUM_VIEWS
    MFSampleExtension_3DVideo
    MFSampleExtension_3DVideo_SampleFormat

    A quick look at IMFMediaEngineEx, you see the a couple notable methods:

    IsStereo3D
    SetStereo3DFramePackingMode
    SetStereo3DRenderMode

    When receiving samples from a source or transform, each sample has a stream id, and a media type. You discover these upfront, so that you can efficiently handle them when processing samples (according to the stream id). For instance closed captioning is delivered on a separate stream, in which case you can ignore them if the user does not wish to display CC. And the same is true for ancillary audio tracks (other languages, director commentary, etc).

    I hope this helps.