view loader/dshow/DS_VideoDecoder.h @ 35840:bd190ad6b204

Avoid calling FreeLibrary() twice. FreeLibrary() decreases a per-process reference/usage counter. This counter is set to 1 when a library is loaded at startup and increased with each LoadLibrary() call. Calling FreeLibrary() twice could unload the library (that is loaded at startup) and break code that calls its functions directly. In MPlayer this seems to happen with fontconfig package.
author iive
date Sat, 09 Mar 2013 16:58:26 +0000
parents 837cd9762b4e
children
line wrap: on
line source

#ifndef MPLAYER_DS_VIDEODECODER_H
#define MPLAYER_DS_VIDEODECODER_H

#include "loader/com.h"
#include "loader/wine/vfw.h"

typedef struct DS_VideoDecoder DS_VideoDecoder;

int DS_VideoDecoder_GetCapabilities(DS_VideoDecoder *this);

DS_VideoDecoder * DS_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEADER * format, int flip, int maxauto);

void DS_VideoDecoder_Destroy(DS_VideoDecoder *this);

void DS_VideoDecoder_StartInternal(DS_VideoDecoder *this);

void DS_VideoDecoder_StopInternal(DS_VideoDecoder *this);

int DS_VideoDecoder_DecodeInternal(DS_VideoDecoder *this, const void* src, int size, int is_keyframe, char* pImage);

/*
 * bits == 0   - leave unchanged
 */
//int SetDestFmt(DS_VideoDecoder * this, int bits = 24, fourcc_t csp = 0);
int DS_VideoDecoder_SetDestFmt(DS_VideoDecoder *this, int bits, unsigned int csp);
int DS_VideoDecoder_SetDirection(DS_VideoDecoder *this, int d);
int DS_VideoDecoder_GetValue(DS_VideoDecoder *this, const char* name, int* value);
int DS_VideoDecoder_SetValue(DS_VideoDecoder *this, const char* name, int value);
int DS_SetAttr_DivX(char* attribute, int value);


#endif /* MPLAYER_DS_VIDEODECODER_H */