From fceaa28287cf5e57a2bf478aeb8df2b199ae01ec Mon Sep 17 00:00:00 2001 From: mswitch Date: Sat, 9 Feb 2002 11:35:24 +0000 Subject: Added switch to disable prebuffering git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4606 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/vo_dxr3.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'libvo') diff --git a/libvo/vo_dxr3.c b/libvo/vo_dxr3.c index 9a283060bf..94f3de2056 100644 --- a/libvo/vo_dxr3.c +++ b/libvo/vo_dxr3.c @@ -77,7 +77,7 @@ static int s_width, s_height; 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 control(uint32_t request, void *data, ...) 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 @@ uint32_t control(uint32_t request, void *data, ...) 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 void check_events(void) 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"); -- cgit v1.2.3