imrpovement in ethumb video generation - wait a few frames so we have

something rendered at new pos... :)
This commit is contained in:
Carsten Haitzler 2013-03-25 16:12:54 +09:00
parent 6e8fe3b03d
commit 5bb45cecbf
1 changed files with 9 additions and 7 deletions

View File

@ -33,6 +33,7 @@ struct _emotion_plugin
double total_time, tmp_time; double total_time, tmp_time;
unsigned int pcount; unsigned int pcount;
unsigned int frnum; unsigned int frnum;
unsigned int okfr;
Eina_Bool first; Eina_Bool first;
Eet_File *ef; Eet_File *ef;
Evas_Object *video; Evas_Object *video;
@ -88,6 +89,7 @@ _video_stopped_cb(void *data, Evas_Object *o EINA_UNUSED, void *event_info EINA_
{ {
struct _emotion_plugin *_plugin = data; struct _emotion_plugin *_plugin = data;
_plugin->okfr = 0;
_plugin->pi = 0; _plugin->pi = 0;
_plugin->ptotal = 0; _plugin->ptotal = 0;
_plugin->first = EINA_FALSE; _plugin->first = EINA_FALSE;
@ -107,12 +109,12 @@ _video_pos_set(struct _emotion_plugin *_plugin)
if (_plugin->len > 0) if (_plugin->len > 0)
_plugin->first = EINA_TRUE; _plugin->first = EINA_TRUE;
if (pos <=0 || pos >= 1) if ((pos <= 0) || (pos >= 1))
_plugin->pi = 0.1 * _plugin->len + _plugin->pcount * _plugin->pi = (0.1 * _plugin->len) +
_plugin->len * interval; (_plugin->pcount * _plugin->len * interval);
else else
_plugin->pi = pos * _plugin->len + _plugin->pcount * _plugin->pi = (pos * _plugin->len) +
_plugin->len * interval; (_plugin->pcount * _plugin->len * interval);
emotion_object_position_set(_plugin->video, _plugin->pi); emotion_object_position_set(_plugin->video, _plugin->pi);
} }
@ -233,8 +235,8 @@ _frame_grab_single(void *data)
} }
p = emotion_object_position_get(_plugin->video); p = emotion_object_position_get(_plugin->video);
// if (p < _plugin->pi) _plugin->okfr++;
if (p <= 0.0) if (_plugin->okfr < 5)
return EINA_TRUE; return EINA_TRUE;
DBG("saving static thumbnail at position=%f (intended=%f)", p, _plugin->pi); DBG("saving static thumbnail at position=%f (intended=%f)", p, _plugin->pi);