Mercurial > mplayer.hg
view loader/dshow/DS_VideoDecoder.h @ 8843:c70444c5b516
I have seen problems where DVD subtitles don't display
at the right time and sometimes they don't appear at
all. The problem stems from the fact that subtitle
command packets are being applied as soon as they are
read and assembled from the input stream. Sometimes,
a fully assembled subtitle packet arrives at the
spudec_assemble function before the previous subtitle
appears onscreen and thus the viewer only sees the
second subtitle. So I created a patch that queues
assembled subtitle packets and applies them at the
appropriate time within the heartbeat function. The
reset function clears the packet queue when seeking
through the video.
Tomasz Farkas <tomasz_farkas@yahoo.co.uk>
author | arpi |
---|---|
date | Wed, 08 Jan 2003 18:36:36 +0000 |
parents | e9bd97d5c5cc |
children | 2c8cdb9123b8 |
line wrap: on
line source
#ifndef AVIFILE_DS_VIDEODECODER_H #define AVIFILE_DS_VIDEODECODER_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 /* AVIFILE_DS_VIDEODECODER_H */