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);
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);
EvasVideoSink* sink;
EvasVideoSinkPrivate* priv;
+ INF("dispose.");
+
sink = EVAS_VIDEO_SINK(object);
priv = sink->priv;
{
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;
else
{
test_format:
+ INF("fallback code !");
if (!gst_video_format_parse_caps(caps, &format, &priv->width, &priv->height))
{
ERR("Unable to parse 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;
}
EvasVideoSinkPrivate* priv;
gboolean res = TRUE;
+ INF("sink start");
+
priv = EVAS_VIDEO_SINK(base_sink)->priv;
eina_lock_take(&priv->m);
if (!priv->o)
{
EvasVideoSinkPrivate* priv = EVAS_VIDEO_SINK(base_sink)->priv;
+ INF("sink stop");
+
unlock_buffer_mutex(priv);
return TRUE;
}
{
EvasVideoSink* sink;
+ INF("sink unlock");
+
sink = EVAS_VIDEO_SINK(object);
unlock_buffer_mutex(sink->priv);
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);
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;
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;
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);
}
default:
-
switch (priv->eformat)
{
case EVAS_COLORSPACE_YCBCR420NV12601_PL:
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);
}
}