Mercurial > mplayer.hg
view loader/dmo/DMO_VideoDecoder.h @ 10578:b9d289fd8a57
10000l, the old code was slow as hell, copying stuff extra times and
actually broken -- blanking the whole screen at each 'page flip' with
-dr enabled. benchmarks:
before:
56% cpu for decode
56% cpu for vo with no -dr
25% cpu for vo with -dr
after:
56% cpu for decode
25% cpu for vo without -dr
0% cpu for vo with -dr
if vo_fbdev is going to do pageflip, it needs to do it for REAL, using
vertical scroll registers (like g2), not copying a temp buffer (which
will shear anyway and is super-slow).
author | rfelker |
---|---|
date | Tue, 12 Aug 2003 08:24:24 +0000 |
parents | 8e00b6a9e40b |
children | 2c8cdb9123b8 |
line wrap: on
line source
#ifndef AVIFILE_DMO_VIDEODECODER_H #define AVIFILE_DMO_VIDEODECODER_H typedef struct _DMO_VideoDecoder DMO_VideoDecoder; int DMO_VideoDecoder_GetCapabilities(DMO_VideoDecoder *this); DMO_VideoDecoder * DMO_VideoDecoder_Open(char* dllname, GUID* guid, BITMAPINFOHEADER * format, int flip, int maxauto); void DMO_VideoDecoder_Destroy(DMO_VideoDecoder *this); void DMO_VideoDecoder_StartInternal(DMO_VideoDecoder *this); void DMO_VideoDecoder_StopInternal(DMO_VideoDecoder *this); int DMO_VideoDecoder_DecodeInternal(DMO_VideoDecoder *this, const void* src, int size, int is_keyframe, char* pImage); /* * bits == 0 - leave unchanged */ //int SetDestFmt(DMO_VideoDecoder * this, int bits = 24, fourcc_t csp = 0); int DMO_VideoDecoder_SetDestFmt(DMO_VideoDecoder *this, int bits, unsigned int csp); int DMO_VideoDecoder_SetDirection(DMO_VideoDecoder *this, int d); #endif /* AVIFILE_DMO_VIDEODECODER_H */