Author: tack
Date: Wed May 30 18:24:13 2007
New Revision: 2701

Modified:
   trunk/evas/src/__init__.py
   trunk/evas/src/image.c

Log:
Require stride, and other stuff ... :)


Modified: trunk/evas/src/__init__.py
==============================================================================
--- trunk/evas/src/__init__.py  (original)
+++ trunk/evas/src/__init__.py  Wed May 30 18:24:13 2007
@@ -191,6 +191,7 @@
 
     def color_get(self):
         r, g, b, a = self._object.color_get()
+        return r, g, b, a
         return color_argb_unpremul(a, r, g, b) + (a,)
 
     def color_set(self, r=None, g=None, b=None, a=None):
@@ -200,7 +201,7 @@
                 return x
             (r, g, b, a) = map(f, (r, g, b, a), self.color_get())
         (r, g, b, a) =  map(lambda x: min(255, max(0, x)), (r, g, b, a))
-        r, g, b = color_argb_premul(a, r, g, b)
+        #r, g, b = color_argb_premul(a, r, g, b)
         return self._object.color_set(r, g, b, a)
      
      

Modified: trunk/evas/src/image.c
==============================================================================
--- trunk/evas/src/image.c      (original)
+++ trunk/evas/src/image.c      Wed May 30 18:24:13 2007
@@ -316,25 +316,27 @@
 Evas_Object_PyObject_image_data_set(Evas_Object_PyObject * self, PyObject * 
args, PyObject *kwargs)
 {
     PyObject *buffer, *stride;
-    void *data;
-    int len, result, is_write_buffer = 0, copy;
+    void *data = 0;
+    int len, result, is_write_buffer = 0, copy, cspace;
 
     if (!PyArg_ParseTuple(args, "OiO", &buffer, &copy, &stride))
         return NULL;
 
-    if (PyNumber_Check(buffer)) {
-        int cspace = evas_object_image_colorspace_get(self->object);
+    cspace = evas_object_image_colorspace_get(self->object);
+    if ((!PyNumber_Check(buffer) || PyLong_AsLong(buffer) != 0) && 
+        (cspace == EVAS_COLORSPACE_YCBCR422P601_PL || cspace == 
EVAS_COLORSPACE_YCBCR422P709_PL)) {
+        int w, h;
         is_write_buffer = 1;
-        data = (void *) PyLong_AsLong(buffer);
-        if (data && (cspace == EVAS_COLORSPACE_YCBCR422P601_PL || cspace == 
EVAS_COLORSPACE_YCBCR422P709_PL)) {
-            int w, h;
-            if (!PyNumber_Check(stride)) {
-                PyErr_SetString(PyExc_ValueError, "stride parameter is not an 
integer");
-                return NULL;
-            }
-            evas_object_image_size_get(self->object, &w, &h);
-            data = _yuv_planes_to_rows(buffer, w, h, PyLong_AsLong(stride));
+        if (!PyNumber_Check(stride)) {
+            PyErr_SetString(PyExc_ValueError, "stride parameter is not an 
integer");
+            return NULL;
         }
+        evas_object_image_size_get(self->object, &w, &h);
+        data = _yuv_planes_to_rows(buffer, w, h, PyLong_AsLong(stride));
+    } 
+    else if (PyNumber_Check(buffer)) {
+        is_write_buffer = 1;
+        data = (void *)PyLong_AsLong(buffer);
     } else {
         result = PyObject_AsWriteBuffer(buffer, &data, &len);
         if (result != -1) {
@@ -436,18 +438,13 @@
 {
     Evas_Pixel_Import_Source ps;
     PyObject *data;
-    int result;
+    int result, stride;
 
-    if (!PyArg_ParseTuple(args, "Oiii", &data, &ps.w, &ps.h, &ps.format))
+    if (!PyArg_ParseTuple(args, "Oiiii", &data, &ps.w, &ps.h, &ps.format, 
&stride))
         return NULL;
 
     if (ps.format == EVAS_PIXEL_FORMAT_YUV420P_601) {
-        PyObject *stride = PyDict_GetItemString(kwargs, "stride");
-        if (!stride || !PyNumber_Check(stride)) {
-            PyErr_SetString(PyExc_ValueError, "stride parameter is missing or 
not an integer");
-            return NULL;
-        }
-        ps.rows = _yuv_planes_to_rows(data, ps.w, ps.h, PyLong_AsLong(stride));
+        ps.rows = _yuv_planes_to_rows(data, ps.w, ps.h, stride);
         BENCH_START
         result = evas_object_image_pixels_import(self->object, &ps);
         BENCH_END

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to