dmo.c File Reference

Include dependency graph for dmo.c:


Data Structures

struct  decoder_sys_t
struct  codec_dll
struct  encoder_sys_t

Defines

#define LOADER
#define LoadLibrary   LoadLibraryA
#define ENC_CFG_PREFIX   "sout-dmo-"

Typedefs

typedef const GUID void
**static const int 
pi_channels_maps [7]

Functions

long CoInitialize (void *pvReserved)
void CoUninitialize (void)
HMODULE WINAPI LoadLibraryA (LPCSTR)
FARPROC WINAPI GetProcAddress (HMODULE, LPCSTR)
int WINAPI FreeLibrary (HMODULE)
typedef long (__stdcall *GETCLASS)(const GUID *
static int DecoderOpen (vlc_object_t *)
static void DecoderClose (vlc_object_t *)
static void * DecodeBlock (decoder_t *, block_t **)
static void * DecoderThread (void *)
static int EncoderOpen (vlc_object_t *)
static void EncoderClose (vlc_object_t *)
static block_tEncodeBlock (encoder_t *, void *)
static int EncOpen (vlc_object_t *)
static int LoadDMO (vlc_object_t *, HINSTANCE *, IMediaObject **, es_format_t *, bool)
static void CopyPicture (picture_t *, uint8_t *)
int vlc_entry__main (module_t *p_module)
const char * vlc_entry_license__main (void)
static void WINAPI DMOFreeMediaType (DMO_MEDIA_TYPE *mt)
static int DecOpen (decoder_t *p_dec)
static void DecClose (decoder_t *p_dec)
static void * DecBlock (decoder_t *p_dec, block_t **pp_block)
static int EncoderSetVideoType (encoder_t *p_enc, IMediaObject *p_dmo)
static int EncoderSetAudioType (encoder_t *p_enc, IMediaObject *p_dmo)

Variables

const GUID IID_IWMCodecPrivateData = {0x73f0be8e, 0x57f7, 0x4f01, {0xaa, 0x66, 0x9f, 0x57, 0x34, 0xc, 0xfe, 0xe}}
const GUID IID_IMediaObject = {0xd8ad0f58, 0x5494, 0x4102, {0x97, 0xc5, 0xec, 0x79, 0x8e, 0x59, 0xbc, 0xf4}}
const GUID IID_IMediaBuffer = {0x59eff8b9, 0x938c, 0x4a26, {0x82, 0xf2, 0x95, 0xcb, 0x84, 0xcd, 0xc8, 0x37}}
const GUID MEDIATYPE_Video = {0x73646976, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}
const GUID MEDIATYPE_Audio = {0x73647561, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}
const GUID MEDIASUBTYPE_PCM = {0x00000001, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}
const GUID FORMAT_VideoInfo = {0x05589f80, 0xc356, 0x11ce, {0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a}}
const GUID FORMAT_WaveFormatEx = {0x05589f81, 0xc356, 0x11ce, {0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a}}
const GUID GUID_NULL = {0x0000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}
const GUID MEDIASUBTYPE_I420 = {0x30323449, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}
const GUID MEDIASUBTYPE_YV12 = {0x32315659, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}
const GUID MEDIASUBTYPE_RGB24 = {0xe436eb7d, 0x524f, 0x11ce, {0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}}
const GUID MEDIASUBTYPE_RGB565 = {0xe436eb7b, 0x524f, 0x11ce, {0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}}
static const GUID guid_wvc1 = { 0xc9bfbccf, 0xe60e, 0x4588, { 0xa3, 0xdf, 0x5a, 0x03, 0xb1, 0xfd, 0x95, 0x85 } }
static const GUID guid_wmv9 = { 0x724bb6a4, 0xe526, 0x450f, { 0xaf, 0xfa, 0xab, 0x9b, 0x45, 0x12, 0x91, 0x11 } }
static const GUID guid_wmv = { 0x82d353df, 0x90bd, 0x4382, { 0x8b, 0xc2, 0x3f, 0x61, 0x92, 0xb7, 0x6e, 0x34 } }
static const GUID guid_wms = { 0x7bafb3b1, 0xd8f4, 0x4279, { 0x92, 0x53, 0x27, 0xda, 0x42, 0x31, 0x08, 0xde } }
static const GUID guid_wmva = { 0x03be3ac4, 0x84b7, 0x4e0e, { 0xa7, 0x8d, 0xd3, 0x52, 0x4e, 0x60, 0x39, 0x5a } }
static const GUID guid_wma = { 0x874131cb, 0x4ecc, 0x443b, { 0x89, 0x48, 0x74, 0x6b, 0x89, 0x59, 0x5d, 0x20 } }
static const GUID guid_wma9 = { 0x27ca0808, 0x01f5, 0x4e7a, { 0x8b, 0x05, 0x87, 0xf8, 0x07, 0xa2, 0x33, 0xd1 } }
static const GUID guid_wmv_enc = { 0x3181343b, 0x94a2, 0x4feb, { 0xad, 0xef, 0x30, 0xa1, 0xdd, 0xe6, 0x17, 0xb4 } }
static const GUID guid_wmv_enc2 = { 0x96b57cdd, 0x8966, 0x410c,{ 0xbb, 0x1f, 0xc9, 0x7e, 0xea, 0x76, 0x5c, 0x04 } }
static const GUID guid_wma_enc = { 0x70f598e9, 0xf4ab, 0x495a, { 0x99, 0xe2, 0xa7, 0xc4, 0xd3, 0xd8, 0x9a, 0xbf } }
static const codec_dll decoders_table []
static const codec_dll encoders_table []

Define Documentation

#define ENC_CFG_PREFIX   "sout-dmo-"

#define LOADER

#define LoadLibrary   LoadLibraryA


Typedef Documentation

typedef const GUID void** static const int pi_channels_maps[7] [static]

Initial value:

{
    0,
     0x1 ,
     0x2  |  0x4 ,
     0x1  |  0x2  |  0x4 ,
     0x2  |  0x4  |  0x20 
     |  0x40 ,
     0x2  |  0x4  |  0x1 
     |  0x20  |  0x40 ,
     0x2  |  0x4  |  0x1 
     |  0x20  |  0x40  |  0x1000 
}


Function Documentation

long CoInitialize ( void *  pvReserved  ) 

References VLC_UNUSED.

static void CopyPicture ( picture_t p_pic,
uint8_t *  p_in 
) [static]

void CoUninitialize ( void   ) 

static void* DecBlock ( decoder_t p_dec,
block_t **  pp_block 
) [static]

static void DecClose ( decoder_t p_dec  )  [static]

static void * DecodeBlock ( decoder_t p_dec,
block_t **  pp_block 
) [static]

static void DecoderClose ( vlc_object_t p_this  )  [static]

static int DecoderOpen ( vlc_object_t p_this  )  [static]

static void * DecoderThread ( void *  data  )  [static]

static int DecOpen ( decoder_t p_dec  )  [static]

References es_format_t::audio, AUDIO_ES, decoder_sys_t::b_ready, decoder_sys_t::b_works, _DMOMediaType::bFixedSizeSamples, ATTR_PACKED::biBitCount, ATTR_PACKED::biCompression, ATTR_PACKED::biHeight, ATTR_PACKED::biPlanes, ATTR_PACKED::biSize, ATTR_PACKED::biSizeImage, ATTR_PACKED::biWidth, ATTR_PACKED::bmiHeader, ATTR_PACKED::bottom, _DMOMediaType::bTemporalCompression, _DMOMediaType::cbFormat, CoInitialize(), CoUninitialize(), _GUID::Data1, date_Init(), DMOFreeMediaType(), decoder_sys_t::end_date, decoder_t::fmt_in, decoder_t::fmt_out, _DMOMediaType::formattype, fourcc_to_wf_tag(), FreeLibrary(), decoder_sys_t::hmsdmo_dll, i, es_format_t::i_bitrate, video_format_t::i_bits_per_pixel, audio_format_t::i_bitspersample, audio_format_t::i_blockalign, es_format_t::i_cat, audio_format_t::i_channels, i_chroma, es_format_t::i_codec, es_format_t::i_extra, video_format_t::i_height, decoder_sys_t::i_min_output, audio_format_t::i_original_channels, es_format_t::i_original_fourcc, audio_format_t::i_physical_channels, audio_format_t::i_rate, video_format_t::i_sar_den, video_format_t::i_sar_num, i_tag, video_format_t::i_width, decoder_sys_t::ldt_fs, ATTR_PACKED::left, LoadDMO(), decoder_sys_t::lock, _DMOMediaType::lSampleSize, _DMOMediaType::majortype, msg_Dbg, msg_Err, p_bih, decoder_sys_t::p_buffer, decoder_sys_t::p_dmo, es_format_t::p_extra, decoder_t::p_sys, p_sys, p_wf, _DMOMediaType::pbFormat, pi_channels_maps, _DMOMediaType::pUnk, ATTR_PACKED::rcSource, ATTR_PACKED::rcTarget, ATTR_PACKED::right, _DMOMediaType::subtype, ATTR_PACKED::top, es_format_t::video, VIDEO_ES, VLC_CODEC_I420, VLC_CODEC_S16N, VLC_CODEC_YUYV, VLC_CODEC_YV12, vlc_cond_signal(), VLC_EGENERIC, vlc_mutex_lock(), vlc_mutex_unlock(), VLC_OBJECT, VLC_SUCCESS, _IMediaObject::vt, decoder_sys_t::wait_output, and WAVE_FORMAT_PCM.

Referenced by DecoderThread().

static void WINAPI DMOFreeMediaType ( DMO_MEDIA_TYPE mt  )  [static]

static block_t * EncodeBlock ( encoder_t p_enc,
void *  p_data 
) [static]

void EncoderClose ( vlc_object_t p_this  )  [static]

static int EncoderOpen ( vlc_object_t p_this  )  [static]

static int EncoderSetAudioType ( encoder_t p_enc,
IMediaObject p_dmo 
) [static]

static int EncoderSetVideoType ( encoder_t p_enc,
IMediaObject p_dmo 
) [static]

static int EncOpen ( vlc_object_t p_this  )  [static]

int WINAPI FreeLibrary ( HMODULE   ) 

FARPROC WINAPI GetProcAddress ( HMODULE  ,
LPCSTR   
)

static int LoadDMO ( vlc_object_t p_this,
HINSTANCE *  p_hmsdmo_dll,
IMediaObject **  pp_dmo,
es_format_t p_fmt,
bool  b_out 
) [static]

HMODULE WINAPI LoadLibraryA ( LPCSTR   ) 

Referenced by QTAudioInit(), and QTVideoInit().

typedef long ( __stdcall *  GETCLASS  )  const

int vlc_entry__main ( module_t p_module  ) 

const char* vlc_entry_license__main ( void   ) 


Variable Documentation

const codec_dll decoders_table[] [static]

const codec_dll encoders_table[] [static]

Initial value:

{
    
    {  ( ((uint32_t) 'W' ) | ( ((uint32_t) 'M' ) << 8 )   | ( ((uint32_t) 'V' ) << 16 ) | ( ((uint32_t) '3' ) << 24 ) ) , "wmvdmoe2.dll", &guid_wmv_enc2 },
    
    {  ( ((uint32_t) 'W' ) | ( ((uint32_t) 'M' ) << 8 )   | ( ((uint32_t) 'V' ) << 16 ) | ( ((uint32_t) '2' ) << 24 ) ) , "wmvdmoe2.dll", &guid_wmv_enc2 },
    
    {  ( ((uint32_t) 'W' ) | ( ((uint32_t) 'M' ) << 8 )   | ( ((uint32_t) 'V' ) << 16 ) | ( ((uint32_t) '1' ) << 24 ) ) , "wmvdmoe2.dll", &guid_wmv_enc2 },

    
    {  ( ((uint32_t) 'W' ) | ( ((uint32_t) 'M' ) << 8 )   | ( ((uint32_t) 'A' ) << 16 ) | ( ((uint32_t) 'P' ) << 24 ) ) , "wmadmoe.dll", &guid_wma_enc },
    
    {  ( ((uint32_t) 'W' ) | ( ((uint32_t) 'M' ) << 8 )   | ( ((uint32_t) 'A' ) << 16 ) | ( ((uint32_t) '2' ) << 24 ) ) , "wmadmoe.dll", &guid_wma_enc },

    
    { 0, NULL, NULL }
}

const GUID FORMAT_VideoInfo = {0x05589f80, 0xc356, 0x11ce, {0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a}}

const GUID FORMAT_WaveFormatEx = {0x05589f81, 0xc356, 0x11ce, {0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a}}

const GUID GUID_NULL = {0x0000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}

const GUID guid_wma = { 0x874131cb, 0x4ecc, 0x443b, { 0x89, 0x48, 0x74, 0x6b, 0x89, 0x59, 0x5d, 0x20 } } [static]

const GUID guid_wma9 = { 0x27ca0808, 0x01f5, 0x4e7a, { 0x8b, 0x05, 0x87, 0xf8, 0x07, 0xa2, 0x33, 0xd1 } } [static]

const GUID guid_wma_enc = { 0x70f598e9, 0xf4ab, 0x495a, { 0x99, 0xe2, 0xa7, 0xc4, 0xd3, 0xd8, 0x9a, 0xbf } } [static]

const GUID guid_wms = { 0x7bafb3b1, 0xd8f4, 0x4279, { 0x92, 0x53, 0x27, 0xda, 0x42, 0x31, 0x08, 0xde } } [static]

const GUID guid_wmv = { 0x82d353df, 0x90bd, 0x4382, { 0x8b, 0xc2, 0x3f, 0x61, 0x92, 0xb7, 0x6e, 0x34 } } [static]

const GUID guid_wmv9 = { 0x724bb6a4, 0xe526, 0x450f, { 0xaf, 0xfa, 0xab, 0x9b, 0x45, 0x12, 0x91, 0x11 } } [static]

const GUID guid_wmv_enc = { 0x3181343b, 0x94a2, 0x4feb, { 0xad, 0xef, 0x30, 0xa1, 0xdd, 0xe6, 0x17, 0xb4 } } [static]

const GUID guid_wmv_enc2 = { 0x96b57cdd, 0x8966, 0x410c,{ 0xbb, 0x1f, 0xc9, 0x7e, 0xea, 0x76, 0x5c, 0x04 } } [static]

const GUID guid_wmva = { 0x03be3ac4, 0x84b7, 0x4e0e, { 0xa7, 0x8d, 0xd3, 0x52, 0x4e, 0x60, 0x39, 0x5a } } [static]

const GUID guid_wvc1 = { 0xc9bfbccf, 0xe60e, 0x4588, { 0xa3, 0xdf, 0x5a, 0x03, 0xb1, 0xfd, 0x95, 0x85 } } [static]

const GUID IID_IMediaBuffer = {0x59eff8b9, 0x938c, 0x4a26, {0x82, 0xf2, 0x95, 0xcb, 0x84, 0xcd, 0xc8, 0x37}}

Referenced by QueryInterface().

const GUID IID_IMediaObject = {0xd8ad0f58, 0x5494, 0x4102, {0x97, 0xc5, 0xec, 0x79, 0x8e, 0x59, 0xbc, 0xf4}}

const GUID IID_IWMCodecPrivateData = {0x73f0be8e, 0x57f7, 0x4f01, {0xaa, 0x66, 0x9f, 0x57, 0x34, 0xc, 0xfe, 0xe}}

const GUID MEDIASUBTYPE_I420 = {0x30323449, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}

const GUID MEDIASUBTYPE_PCM = {0x00000001, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}

const GUID MEDIASUBTYPE_RGB24 = {0xe436eb7d, 0x524f, 0x11ce, {0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}}

const GUID MEDIASUBTYPE_RGB565 = {0xe436eb7b, 0x524f, 0x11ce, {0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}}

const GUID MEDIASUBTYPE_YV12 = {0x32315659, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}

const GUID MEDIATYPE_Audio = {0x73647561, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}

const GUID MEDIATYPE_Video = {0x73646976, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}


Generated on Tue May 25 08:05:12 2010 for VLC by  doxygen 1.5.6