forked from enlightenment/efl
parent
019ae2a310
commit
02aa4abb9f
|
@ -292,10 +292,19 @@ em_file_open(const char *file, Evas_Object *obj)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (xine_get_pos_length(ev->stream, &pos_stream, &pos_time, &length_time))
|
if (xine_get_pos_length(ev->stream, &pos_stream, &pos_time, &length_time))
|
||||||
|
{
|
||||||
|
if (length_time == 0)
|
||||||
|
{
|
||||||
|
ev->pos = (double)pos_stream / 65535;
|
||||||
|
ev->len = 1.0;
|
||||||
|
ev->no_time = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
ev->pos = 0.0;
|
ev->pos = 0.0;
|
||||||
ev->len = (double)length_time / 1000.0;
|
ev->len = (double)length_time / 1000.0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
v = xine_get_stream_info(ev->stream, XINE_STREAM_INFO_FRAME_DURATION);
|
v = xine_get_stream_info(ev->stream, XINE_STREAM_INFO_FRAME_DURATION);
|
||||||
if (v > 0) ev->fps = 90000.0 / (double)v;
|
if (v > 0) ev->fps = 90000.0 / (double)v;
|
||||||
v = xine_get_stream_info(ev->stream, XINE_STREAM_INFO_VIDEO_WIDTH);
|
v = xine_get_stream_info(ev->stream, XINE_STREAM_INFO_VIDEO_WIDTH);
|
||||||
|
@ -402,10 +411,20 @@ em_play(void *ef, double pos)
|
||||||
&pos_stream,
|
&pos_stream,
|
||||||
&pos_time,
|
&pos_time,
|
||||||
&length_time))
|
&length_time))
|
||||||
|
{
|
||||||
|
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->pos = (double)pos_time / 1000.0;
|
||||||
ev->len = (double)length_time / 1000.0;
|
ev->len = (double)length_time / 1000.0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((xine_get_stream_info(ev->stream, XINE_STREAM_INFO_HAS_VIDEO)) &&
|
if ((xine_get_stream_info(ev->stream, XINE_STREAM_INFO_HAS_VIDEO)) &&
|
||||||
(xine_get_stream_info(ev->stream, XINE_STREAM_INFO_VIDEO_HANDLED)))
|
(xine_get_stream_info(ev->stream, XINE_STREAM_INFO_VIDEO_HANDLED)))
|
||||||
_emotion_frame_new(ev->obj);
|
_emotion_frame_new(ev->obj);
|
||||||
|
@ -451,10 +470,13 @@ em_pos_set(void *ef, double pos)
|
||||||
ev = (Emotion_Xine_Video *)ef;
|
ev = (Emotion_Xine_Video *)ef;
|
||||||
|
|
||||||
if (ev->seek_to_pos == pos) return;
|
if (ev->seek_to_pos == pos) return;
|
||||||
|
// if (xine_get_stream_info(ev->stream, XINE_STREAM_INFO_SEEKABLE))
|
||||||
|
{
|
||||||
ev->seek_to_pos = pos;
|
ev->seek_to_pos = pos;
|
||||||
ev->seek_to++;
|
ev->seek_to++;
|
||||||
pthread_cond_broadcast(&(ev->seek_cond));
|
pthread_cond_broadcast(&(ev->seek_cond));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static double
|
static double
|
||||||
em_len_get(void *ef)
|
em_len_get(void *ef)
|
||||||
|
|
Loading…
Reference in New Issue