1 #ifndef MPLAYER_DMO_H 2 #define MPLAYER_DMO_H 3 4 /* 5 * 6 * Definition of important DMO interfaces. 7 * Created using freely-available DirectX 8.1 SDK 8 * ( http://msdn.microsoft.com ) 9 * 10 */ 11 12 #include "loader/dshow/iunk.h" 13 #include "loader/dshow/guids.h" 14 15 typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE; 16 17 18 19 enum DMO_INPUT_DATA_BUFFER_FLAGS 20 { 21 DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x1, 22 DMO_INPUT_DATA_BUFFERF_TIME = 0x2, 23 DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x4 24 }; 25 26 enum DMO_OUTPUT_DATA_BUFFER_FLAGS 27 { 28 DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x1, 29 DMO_OUTPUT_DATA_BUFFERF_TIME = 0x2, 30 DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x4, 31 DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x1000000 32 }; 33 34 enum DMO_INPUT_STATUS_FLAGS 35 { 36 DMO_INPUT_STATUSF_ACCEPT_DATA = 0x1 37 }; 38 39 enum DMO_INPUT_STREAM_INFO_FLAGS 40 { 41 DMO_INPUT_STREAMF_WHOLE_SAMPLES = 0x1, 42 DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x2, 43 DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x4, 44 DMO_INPUT_STREAMF_HOLDS_BUFFERS = 0x8 45 }; 46 47 enum DMO_OUTPUT_STREAM_INFO_FLAGS 48 { 49 DMO_OUTPUT_STREAMF_WHOLE_SAMPLES = 0x1, 50 DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x2, 51 DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x4, 52 DMO_OUTPUT_STREAMF_DISCARDABLE = 0x8, 53 DMO_OUTPUT_STREAMF_OPTIONAL = 0x10 54 }; 55 56 enum DMO_SET_TYPE_FLAGS 57 { 58 DMO_SET_TYPEF_TEST_ONLY = 0x1, 59 DMO_SET_TYPEF_CLEAR = 0x2 60 }; 61 62 enum DMO_PROCESS_OUTPUT_FLAGS 63 { 64 DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x1 65 }; 66 67 enum DMO_VIDEO_OUTPUT_STREAM_FLAGS 68 { 69 DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x1 70 }; 71 72 73 /* MediaErr.h */ 74 #define DMO_E_INVALIDSTREAMINDEX 0x80040201 75 #define DMO_E_INVALIDTYPE 0x80040202 76 #define DMO_E_TYPE_NOT_SET 0x80040203 77 #define DMO_E_NOTACCEPTING 0x80040204 78 #define DMO_E_TYPE_NOT_ACCEPTED 0x80040205 79 #define DMO_E_NO_MORE_ITEMS 0x80040206 80 81 #endif /* MPLAYER_DMO_H */ 82