From 02aa4abb9f14246cb2bc35d40936ed5cc10c893d Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 21 Jul 2004 07:38:17 +0000 Subject: [PATCH] moe robus pos reporting SVN revision: 10953 --- legacy/emotion/src/modules/emotion_xine.c | 36 ++++++++++++++++++----- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/legacy/emotion/src/modules/emotion_xine.c b/legacy/emotion/src/modules/emotion_xine.c index 8f7de4b53f..395b673da6 100644 --- a/legacy/emotion/src/modules/emotion_xine.c +++ b/legacy/emotion/src/modules/emotion_xine.c @@ -293,8 +293,17 @@ em_file_open(const char *file, Evas_Object *obj) } if (xine_get_pos_length(ev->stream, &pos_stream, &pos_time, &length_time)) { - ev->pos = 0.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 = 0.0; + ev->len = (double)length_time / 1000.0; + } } v = xine_get_stream_info(ev->stream, XINE_STREAM_INFO_FRAME_DURATION); if (v > 0) ev->fps = 90000.0 / (double)v; @@ -403,9 +412,19 @@ em_play(void *ef, double pos) &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; + } } + if ((xine_get_stream_info(ev->stream, XINE_STREAM_INFO_HAS_VIDEO)) && (xine_get_stream_info(ev->stream, XINE_STREAM_INFO_VIDEO_HANDLED))) _emotion_frame_new(ev->obj); @@ -451,9 +470,12 @@ em_pos_set(void *ef, double pos) ev = (Emotion_Xine_Video *)ef; if (ev->seek_to_pos == pos) return; - ev->seek_to_pos = pos; - ev->seek_to++; - pthread_cond_broadcast(&(ev->seek_cond)); +// if (xine_get_stream_info(ev->stream, XINE_STREAM_INFO_SEEKABLE)) + { + ev->seek_to_pos = pos; + ev->seek_to++; + pthread_cond_broadcast(&(ev->seek_cond)); + } } static double