Mercurial > mplayer.hg
view loader/dshow/DS_VideoDecoder.h @ 32434:acb796d7ca50
Make mencoder account for encoder delay when considering the current
time position of a muxer stream. To mencoder core, delayed frames
should be considered as "dealt with", since they'll get to the muxer
eventually. Without this compensation, mencoder will sometimes make
different frame skip/duplicate decisions on the first of a two-pass
x264 encode (since x264 buffers many more frames on the first pass),
leading to a segfault in x264 when it gets fed more frames on the
second pass.
author | corey |
---|---|
date | Thu, 21 Oct 2010 07:05:30 +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 */