Enumerations (IIS Smooth Streaming Format SDK)

IIS 7.0

[Note: This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

The IIS Smooth Streaming Media Format defines the following enumerations.

The SSF_STREAM_TYPE is used with SSF_STREAM_INFO.

enum SSF_STREAM_TYPE
{
    SSF_STREAM_AUDIO = 1,
    SSF_STREAM_VIDEO,
    SSF_STREAM_TTML1,
    SSF_STREAM_XML,
    SSF_STREAM_TEXT,
    SSF_STREAM_NONE
};

The SSF_FRAME_TYPE enumeration is used with SSF_SAMPLE.

enum SSF_FRAME_TYPE
{
    FRAMETYPE_I = 0x00000001,
    FRAMETYPE_P = 0x00000002,
    FRAMETYPE_B = 0x00000004,
    FRAMETYPE_BI = 0x00000008,
    FRAMETYPE_S = 0x00000010,
    FRAMETYPE_UNKNOWN = 0x00
};

The SSF_SAMPLE_FLAGS type is a bitmask of flags that indicates which optional fields of the SSF_SAMPLE structure are set.

typedef DWORD SSF_SAMPLE_FLAGS;
enum
{
    SSF_SAMPLE_START_TIME           = 0x01,
    SSF_SAMPLE_DURATION             = 0x02,
    SSF_SAMPLE_FRAME_TYPE           = 0x08,
};

The following options are supported by the SSFMuxSetOption (IIS Smooth Streaming Format SDK API) and SSFMuxQueryOption (IIS Smooth Streaming Format SDK API) methods.

typedef UINT32 SSF_MUX_OPTION;
enum
{
    // Type: unsigned int32
    // If value == 0 (default), disables Live Mode.
    // If value != 0, enables Live Mode.
    SSF_MUX_OPTION_LIVE_MODE,

    // Type: unsigned int32
    // If value == 0, disables the generation of the StreamManifestBox
    // when in Live mode.
    // If value != 0 (default), enables the generation of StreamManifestBox
    // for Live mode.
    //
    SSF_MUX_OPTION_ENABLE_STREAM_MANIFEST_BOX_FOR_LIVE_MODE,

    //
    // Type: unsigned int32
    // If value == 0 (default), the client manifest returned by
    // SSFMuxGetClientManifest will include fragment elements
    // (i.e., the <f> element) only if applicable, otherwise the
    // elements will not be included.
    // If value != 0, SSFMuxGetClientManifest will always include
    // the fragment elements in the manifest.
    //
    SSF_MUX_OPTION_FORCE_FRAGMENT_ELEMENT_IN_CLIENT_MANIFEST,

    // Type: int64
    // Time scale of the time stamps.
    SSF_MUX_OPTION_TIME_SCALE,

    // Type: unsigned int32
    // If value == 0 (default), assumes fixed rate.
    // If value != 0, forces the durations of the frames to be written
    // to the 'trun' box.
    SSF_MUX_OPTION_VARIABLE_RATE,

    // Type: unsigned int32
    // If value == 0 (default), disables PlayReady DRM.
    // If value != 0, enables PlayReady DRM. In this case, the 
    // following options must be set to:
    // - SSF_MUX_OPTION_PLAYREADY_KEY_ID
    // - SSF_MUX_OPTION_PLAYREADY_KEY_SEED
    // - SSF_MUX_OPTION_PLAYREADY_CONTENT_KEY

    SSF_MUX_OPTION_ENABLE_PLAYREADY_DRM,

    // Type: GUID
    // The Key ID to use with PlayReady DRM.
    SSF_MUX_OPTION_PLAYREADY_KEY_ID,

    // Type: unsigned char[40]
    // The Key Seed to use with PlayReady DRM.
    SSF_MUX_OPTION_PLAYREADY_KEY_SEED,

    // Type: GUID
    // The Content Key to use with PlayReady DRM.
    SSF_MUX_OPTION_PLAYREADY_CONTENT_KEY,

    // Type: unsigned int []
    // String of Unicode chars representing the License Acquisition URL
    // for PlayReady DRM.
    SSF_MUX_OPTION_PLAYREADY_LICENSE_ACQUISITION_URL,

    // Type: unsigned int []
    // String of Unicode chars representing the UI URL 
    // for PlayReady DRM.
    SSF_MUX_OPTION_PLAYREADY_UI_URL,

    // Type: UINT64
    // Initialization Vector for encryption. If one is not given,
    // the muxer will use a random value in place of this.
    SSF_MUX_OPTION_PLAYREADY_INITIALIZATION_VECTOR
};

Show: