Mercurial > mplayer.hg
changeset 4605:b63ebfab3cdd
Added switch to disable prebuffering
author | mswitch |
---|---|
date | Sat, 09 Feb 2002 11:35:24 +0000 |
parents | c24f72161c37 |
children | e406d918e361 |
files | libvo/vo_dxr3.c |
diffstat | 1 files changed, 19 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/vo_dxr3.c Sat Feb 09 11:15:11 2002 +0000 +++ b/libvo/vo_dxr3.c Sat Feb 09 11:35:24 2002 +0000 @@ -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");