typedef struct { void *pBuffer; // Address of the buffer DWORD dwBufferSize; // Size of the buffer DWORD dwDataSize; // Size of valid data in the buffer DWORD dwFlags; // Flags DWORD dwFlagsEx; // Extended flags (used for PES support) DWORD pReserved[8]; // Reserved } FMP_BUFFER, *PFMP_BUFFER;
Flags can be :
FMP_DATADISCONTINUITY = 0x1, // Data discontinuity : data loss FMP_TIMEDISCONTINUITY = 0x2, // PTS discontinuity FMP_TRICKMODE_START = 0x4, // Trick Mode Starts FMP_TYPECHANGED = 0x8, // Type of data has changed FMP_TIMEVALID = 0x10, // PTS is valid FMP_ENDOFSTREAM = 0x20, // End of stream FMP_TRICKMODE_END = 0x40, // Trick Mode Ends FMP_TRICKMODE_SAMPLE = 0x80, // A Trick Mode Sample FMP_SVCD_TM_2X = 0x100, // SVCD trick mode speed 2x FMP_SVCD_TM_3X = 0x200, // SVCD trick mode speed 3x FMP_SVCD_TM_4X = 0x400, // SVCD trick mode speed 4x FMP_SVCD_FR = 0x1000, FMP_SVCD_AUTOPAUSE = 0x2000, FMP_SVCD_SEQ_HDR = 0x4000, FMP_SVCD_UPDATE_PTS_REF = 0x8000, FMP_TRICKMODE_DVD = 0x10000, FMP_SEEKINGOP_DVD = 0x20000, FMP_SVCD_CDDA_TRACK = 0x40000, // CDDA track on the VCD disk
Extended flags are:
FMP_VIDEO_PES = 0x1, FMP_AUDIO_PES = 0x2, FMP_DVD_AUDIO_PES = 0x4, //Please see details PES Support under Chapter 8 (Streaming video).