Mercurial > mplayer.hg
view libvo/x11_common.h @ 7743:a280cc3087ea
All right: The patch adresses two issues which I found, when I analyzed
the input from some DVDs with known subtitle-dropouts:
1. The packet-size at the beginning of the packet, which is used to
check, whether we got all fragments, is sometimes one byte too long. It
seems to be always padded to an even number, while the actual size can
be odd.
2. The original algorythm used to assemble the fragments relies on the
timestamps to check, whether a new packet begins. This has proven to be
unrelieable on some disks. So instead, I use the timestamp only to
check, whether it's been too long (defined as 0,01sec) since the last
fragment, which is probably indicating a broken packet, and normaly
starting a new packet when the last one has been finished.
patch by Christof Buergi <christof@buergi.lugs.ch>
author | arpi |
---|---|
date | Tue, 15 Oct 2002 00:47:17 +0000 |
parents | ec6dd0a29d93 |
children | 143d730908ae |
line wrap: on
line source
#ifndef X11_COMMON_H #define X11_COMMON_H #ifdef X11_FULLSCREEN #include <X11/Xlib.h> #include <X11/Xutil.h> extern int vo_depthonscreen; extern int vo_screenwidth; extern int vo_screenheight; extern int vo_dwidth; extern int vo_dheight; extern int vo_fs; extern int vo_wm_type; extern char *mDisplayName; extern Display *mDisplay; extern Window mRootWin; extern int mScreen; extern int mLocalDisplay; extern int WinID; extern int vo_mouse_timer_const; extern int vo_mouse_autohide; extern int vo_init( void ); extern void vo_uninit( void ); extern void vo_hidecursor ( Display* , Window ); extern void vo_showcursor( Display *disp, Window win ); extern void vo_x11_decoration( Display * vo_Display,Window w,int d ); extern void vo_x11_classhint( Display * display,Window window,char *name ); extern void vo_x11_sizehint( int x, int y, int width, int height, int max ); extern int vo_x11_check_events(Display *mydisplay); extern void vo_x11_selectinput_witherr(Display *display, Window w, long event_mask); extern void vo_x11_fullscreen( void ); extern void vo_x11_uninit(); #endif extern Window vo_window; extern GC vo_gc; extern XSizeHints vo_hint; #ifdef HAVE_NEW_GUI extern void vo_setwindow( Window w,GC g ); extern void vo_x11_putkey(int key); #endif void saver_off( Display * ); void saver_on( Display * ); #ifdef HAVE_XINERAMA void vo_x11_xinerama_move(Display *dsp, Window w); #endif #ifdef HAVE_XF86VM void vo_vm_switch(uint32_t, uint32_t, int*, int*); void vo_vm_close(Display*); #endif #endif int vo_find_depth_from_visuals(Display *dpy, int screen, Visual **visual_return);