view loader/dmo/dmo.h @ 23956:a0d1fe96bdb8

get rid of this idiotic i_certify_that_my_video_stream_does_not_use_b_frames muxer_lavf can now generate correct files with b frames as long as the timestamps provided to it are correct (they should be with lavc encoding, expect trouble with stream copy though)
author michael
date Tue, 31 Jul 2007 17:28:47 +0000 (2007-07-31)
parents 8e00b6a9e40b
children 2c8cdb9123b8
line wrap: on
line source
#ifndef DMO_H
#define DMO_H

/*
 *
 * Definition of important DMO interfaces.
 * Created using freely-available DirectX 8.1 SDK
 * ( http://msdn.microsoft.com )
 *
 */

#include "dshow/iunk.h"
#include "dshow/guids.h"

typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;



enum _DMO_INPUT_DATA_BUFFER_FLAGS
{
    DMO_INPUT_DATA_BUFFERF_SYNCPOINT	= 0x1,
    DMO_INPUT_DATA_BUFFERF_TIME		= 0x2,
    DMO_INPUT_DATA_BUFFERF_TIMELENGTH	= 0x4
};

enum _DMO_OUTPUT_DATA_BUFFER_FLAGS
{
    DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT	= 0x1,
    DMO_OUTPUT_DATA_BUFFERF_TIME	= 0x2,
    DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH	= 0x4,
    DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE	= 0x1000000
};

enum _DMO_INPUT_STATUS_FLAGS
{
    DMO_INPUT_STATUSF_ACCEPT_DATA	= 0x1
};

enum _DMO_INPUT_STREAM_INFO_FLAGS
{
    DMO_INPUT_STREAMF_WHOLE_SAMPLES	= 0x1,
    DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER	= 0x2,
    DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE	= 0x4,
    DMO_INPUT_STREAMF_HOLDS_BUFFERS	= 0x8
};

enum _DMO_OUTPUT_STREAM_INFO_FLAGS
{
    DMO_OUTPUT_STREAMF_WHOLE_SAMPLES	= 0x1,
    DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER	= 0x2,
    DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE	= 0x4,
    DMO_OUTPUT_STREAMF_DISCARDABLE	= 0x8,
    DMO_OUTPUT_STREAMF_OPTIONAL		= 0x10
};

enum _DMO_SET_TYPE_FLAGS
{
    DMO_SET_TYPEF_TEST_ONLY		= 0x1,
    DMO_SET_TYPEF_CLEAR			= 0x2
};

enum _DMO_PROCESS_OUTPUT_FLAGS
{
    DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER	= 0x1
};

enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS
{
    DMO_VOSF_NEEDS_PREVIOUS_SAMPLE	= 0x1
};


/* MediaErr.h */
#define DMO_E_INVALIDSTREAMINDEX 0x80040201
#define DMO_E_INVALIDTYPE        0x80040202
#define DMO_E_TYPE_NOT_SET       0x80040203
#define DMO_E_NOTACCEPTING       0x80040204
#define DMO_E_TYPE_NOT_ACCEPTED  0x80040205
#define DMO_E_NO_MORE_ITEMS      0x80040206

#endif /* DMO_H */