Enlightenment CVS committal Author : raster Project : e17 Module : libs/emotion
Dir : e17/libs/emotion/src/modules Modified Files: emotion_xine.c emotion_xine.h Log Message: hmm - handle fstreams where xine dosnt report absolute length - just a percentage position =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/emotion/src/modules/emotion_xine.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- emotion_xine.c 20 Jul 2004 07:40:14 -0000 1.9 +++ emotion_xine.c 21 Jul 2004 06:34:17 -0000 1.10 @@ -979,13 +979,20 @@ { again: ppos = ev->seek_to_pos; - xine_play(ev->stream, 0, ppos * 1000); + if (ppos > ev->len) ppos = ev->len; + if (ev->no_time) + xine_play(ev->stream, ppos * 65535, 0); + else + xine_play(ev->stream, 0, ppos * 1000); ev->seek_to = 0; if (ev->delete_me) return NULL; } if (!ev->play) - xine_set_param(ev->stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE); + { + xine_set_param(ev->stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE); + } if (ev->delete_me) return NULL; + usleep(1000000 / 10); if (ppos != ev->seek_to_pos) goto again; } @@ -1227,9 +1234,18 @@ &pos_time, &length_time)) { - - ev->pos = (double)pos_time / 1000.0; - ev->len = (double)length_time / 1000.0; + if (length_time == 0) + { + ev->pos = (double)pos_stream / 65535; + ev->len = 1.0; + ev->no_time = 1; + } + else + { + ev->pos = (double)pos_time / 1000.0; + ev->len = (double)length_time / 1000.0; + ev->no_time = 0; + } } if (ev->delete_me) { @@ -1238,7 +1254,7 @@ } ev->get_poslen = 0; // printf("get pos %3.3f\n", ev->pos); - usleep(1000000 / 10); + usleep(1000000 / 15); } } return NULL; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/emotion/src/modules/emotion_xine.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- emotion_xine.h 18 Jul 2004 08:04:41 -0000 1.4 +++ emotion_xine.h 21 Jul 2004 06:34:18 -0000 1.5 @@ -17,8 +17,8 @@ xine_stream_t *stream; xine_event_queue_t *queue; int fd; - double len; - double pos; + volatile double len; + volatile double pos; double fps; double ratio; int w, h; @@ -40,6 +40,7 @@ unsigned char audio_mute : 1; unsigned char spu_mute : 1; volatile unsigned char delete_me : 1; + volatile unsigned char no_time : 1; pthread_t seek_th; pthread_t get_pos_len_th; ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs