emotion: better debugging.
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 30 Aug 2011 22:40:01 +0000 (22:40 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 30 Aug 2011 22:40:01 +0000 (22:40 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/emotion@63012 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/modules/gstreamer/emotion_sink.c

index a43d6c3..c19f3a9 100644 (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);
            }
      }