summaryrefslogtreecommitdiff
path: root/legacy/evas/src/modules/engines/gl_sdl/evas_engine.c
diff options
context:
space:
mode:
authorCedric BAIL <cedric.bail@free.fr>2011-08-29 20:56:48 +0000
committerCedric BAIL <cedric.bail@free.fr>2011-08-29 20:56:48 +0000
commit26ee52dd61de15deaf4ee315df43eebe6def9193 (patch)
tree196aa4f0c9bf5a56a97a5e6d47c7d3473a9001d8 /legacy/evas/src/modules/engines/gl_sdl/evas_engine.c
parent93ded6d380ff0d51abe837e3ecdba3c9f1c529c7 (diff)
evas: add NV12 and MT12 colorspace.
MT12 is has documented in Linux videodev documentation a 64 * 32 macro block tiled colorspace format used on Samsung hardware. SVN revision: 62967
Diffstat (limited to '')
-rw-r--r--legacy/evas/src/modules/engines/gl_sdl/evas_engine.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/legacy/evas/src/modules/engines/gl_sdl/evas_engine.c b/legacy/evas/src/modules/engines/gl_sdl/evas_engine.c
index 3134270fdd..332438a9c2 100644
--- a/legacy/evas/src/modules/engines/gl_sdl/evas_engine.c
+++ b/legacy/evas/src/modules/engines/gl_sdl/evas_engine.c
@@ -468,6 +468,8 @@ eng_image_colorspace_set(void *data, void *image, int cspace)
468 case EVAS_COLORSPACE_YCBCR422P601_PL: 468 case EVAS_COLORSPACE_YCBCR422P601_PL:
469 case EVAS_COLORSPACE_YCBCR422P709_PL: 469 case EVAS_COLORSPACE_YCBCR422P709_PL:
470 case EVAS_COLORSPACE_YCBCR422601_PL: 470 case EVAS_COLORSPACE_YCBCR422601_PL:
471 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
472 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
471 if (im->tex) evas_gl_common_texture_free(im->tex); 473 if (im->tex) evas_gl_common_texture_free(im->tex);
472 im->tex = NULL; 474 im->tex = NULL;
473 if (im->cs.data) 475 if (im->cs.data)
@@ -599,10 +601,18 @@ eng_image_size_set(void *data, void *image, int w, int h)
599 return image; 601 return image;
600 } 602 }
601 im_old = image; 603 im_old = image;
602 if ((eng_image_colorspace_get(data, image) == EVAS_COLORSPACE_YCBCR422P601_PL) || 604
603 (eng_image_colorspace_get(data, image) == EVAS_COLORSPACE_YCBCR422P709_PL) || 605 switch (eng_image_colorspace_get(data, image))
604 (eng_image_colorspace_get(data, image) == EVAS_COLORSPACE_YCBCR422601_PL)) 606 {
605 w &= ~0x1; 607 case EVAS_COLORSPACE_YCBCR422P601_PL:
608 case EVAS_COLORSPACE_YCBCR422P709_PL:
609 case EVAS_COLORSPACE_YCBCR422601_PL:
610 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
611 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
612 w &= ~0x1;
613 break;
614 }
615
606 if ((im_old) && (im_old->im->cache_entry.w == w) && (im_old->im->cache_entry.h == h)) 616 if ((im_old) && (im_old->im->cache_entry.w == w) && (im_old->im->cache_entry.h == h))
607 return image; 617 return image;
608 if (im_old) 618 if (im_old)
@@ -689,6 +699,8 @@ eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data, i
689 case EVAS_COLORSPACE_YCBCR422P601_PL: 699 case EVAS_COLORSPACE_YCBCR422P601_PL:
690 case EVAS_COLORSPACE_YCBCR422P709_PL: 700 case EVAS_COLORSPACE_YCBCR422P709_PL:
691 case EVAS_COLORSPACE_YCBCR422601_PL: 701 case EVAS_COLORSPACE_YCBCR422601_PL:
702 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
703 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
692 *image_data = im->cs.data; 704 *image_data = im->cs.data;
693 break; 705 break;
694 default: 706 default:
@@ -729,6 +741,8 @@ eng_image_data_put(void *data, void *image, DATA32 *image_data)
729 case EVAS_COLORSPACE_YCBCR422P601_PL: 741 case EVAS_COLORSPACE_YCBCR422P601_PL:
730 case EVAS_COLORSPACE_YCBCR422P709_PL: 742 case EVAS_COLORSPACE_YCBCR422P709_PL:
731 case EVAS_COLORSPACE_YCBCR422601_PL: 743 case EVAS_COLORSPACE_YCBCR422601_PL:
744 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
745 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
732 if (image_data != im->cs.data) 746 if (image_data != im->cs.data)
733 { 747 {
734 if (im->cs.data) 748 if (im->cs.data)