Mercurial > mplayer.hg
view fifo.c @ 9787:c3b63fb0e8db
Added a test for "s->fd == NULL" to the start of "stream_fill_buffer()".
("fd" is NULL if the session is defined by a SDP file, for example.)
It turns out that this test is necessary only for Solaris, not Linux,
because in Linux, "s->eof" got set after the prior (failing) call to
"lseek()" in "stream_seek_long()". In Solaris, however, "lseek(NULL, ...)"
returns 0 (go figure!) rather than -1, so "s->eof" doesn't get set in
"stream_seek_long()".
author | rsf |
---|---|
date | Wed, 02 Apr 2003 01:46:47 +0000 |
parents | 44198b2f42db |
children | 0397b461f0fb |
line wrap: on
line source
// keyboard: static int keyb_fifo_put=-1; static int keyb_fifo_get=-1; static void make_pipe(int* pr,int* pw){ int temp[2]; if(pipe(temp)!=0) printf("Cannot make PIPE!\n"); *pr=temp[0]; *pw=temp[1]; } void mplayer_put_key(int code){ fd_set rfds; struct timeval tv; /* Watch stdin (fd 0) to see when it has input. */ FD_ZERO(&rfds); FD_SET(keyb_fifo_put, &rfds); tv.tv_sec = 0; tv.tv_usec = 0; //retval = select(keyb_fifo_put+1, &rfds, NULL, NULL, &tv); if(select(keyb_fifo_put+1, NULL, &rfds, NULL, &tv)>0){ write(keyb_fifo_put,&code,4); // printf("*** key event %d sent ***\n",code); } else { // printf("*** key event dropped (FIFO is full) ***\n"); } }