CVS: main/libvo vo_dxr3.c,1.49,1.50
Update of /cvsroot/mplayer/main/libvo In directory mplayer:/var/tmp.root/cvs-serv18031/libvo Modified Files: vo_dxr3.c Log Message: Added switch to disable prebuffering Index: vo_dxr3.c =================================================================== RCS file: /cvsroot/mplayer/main/libvo/vo_dxr3.c,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- vo_dxr3.c 9 Feb 2002 11:15:11 -0000 1.49 +++ vo_dxr3.c 9 Feb 2002 11:35:24 -0000 1.50 @@ -77,7 +77,7 @@ static int s_pos_x, s_pos_y; static int d_pos_x, d_pos_y; static int osd_w, osd_h; - +static int noprebuf = 0; static int img_format = 0; /* File descriptors */ @@ -102,11 +102,10 @@ uint32_t flag = 0; switch (request) { case VOCTRL_RESET: - /* Apparently the new em8300 flushing code is still not working. - * I'll get on it, but this should be good enough for now - */ - close(fd_video); - fd_video = open(fdv_name, O_WRONLY); + if (!noprebuf) { + close(fd_video); + fd_video = open(fdv_name, O_WRONLY); + } return VO_TRUE; case VOCTRL_QUERY_FORMAT: switch (*((uint32_t*)data)) { @@ -129,7 +128,11 @@ printf("VO: [dxr3] You have disabled libavcodec support (Read DOCS/codecs.html)!\n"); #endif } - return (flag | 0x100); + if (noprebuf) { + return flag; + } else { + return (flag | 0x100); + } } return VO_NOTIMPL; } @@ -415,11 +418,18 @@ static uint32_t preinit(const char *arg) { char devname[80]; - int fdflags = O_WRONLY | O_NONBLOCK; + int fdflags = O_WRONLY; /* Open the control interface */ if (vo_subdevice) { - sprintf(devname, "/dev/em8300-%s", vo_subdevice); + if (!strcmp("noprebuf", vo_subdevice)) { + printf("VO: [dxr3] Disabling prebuffering.\n"); + noprebuf = 1; + fdflags |= O_NONBLOCK; + } else { + printf("VO: [dxr3] Forcing use of device %s\n", vo_subdevice); + sprintf(devname, "/dev/em8300-%s", vo_subdevice); + } } else { /* Try new naming scheme by default */ sprintf(devname, "/dev/em8300-0");
participants (1)
-
David Holm