typedef struct {

    union {

        mfxExtBuffer **ExtParam;

        mfxU64       reserved2;


    mfxU16  NumExtParam;


    mfxU16      reserved[9];

    mfxU16      MemType;

    mfxU16      PitchHigh;


    mfxU64      TimeStamp;

    mfxU32      FrameOrder;

    mfxU16      Locked;


        mfxU16  Pitch;

        mfxU16  PitchLow;



    /* color planes */

    union {

        mfxU8   *Y;

        mfxU8   *R;


    union {

        mfxU8   *UV;            /* for UV merged formats */

        mfxU8   *VU;            /* for VU merged formats */

        mfxU8   *CbCr;          /* for CbCr merged formats */

        mfxU8   *CrCb;          /* for CrCb merged formats */

        mfxU8   *Cb;

        mfxU8   *U;

        mfxU8   *G;


    union {

        mfxU8   *Cr;

        mfxU8   *V;

        mfxU8   *B;


    mfxU8       *A;

    mfxMemId    MemId;


    /* Additional Flags */

    mfxU16  Corrupted;

    mfxU16  DataFlag;

} mfxFrameData;





The mfxFrameData structure describes frame buffer pointers.






Time stamp of the video frame in units of 90KHz (divide TimeStamp by 90,000 (90 KHz) to obtain the time in seconds). A value of MFX_TIMESTAMP_UNKNOWN indicates that there is no time stamp.








Distance in bytes between the start of two consecutive rows in a frame.




Current frame counter for the top field of the current frame; an invalid value of MFX_FRAMEORDER_UNKNOWN indicates that SDK functions that generate the frame output do not use this frame.




Counter flag for the application; if Locked is greater than zero then the application locks the frame or field pair. Do not move, alter or delete the frame.



Y, U, V, A;

R, G, B, A;

Y, Cr, Cb, A;

Y, CbCr;

Y, CrCb;

Y, UV;

Y, VU;

Data pointers to corresponding color channels. The frame buffer pointers must be 16-byte aligned. The application has to specify pointers to all color channels even for packed formats. For example, for YUY2 format the application has to specify Y, U and V pointers. For RGB32 – R, G, B and A pointers.  




Memory ID of the data buffers; if any of the preceding data pointers is non-zero then the SDK ignores MemId.




Additional flags to indicate frame data properties. See the FrameDataFlag enumerator for details.




Some part of the frame or field pair is corrupted. See the Corruption enumerator for details.




The number of extra configuration structures attached to this structure.




Points to an array of pointers to the extra configuration structures; see the ExtendedBufferID enumerator for a list of extended configurations.




Allocated memory type; see the ExtMemFrameType enumerator for details. Used for better integration of 3rd party plugins into SDK pipeline.


Change History


This structure is available since SDK API 1.0.

SDK API 1.3 extended the Corrupted and DataFlag fields.

SDK 1.8 replaced Pitch by PitchHigh and PitchLow fields.

SDK API 1.11 added NumExtParam and ExtParam fields.

SDK API 1.19 added MemType field.