emotion: better debugging.

SVN revision: 63012
This commit is contained in:
Cedric BAIL 2011-08-30 22:40:01 +00:00
parent 96a210d07c
commit 0fbe1f15a3
1 changed files with 50 additions and 11 deletions

View File

@ -103,10 +103,12 @@ evas_video_sink_set_property(GObject * object, guint prop_id,
eina_lock_take(&priv->m);
evas_object_event_callback_del(priv->o, EVAS_CALLBACK_FREE, _cleanup_priv);
priv->o = g_value_get_pointer (value);
INF("sink set Evas_Object %p.", priv->o);
evas_object_event_callback_add(priv->o, EVAS_CALLBACK_FREE, _cleanup_priv, priv);
eina_lock_release(&priv->m);
break;
case PROP_EV:
INF("sink set ev.");
eina_lock_take(&priv->m);
priv->ev = g_value_get_pointer (value);
eina_lock_release(&priv->m);
@ -130,21 +132,25 @@ evas_video_sink_get_property(GObject * object, guint prop_id,
switch (prop_id) {
case PROP_EVAS_OBJECT:
INF("sink get property.");
eina_lock_take(&priv->m);
g_value_set_pointer (value, priv->o);
g_value_set_pointer(value, priv->o);
eina_lock_release(&priv->m);
break;
case PROP_WIDTH:
INF("sink get width.");
eina_lock_take(&priv->m);
g_value_set_int(value, priv->width);
eina_lock_release(&priv->m);
break;
case PROP_HEIGHT:
INF("sink get height.");
eina_lock_take(&priv->m);
g_value_set_int (value, priv->height);
eina_lock_release(&priv->m);
break;
case PROP_EV:
INF("sink get ev.");
eina_lock_take(&priv->m);
g_value_set_pointer (value, priv->ev);
eina_lock_release(&priv->m);
@ -162,6 +168,8 @@ evas_video_sink_dispose(GObject* object)
EvasVideoSink* sink;
EvasVideoSinkPrivate* priv;
INF("dispose.");
sink = EVAS_VIDEO_SINK(object);
priv = sink->priv;
@ -202,24 +210,27 @@ gboolean evas_video_sink_set_caps(GstBaseSink *bsink, GstCaps *caps)
{
case GST_MAKE_FOURCC('I', '4', '2', '0'):
priv->eformat = EVAS_COLORSPACE_YCBCR422P601_PL;
printf ("I420\n");
priv->gformat = GST_VIDEO_FORMAT_I420;
INF("sink set colorspace I420 [%i, %i]", priv->width, priv->height);
break;
case GST_MAKE_FOURCC('Y', 'V', '1', '2'):
priv->eformat = EVAS_COLORSPACE_YCBCR422P601_PL;
printf ("YV12\n");
priv->gformat = GST_VIDEO_FORMAT_YV12;
INF("sink set colorspace YV12 [%i, %i]", priv->width, priv->height);
break;
case GST_MAKE_FOURCC('Y', 'U', 'Y', '2'):
priv->eformat = EVAS_COLORSPACE_YCBCR422601_PL;
printf("YUY2\n");
priv->gformat = GST_VIDEO_FORMAT_YUY2;
INF("sink set colorspace YUY2 [%i, %i]", priv->width, priv->height);
break;
case GST_MAKE_FOURCC('N', 'V', '1', '2'):
priv->eformat = EVAS_COLORSPACE_YCBCR420NV12601_PL;
printf("NV12\n");
INF("sink set colorspace NV12 [%i, %i]", priv->width, priv->height);
break;
case GST_MAKE_FOURCC('S', 'T', '1', '2'):
case GST_MAKE_FOURCC('T', 'M', '1', '2'):
priv->eformat = EVAS_COLORSPACE_YCBCR420TM12601_PL;
printf("ST12\n");
INF("sink set colorspace ST12 [%i, %i]", priv->width, priv->height);
break;
default:
goto test_format;
@ -228,6 +239,7 @@ gboolean evas_video_sink_set_caps(GstBaseSink *bsink, GstCaps *caps)
else
{
test_format:
INF("fallback code !");
if (!gst_video_format_parse_caps(caps, &format, &priv->width, &priv->height))
{
ERR("Unable to parse caps.");
@ -237,20 +249,20 @@ gboolean evas_video_sink_set_caps(GstBaseSink *bsink, GstCaps *caps)
switch (format)
{
case GST_VIDEO_FORMAT_BGR: priv->eformat = EVAS_COLORSPACE_ARGB8888;
printf ("BGR\n");
INF("sink set colorspace BGR [%i, %i]", priv->width, priv->height);
break;
case GST_VIDEO_FORMAT_BGRx: priv->eformat = EVAS_COLORSPACE_ARGB8888;
printf ("BGRx\n");
INF("sink set colorspace BGRx [%i, %i]", priv->width, priv->height);
break;
case GST_VIDEO_FORMAT_BGRA: priv->eformat = EVAS_COLORSPACE_ARGB8888;
printf ("BGRA\n");
INF("sink set colorspace BGRA [%i, %i]", priv->width, priv->height);
break;
default:
ERR("unsupported : %d\n", format);
return FALSE;
}
priv->gformat = format;
}
priv->gformat = format;
return TRUE;
}
@ -261,6 +273,8 @@ evas_video_sink_start(GstBaseSink* base_sink)
EvasVideoSinkPrivate* priv;
gboolean res = TRUE;
INF("sink start");
priv = EVAS_VIDEO_SINK(base_sink)->priv;
eina_lock_take(&priv->m);
if (!priv->o)
@ -276,6 +290,8 @@ evas_video_sink_stop(GstBaseSink* base_sink)
{
EvasVideoSinkPrivate* priv = EVAS_VIDEO_SINK(base_sink)->priv;
INF("sink stop");
unlock_buffer_mutex(priv);
return TRUE;
}
@ -285,6 +301,8 @@ evas_video_sink_unlock(GstBaseSink* object)
{
EvasVideoSink* sink;
INF("sink unlock");
sink = EVAS_VIDEO_SINK(object);
unlock_buffer_mutex(sink->priv);
@ -302,6 +320,8 @@ evas_video_sink_unlock_stop(GstBaseSink* object)
sink = EVAS_VIDEO_SINK(object);
priv = sink->priv;
INF("sink unlock stop");
eina_lock_take(&priv->m);
priv->unlocked = FALSE;
eina_lock_release(&priv->m);
@ -317,6 +337,14 @@ evas_video_sink_preroll(GstBaseSink* bsink, GstBuffer* buffer)
EvasVideoSinkPrivate *priv;
EvasVideoSink *sink;
INF("sink preroll %p [%i]", GST_BUFFER_DATA(buffer), GST_BUFFER_SIZE(buffer));
if (GST_BUFFER_SIZE(buffer) <= 0)
{
WRN("empty buffer");
return GST_FLOW_OK;
}
sink = EVAS_VIDEO_SINK(bsink);
priv = sink->priv;
@ -335,6 +363,14 @@ evas_video_sink_render(GstBaseSink* bsink, GstBuffer* buffer)
EvasVideoSinkPrivate *priv;
EvasVideoSink *sink;
INF("sink render %p [%i]", GST_BUFFER_DATA(buffer), GST_BUFFER_SIZE(buffer));
if (GST_BUFFER_SIZE(buffer) <= 0)
{
WRN("empty buffer");
return GST_FLOW_OK;
}
sink = EVAS_VIDEO_SINK(bsink);
priv = sink->priv;
@ -401,6 +437,8 @@ evas_video_sink_main_render(void *data)
if (w != priv->width || h != priv->height)
goto exit_point;
INF("sink main render [%i, %i]", w, h);
evas_object_image_size_set(priv->o, priv->width, priv->height);
evas_object_image_alpha_set(priv->o, 0);
evas_object_image_colorspace_set(priv->o, priv->eformat);
@ -538,7 +576,6 @@ evas_video_sink_main_render(void *data)
}
default:
switch (priv->eformat)
{
case EVAS_COLORSPACE_YCBCR420NV12601_PL:
@ -578,6 +615,8 @@ evas_video_sink_main_render(void *data)
rows[i] = &gst_data[priv->height * priv->width + i * (priv->width / 2) * 2 * 16];
break;
}
default:
WRN("No way to decode %x colorspace !", priv->eformat);
}
}