xine-lib  1.2.10
dmo.h
Go to the documentation of this file.
1 #ifndef DMO_H
2 #define 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 "DirectShow/iunk.h"
13 #include "DirectShow/guids.h"
14 
16 
17 
18 
20 {
24 };
25 
27 {
32 };
33 
35 {
37 };
38 
40 {
45 };
46 
48 {
54 };
55 
57 {
60 };
61 
63 {
65 };
66 
68 {
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 /* DMO_H */
buf_element_s::size
int32_t size
Definition: buffer.h:343
fifo_buffer_s::get_cb_data
void * get_cb_data[5]
Definition: buffer.h:653
buffer_pool_size_alloc
static buf_element_t * buffer_pool_size_alloc(fifo_buffer_t *this, size_t size)
Definition: buffer.c:227
be_ei_t::ei
extra_info_t ei
Definition: buffer.c:68
xine_mallocz_aligned
void * xine_mallocz_aligned(size_t size)
Definition: utils.c:856
fifo_buffer_s::not_empty
pthread_cond_t not_empty
Definition: buffer.h:590
xine_ticket_s::acquire
void(* acquire)(xine_ticket_t *self, int irrevocable)
Definition: tickets.h:66
be_ei_t::nbufs
int nbufs
Definition: buffer.c:67
fifo_register_alloc_cb
static void fifo_register_alloc_cb(fifo_buffer_t *this, void(*cb)(fifo_buffer_t *this, void *data_cb), void *data_cb)
Definition: buffer.c:749
CMediaBuffer_SetLength
static HRESULT STDCALL CMediaBuffer_SetLength(IMediaBuffer *This, unsigned long cbLength)
Definition: buffer.c:21
xineutils.h
IID_IMediaObject
const GUID IID_IMediaObject
Definition: dmo_guids.c:6
fifo_buffer_s::buffer_pool_capacity
int buffer_pool_capacity
Definition: buffer.h:645
_DMO_PROCESS_OUTPUT_FLAGS
_DMO_PROCESS_OUTPUT_FLAGS
Definition: dmo.h:62
dummy_fifo_buffer_insert
static void dummy_fifo_buffer_insert(fifo_buffer_t *fifo, buf_element_t *element)
Definition: buffer.c:476
buffer_pool_size_alloc_int
static buf_element_t * buffer_pool_size_alloc_int(fifo_buffer_t *this, int n)
Definition: buffer.c:138
_IMediaBuffer
Definition: dmo_interfaces.h:22
GetProcAddress
FARPROC WINAPI GetProcAddress(HMODULE, LPCSTR)
DMO_SET_TYPEF_CLEAR
@ DMO_SET_TYPEF_CLEAR
Definition: dmo.h:59
fifo_buffer_s::fifo_size
int fifo_size
Definition: buffer.h:585
CMediaBufferCreate
CMediaBuffer * CMediaBufferCreate(unsigned long maxlen, void *mem, unsigned long len, int copy)
Definition: buffer.c:69
_x_fifo_buffer_new
fifo_buffer_t * _x_fifo_buffer_new(int num_buffers, uint32_t buf_size)
Allocate and initialise new (empty) FIFO buffers.
Definition: buffer.c:873
_CMediaBuffer::freemem
int freemem
Definition: buffer.c:18
buf_element_s::decoder_info
uint32_t decoder_info[5]
Definition: buffer.h:353
xine_ticket_s
Definition: tickets.h:53
IMediaBuffer_vt::SetLength
HRESULT STDCALL(* SetLength)(IMediaBuffer *This, unsigned long cbLength)
Definition: dmo_interfaces.h:14
CMediaBuffer_GetBufferAndLength
static HRESULT STDCALL CMediaBuffer_GetBufferAndLength(IMediaBuffer *This, char **ppBuffer, unsigned long *pcbLength)
Definition: buffer.c:43
DMO_OUTPUT_DATA_BUFFERF_TIME
@ DMO_OUTPUT_DATA_BUFFERF_TIME
Definition: dmo.h:29
dummy_fifo_buffer_put
static void dummy_fifo_buffer_put(fifo_buffer_t *fifo, buf_element_t *element)
Definition: buffer.c:434
_DMO_OUTPUT_DATA_BUFFER_FLAGS
_DMO_OUTPUT_DATA_BUFFER_FLAGS
Definition: dmo.h:26
LARGE_NUM
#define LARGE_NUM
Definition: buffer.c:71
DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER
@ DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER
Definition: dmo.h:50
_DMO_OUTPUT_STREAM_INFO_FLAGS
_DMO_OUTPUT_STREAM_INFO_FLAGS
Definition: dmo.h:47
fifo_buffer_s::put_cb_data
void * put_cb_data[5]
Definition: buffer.h:652
_CMediaBuffer::maxlen
unsigned long maxlen
Definition: buffer.c:17
_CMediaBuffer::vt
IMediaBuffer_vt * vt
Definition: buffer.c:12
_DMO_VIDEO_OUTPUT_STREAM_FLAGS
_DMO_VIDEO_OUTPUT_STREAM_FLAGS
Definition: dmo.h:67
IMediaObject_vt::GetStreamCount
HRESULT STDCALL(* GetStreamCount)(IMediaObject *This, unsigned long *pcInputStreams, unsigned long *pcOutputStreams)
Definition: dmo_interfaces.h:42
CMediaBuffer_GetMaxLength
static HRESULT STDCALL CMediaBuffer_GetMaxLength(IMediaBuffer *This, unsigned long *pcbMaxLength)
Definition: buffer.c:32
DMO_OUTPUT_STREAMF_OPTIONAL
@ DMO_OUTPUT_STREAMF_OPTIONAL
Definition: dmo.h:53
IMediaBuffer_vt
Definition: dmo_interfaces.h:10
buf_element_s::next
buf_element_t * next
Definition: buffer.h:338
buf_element_s::source
void * source
Definition: buffer.h:359
put
#define put(predictor, i)
Definition: motion_comp.c:96
fifo_buffer_s::put_cb
void(* put_cb[5])(fifo_buffer_t *fifo, buf_element_t *buf, void *data_cb)
Definition: buffer.h:649
fifo_buffer_s::fifo_data_size
uint32_t fifo_data_size
Definition: buffer.h:586
DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE
@ DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE
Definition: dmo.h:43
LoadLibraryA
HMODULE WINAPI LoadLibraryA(LPCSTR)
DMO_Filter.h
IMediaObject_vt::SetOutputType
HRESULT STDCALL(* SetOutputType)(IMediaObject *This, unsigned long dwOutputStreamIndex, const DMO_MEDIA_TYPE *pmt, unsigned long dwFlags)
Definition: dmo_interfaces.h:63
fifo_buffer_s::mutex
pthread_mutex_t mutex
Definition: buffer.h:589
buf_element_s::pts
int64_t pts
Definition: buffer.h:345
IMediaBuffer_vt::GetBufferAndLength
HRESULT STDCALL(* GetBufferAndLength)(IMediaBuffer *This, char **ppBuffer, unsigned long *pcbLength)
Definition: dmo_interfaces.h:18
fifo_buffer_get
static buf_element_t * fifo_buffer_get(fifo_buffer_t *fifo)
Definition: buffer.c:484
BUF_CONTROL_BASE
#define BUF_CONTROL_BASE
Definition: buffer.h:68
NULL
NULL
Definition: xine_plugin.c:78
DMO_OUTPUT_STREAMF_WHOLE_SAMPLES
@ DMO_OUTPUT_STREAMF_WHOLE_SAMPLES
Definition: dmo.h:49
_IMediaObjectInPlace::vt
IMediaObjectInPlace_vt * vt
Definition: dmo_interfaces.h:151
IID_IMediaBuffer
const GUID IID_IMediaBuffer
Definition: dmo_guids.c:4
fifo_buffer_s
Definition: buffer.h:581
be_ei_t::elem
buf_element_t elem
Definition: buffer.c:66
DMO_OUTPUT_STREAMF_DISCARDABLE
@ DMO_OUTPUT_STREAMF_DISCARDABLE
Definition: dmo.h:52
DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE
@ DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE
Definition: dmo.h:31
_x_abort
#define _x_abort()
Definition: xine_mpeg2new_decoder.c:50
_DMO_Filter
Definition: DMO_Filter.h:11
_DMO_Filter::m_iHandle
int m_iHandle
Definition: DMO_Filter.h:13
DMO_INPUT_STREAMF_HOLDS_BUFFERS
@ DMO_INPUT_STREAMF_HOLDS_BUFFERS
Definition: dmo.h:44
_
#define _(String)
Definition: vcdplayer.h:39
fifo_buffer_s::fifo_num_waiters
int fifo_num_waiters
Definition: buffer.h:663
fifo_buffer_dispose
static void fifo_buffer_dispose(fifo_buffer_t *this)
Definition: buffer.c:736
_CMediaBuffer::len
unsigned long len
Definition: buffer.c:16
buffer_pool_realloc
static buf_element_t * buffer_pool_realloc(buf_element_t *buf, size_t new_size)
Definition: buffer.c:278
fifo_buffer_data_size
static uint32_t fifo_buffer_data_size(fifo_buffer_t *this)
Definition: buffer.c:710
_IDMOVideoOutputOptimizations::vt
IDMOVideoOutputOptimizations_vt * vt
Definition: dmo_interfaces.h:192
BUF_MAX_CALLBACKS
#define BUF_MAX_CALLBACKS
Definition: buffer.h:45
DMO_INPUT_DATA_BUFFERF_TIMELENGTH
@ DMO_INPUT_DATA_BUFFERF_TIMELENGTH
Definition: dmo.h:23
DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT
@ DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT
Definition: dmo.h:28
IID_IDMOVideoOutputOptimizations
const GUID IID_IDMOVideoOutputOptimizations
Definition: dmo_guids.c:14
fifo_buffer_insert
static void fifo_buffer_insert(fifo_buffer_t *fifo, buf_element_t *element)
Definition: buffer.c:450
_DMO_Filter::m_pOptim
IDMOVideoOutputOptimizations * m_pOptim
Definition: DMO_Filter.h:14
fifo_unregister_alloc_cb
static void fifo_unregister_alloc_cb(fifo_buffer_t *this, void(*cb)(fifo_buffer_t *this, void *data_cb))
Definition: buffer.c:811
buf_element_s
Definition: buffer.h:337
fifo_buffer_size
static int fifo_buffer_size(fifo_buffer_t *this)
Definition: buffer.c:697
DMO_INPUT_DATA_BUFFERF_SYNCPOINT
@ DMO_INPUT_DATA_BUFFERF_SYNCPOINT
Definition: dmo.h:21
buffer_pool_try_alloc
static buf_element_t * buffer_pool_try_alloc(fifo_buffer_t *this)
Definition: buffer.c:348
DMO_INPUT_STREAMF_WHOLE_SAMPLES
@ DMO_INPUT_STREAMF_WHOLE_SAMPLES
Definition: dmo.h:41
fifo_unregister_put_cb
static void fifo_unregister_put_cb(fifo_buffer_t *this, void(*cb)(fifo_buffer_t *this, buf_element_t *buf, void *data_cb))
Definition: buffer.c:831
BUF_MAJOR_MASK
#define BUF_MAJOR_MASK
Definition: buffer.h:61
buffer_pool_alloc
static buf_element_t * buffer_pool_alloc(fifo_buffer_t *this)
Definition: buffer.c:236
fifo_register_put_cb
static void fifo_register_put_cb(fifo_buffer_t *this, void(*cb)(fifo_buffer_t *this, buf_element_t *buf, void *data_cb), void *data_cb)
Definition: buffer.c:769
fifo_buffer_put
static void fifo_buffer_put(fifo_buffer_t *fifo, buf_element_t *element)
Definition: buffer.c:384
buffer.h
iunk.h
DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH
@ DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH
Definition: dmo.h:30
_CMediaBuffer::DECLARE_IUNKNOWN
DECLARE_IUNKNOWN()
_x_dummy_fifo_buffer_new
fifo_buffer_t * _x_dummy_fifo_buffer_new(int num_buffers, uint32_t buf_size)
Allocate and initialise new dummy FIFO buffers.
Definition: buffer.c:965
fifo_buffer_clear
static void fifo_buffer_clear(fifo_buffer_t *fifo)
Definition: buffer.c:587
fifo_buffer_all_clear
static void fifo_buffer_all_clear(fifo_buffer_t *fifo)
Definition: buffer.c:648
DMO_INPUT_STATUSF_ACCEPT_DATA
@ DMO_INPUT_STATUSF_ACCEPT_DATA
Definition: dmo.h:36
DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER
@ DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER
Definition: dmo.h:42
buf_element_s::mem
unsigned char * mem
Definition: buffer.h:340
DMO_VOSF_NEEDS_PREVIOUS_SAMPLE
@ DMO_VOSF_NEEDS_PREVIOUS_SAMPLE
Definition: dmo.h:69
fifo_buffer_num_free
static int fifo_buffer_num_free(fifo_buffer_t *this)
Definition: buffer.c:723
mode
enable disable number of frames of telecine pattern sync required before mode change make frames evenly spaced for film mode(24 fps)" ) PARAM_ITEM( POST_PARAM_TYPE_BOOL
IID_IMediaObjectInPlace
const GUID IID_IMediaObjectInPlace
Definition: dmo_guids.c:10
fifo_unregister_get_cb
static void fifo_unregister_get_cb(fifo_buffer_t *this, void(*cb)(fifo_buffer_t *this, buf_element_t *buf, void *data_cb))
Definition: buffer.c:852
buf_element_s::free_buffer
void(* free_buffer)(buf_element_t *buf)
Definition: buffer.h:357
IMediaObject_vt::SetInputType
HRESULT STDCALL(* SetInputType)(IMediaObject *This, unsigned long dwInputStreamIndex, const DMO_MEDIA_TYPE *pmt, unsigned long dwFlags)
Definition: dmo_interfaces.h:59
IDMOVideoOutputOptimizations_vt::QueryOperationModePreferences
HRESULT STDCALL(* QueryOperationModePreferences)(IDMOVideoOutputOptimizations *This, unsigned long ulOutputStreamIndex, unsigned long *pdwRequestedCapabilities)
Definition: dmo_interfaces.h:179
DMO_SET_TYPEF_TEST_ONLY
@ DMO_SET_TYPEF_TEST_ONLY
Definition: dmo.h:58
Debug
#define Debug
Definition: guids.h:10
IMediaBuffer_vt::GetMaxLength
HRESULT STDCALL(* GetMaxLength)(IMediaBuffer *This, unsigned long *pcbMaxLength)
Definition: dmo_interfaces.h:16
buffer_pool_free
static void buffer_pool_free(buf_element_t *element)
Definition: buffer.c:76
buf_element_s::decoder_info_ptr
void * decoder_info_ptr[5]
Definition: buffer.h:355
fifo_buffer_s::first
buf_element_t * first
Definition: buffer.h:583
DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE
@ DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE
Definition: dmo.h:51
buf_element_s::content
unsigned char * content
Definition: buffer.h:341
_DMO_SET_TYPE_FLAGS
_DMO_SET_TYPE_FLAGS
Definition: dmo.h:56
guids.h
extra_info_s
Structure to pass information from input or demuxer plugins to output frames (past decoder).
Definition: buffer.h:317
fifo_buffer_s::last
buf_element_t * last
Definition: buffer.h:583
trapbug
void trapbug()
_x_free_buf_elements
void _x_free_buf_elements(buf_element_t *head)
Free chained list of buffer elements.
Definition: buffer.c:974
xine_internal.h
BUF_FLAG_MERGE
#define BUF_FLAG_MERGE
Definition: buffer.h:426
DMO_MEDIA_TYPE
AM_MEDIA_TYPE DMO_MEDIA_TYPE
Definition: dmo.h:15
buf_element_s::decoder_flags
uint32_t decoder_flags
Definition: buffer.h:350
_CMediaBuffer::interfaces
GUID interfaces[2]
Definition: buffer.c:14
IMediaObject_vt::GetOutputType
HRESULT STDCALL(* GetOutputType)(IMediaObject *This, unsigned long dwOutputStreamIndex, unsigned long dwTypeIndex, DMO_MEDIA_TYPE *pmt)
Definition: dmo_interfaces.h:55
config.h
_CMediaBuffer
Definition: buffer.c:10
_DMO_Filter::m_pMedia
IMediaObject * m_pMedia
Definition: DMO_Filter.h:15
fifo_buffer_tget
static buf_element_t * fifo_buffer_tget(fifo_buffer_t *fifo, xine_ticket_t *ticket)
Definition: buffer.c:520
fifo_register_get_cb
static void fifo_register_get_cb(fifo_buffer_t *this, void(*cb)(fifo_buffer_t *this, buf_element_t *buf, void *data_cb), void *data_cb)
Definition: buffer.c:790
GETCLASS
long STDCALL(* GETCLASS)(const GUID *, const GUID *, void **)
Definition: dmo.c:10
IMPLEMENT_IUNKNOWN
#define IMPLEMENT_IUNKNOWN(CLASSNAME)
Definition: iunk.h:14
DMO_Filter_Destroy
void DMO_Filter_Destroy(DMO_Filter *This)
Definition: dmo.c:12
buf_element_s::max_size
int32_t max_size
Definition: buffer.h:344
buf_element_s::type
uint32_t type
Definition: buffer.h:362
DMO_INPUT_DATA_BUFFERF_TIME
@ DMO_INPUT_DATA_BUFFERF_TIME
Definition: dmo.h:22
xine_ticket_s::ticket_revoked
int ticket_revoked
Definition: tickets.h:61
xine_ticket_s::release
void(* release)(xine_ticket_t *self, int irrevocable)
Definition: tickets.h:69
_CMediaBuffer::mem
void * mem
Definition: buffer.c:15
_x_extra_info_reset
void _x_extra_info_reset(extra_info_t *extra_info)
Definition: xine.c:118
DMO_FilterCreate
DMO_Filter * DMO_FilterCreate(const char *dllname, const GUID *id, DMO_MEDIA_TYPE *in_fmt, DMO_MEDIA_TYPE *out_fmt)
Definition: dmo.c:25
AM_MEDIA_TYPE
AM_MEDIA_TYPE
Definition: guids.h:23
DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER
@ DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER
Definition: dmo.h:64
buf_element_s::extra_info
extra_info_t * extra_info
Definition: buffer.h:348
xine_free_aligned
void xine_free_aligned(void *ptr)
Definition: utils.c:882
fifo_buffer_s::get_cb
void(* get_cb[5])(fifo_buffer_t *fifo, buf_element_t *buf, void *data_cb)
Definition: buffer.h:650
_DMO_Filter::m_pInPlace
IMediaObjectInPlace * m_pInPlace
Definition: DMO_Filter.h:16
IMediaObject_vt::GetOutputSizeInfo
HRESULT STDCALL(* GetOutputSizeInfo)(IMediaObject *This, unsigned long dwOutputStreamIndex, unsigned long *pcbSize, unsigned long *pcbAlignment)
Definition: dmo_interfaces.h:78
_DMO_INPUT_STATUS_FLAGS
_DMO_INPUT_STATUS_FLAGS
Definition: dmo.h:34
_IMediaObject::vt
IMediaObject_vt * vt
Definition: dmo_interfaces.h:109
CMediaBuffer_Destroy
static void CMediaBuffer_Destroy(CMediaBuffer *This)
Definition: buffer.c:58
be_ei_t
Definition: buffer.c:65
_DMO_INPUT_DATA_BUFFER_FLAGS
_DMO_INPUT_DATA_BUFFER_FLAGS
Definition: dmo.h:19
_DMO_INPUT_STREAM_INFO_FLAGS
_DMO_INPUT_STREAM_INFO_FLAGS
Definition: dmo.h:39