summaryrefslogtreecommitdiff
path: root/legacy
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2006-01-21 14:13:51 +0000
committerCarsten Haitzler <raster@rasterman.com>2006-01-21 14:13:51 +0000
commit830e68d0ffa037381de6f95ad3c37010968b5f8f (patch)
tree75be0034260cc2fce751564c511517ab13fbac60 /legacy
parent1c0b3c9706e04c119da15d826c0c697ac1f3b224 (diff)
move plugin to be inlined ans loaded from code and make xine emotion support
work again SVN revision: 19946
Diffstat (limited to 'legacy')
-rw-r--r--legacy/emotion/src/modules/Makefile.am4
-rw-r--r--legacy/emotion/src/modules/emotion_xine.c16
-rw-r--r--legacy/emotion/src/modules/emotion_xine.h1
-rw-r--r--legacy/emotion/src/modules/emotion_xine_vo_out.c (renamed from legacy/emotion/src/modules/xine/emotion_xine_vo_out.c)332
-rw-r--r--legacy/emotion/src/modules/xine/.cvsignore6
-rw-r--r--legacy/emotion/src/modules/xine/Makefile.am21
6 files changed, 196 insertions, 184 deletions
diff --git a/legacy/emotion/src/modules/Makefile.am b/legacy/emotion/src/modules/Makefile.am
index a8f2074ac2..99252818ee 100644
--- a/legacy/emotion/src/modules/Makefile.am
+++ b/legacy/emotion/src/modules/Makefile.am
@@ -1,7 +1,6 @@
1## Process this file with automake to produce Makefile.in 1## Process this file with automake to produce Makefile.in
2 2
3if BUILD_XINE_MODULE 3if BUILD_XINE_MODULE
4SUBDIRS = xine
5XINE_LIB_NAME=emotion_decoder_xine.la 4XINE_LIB_NAME=emotion_decoder_xine.la
6endif 5endif
7 6
@@ -25,7 +24,8 @@ pkg_LTLIBRARIES = $(XINE_LIB_NAME) $(GSTREAMER_LIB_NAME)
25if BUILD_XINE_MODULE 24if BUILD_XINE_MODULE
26emotion_decoder_xine_la_SOURCES = \ 25emotion_decoder_xine_la_SOURCES = \
27emotion_xine.c \ 26emotion_xine.c \
28emotion_xine.h 27emotion_xine.h \
28emotion_xine_vo_out.c
29emotion_decoder_xine_la_LIBADD = @EVAS_LIBS@ @ECORE_LIBS@ @XINE_LIBS@ 29emotion_decoder_xine_la_LIBADD = @EVAS_LIBS@ @ECORE_LIBS@ @XINE_LIBS@
30emotion_decoder_xine_la_LDFLAGS = -module -avoid-version \ 30emotion_decoder_xine_la_LDFLAGS = -module -avoid-version \
31 -L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs 31 -L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs
diff --git a/legacy/emotion/src/modules/emotion_xine.c b/legacy/emotion/src/modules/emotion_xine.c
index 5395954ffd..cda2b5dc62 100644
--- a/legacy/emotion/src/modules/emotion_xine.c
+++ b/legacy/emotion/src/modules/emotion_xine.c
@@ -60,6 +60,8 @@ static int _em_timer (void *data);
60static void *_em_get_pos_len_th(void *par); 60static void *_em_get_pos_len_th(void *par);
61static void _em_get_pos_len (Emotion_Xine_Video *ev); 61static void _em_get_pos_len (Emotion_Xine_Video *ev);
62 62
63extern plugin_info_t emotion_xine_plugin_info[];
64
63static unsigned char 65static unsigned char
64em_init(Evas_Object *obj, void **emotion_video) 66em_init(Evas_Object *obj, void **emotion_video)
65{ 67{
@@ -75,11 +77,12 @@ em_init(Evas_Object *obj, void **emotion_video)
75 77
76 ev->decoder = xine_new(); 78 ev->decoder = xine_new();
77 if (!ev->decoder) 79 if (!ev->decoder)
78 { 80 {
79 free(ev); 81 free(ev);
80 return 0; 82 return 0;
81 } 83 }
82 xine_init(ev->decoder); 84 xine_init(ev->decoder);
85 xine_register_plugins(ev->decoder, emotion_xine_plugin_info);
83 if (1) 86 if (1)
84 { 87 {
85 xine_cfg_entry_t cf; 88 xine_cfg_entry_t cf;
@@ -228,7 +231,10 @@ em_init(Evas_Object *obj, void **emotion_video)
228 } 231 }
229 ev->fd = ev->fd_write; 232 ev->fd = ev->fd_write;
230 233
231 ev->video = xine_open_video_driver(ev->decoder, "emotion", XINE_VISUAL_TYPE_NONE, ev); 234 printf("OPEN VIDEO PLUGIN...\n");
235 ev->video = xine_open_video_driver(ev->decoder, "emotion",
236 XINE_VISUAL_TYPE_NONE, ev);
237 printf("RESULT: xine_open_video_driver() = %p\n", ev->video);
232 //Let xine autodetect the best audio output driver 238 //Let xine autodetect the best audio output driver
233 ev->audio = xine_open_audio_driver(ev->decoder, NULL, ev); 239 ev->audio = xine_open_audio_driver(ev->decoder, NULL, ev);
234// ev->audio = xine_open_audio_driver(ev->decoder, "oss", ev); 240// ev->audio = xine_open_audio_driver(ev->decoder, "oss", ev);
diff --git a/legacy/emotion/src/modules/emotion_xine.h b/legacy/emotion/src/modules/emotion_xine.h
index 47bab1a73a..746ff52f98 100644
--- a/legacy/emotion/src/modules/emotion_xine.h
+++ b/legacy/emotion/src/modules/emotion_xine.h
@@ -2,6 +2,7 @@
2#define EMOTION_XINE_H 2#define EMOTION_XINE_H
3 3
4#include <xine.h> 4#include <xine.h>
5#include <xine/xine_plugin.h>
5#include <unistd.h> 6#include <unistd.h>
6#include <fcntl.h> 7#include <fcntl.h>
7#include <pthread.h> 8#include <pthread.h>
diff --git a/legacy/emotion/src/modules/xine/emotion_xine_vo_out.c b/legacy/emotion/src/modules/emotion_xine_vo_out.c
index 349b02fea5..13a400a6f1 100644
--- a/legacy/emotion/src/modules/xine/emotion_xine_vo_out.c
+++ b/legacy/emotion/src/modules/emotion_xine_vo_out.c
@@ -100,12 +100,12 @@ static void _emotion_yuy2_to_bgra32 (int width, int height, unsig
100static vo_info_t _emotion_info = 100static vo_info_t _emotion_info =
101{ 101{
102 1, /* priority */ 102 1, /* priority */
103 XINE_VISUAL_TYPE_NONE /* visual type */ 103 XINE_VISUAL_TYPE_NONE /* visual type */
104}; 104};
105 105
106plugin_info_t xine_plugin_info[] = 106plugin_info_t emotion_xine_plugin_info[] =
107{ 107{
108 { PLUGIN_VIDEO_OUT, 20, "emotion", XINE_VERSION_CODE, &_emotion_info, _emotion_class_init }, 108 { PLUGIN_VIDEO_OUT, 21, "emotion", XINE_VERSION_CODE, &_emotion_info, _emotion_class_init },
109 { PLUGIN_NONE, 0, "", 0, NULL, NULL } 109 { PLUGIN_NONE, 0, "", 0, NULL, NULL }
110}; 110};
111 111
@@ -185,6 +185,7 @@ _emotion_open(video_driver_class_t *driver_class, const void *visual)
185 dv->vo_driver.dispose = _emotion_dispose; 185 dv->vo_driver.dispose = _emotion_dispose;
186 dv->vo_driver.redraw_needed = _emotion_redraw; 186 dv->vo_driver.redraw_needed = _emotion_redraw;
187 dv->ev = (Emotion_Xine_Video *)visual; 187 dv->ev = (Emotion_Xine_Video *)visual;
188// printf("driver ret %p\n", &dv->vo_driver);
188 return &dv->vo_driver; 189 return &dv->vo_driver;
189} 190}
190 191
@@ -261,7 +262,7 @@ _emotion_property_set(vo_driver_t *vo_driver, int property, int value)
261 case VO_PROP_ASPECT_RATIO: 262 case VO_PROP_ASPECT_RATIO:
262 if (value >= XINE_VO_ASPECT_NUM_RATIOS) 263 if (value >= XINE_VO_ASPECT_NUM_RATIOS)
263 value = XINE_VO_ASPECT_AUTO; 264 value = XINE_VO_ASPECT_AUTO;
264 printf("DRIVER RATIO SET %i!\n", value); 265// printf("DRIVER RATIO SET %i!\n", value);
265 dv->ratio = value; 266 dv->ratio = value;
266 break; 267 break;
267 default: 268 default:
@@ -360,7 +361,7 @@ _emotion_frame_format_update(vo_driver_t *vo_driver, vo_frame_t *vo_frame, uint3
360 { 361 {
361 int y_size, uv_size; 362 int y_size, uv_size;
362 363
363 fr->frame.format = EMOTION_YV12; 364 fr->frame.format = EMOTION_YV12;
364 fr->vo_frame.pitches[0] = 8 * ((width + 7) / 8); 365 fr->vo_frame.pitches[0] = 8 * ((width + 7) / 8);
365 fr->vo_frame.pitches[1] = 8 * ((width + 15) / 16); 366 fr->vo_frame.pitches[1] = 8 * ((width + 15) / 16);
366 fr->vo_frame.pitches[2] = 8 * ((width + 15) / 16); 367 fr->vo_frame.pitches[2] = 8 * ((width + 15) / 16);
@@ -384,7 +385,7 @@ _emotion_frame_format_update(vo_driver_t *vo_driver, vo_frame_t *vo_frame, uint3
384 fr->frame.obj = dv->ev->obj; 385 fr->frame.obj = dv->ev->obj;
385 } 386 }
386 break; 387 break;
387 case XINE_IMGFMT_YUY2: 388 case XINE_IMGFMT_YUY2:
388 { 389 {
389 fr->frame.format = EMOTION_BGRA; 390 fr->frame.format = EMOTION_BGRA;
390 fr->vo_frame.pitches[0] = 8 * ((width + 3) / 4); 391 fr->vo_frame.pitches[0] = 8 * ((width + 3) / 4);
@@ -394,14 +395,14 @@ _emotion_frame_format_update(vo_driver_t *vo_driver, vo_frame_t *vo_frame, uint3
394 fr->vo_frame.base[0] = malloc(fr->vo_frame.pitches[0] * height); 395 fr->vo_frame.base[0] = malloc(fr->vo_frame.pitches[0] * height);
395 fr->vo_frame.base[1] = NULL; 396 fr->vo_frame.base[1] = NULL;
396 fr->vo_frame.base[2] = NULL; 397 fr->vo_frame.base[2] = NULL;
397 398
398 fr->frame.w = fr->width; 399 fr->frame.w = fr->width;
399 fr->frame.h = fr->height; 400 fr->frame.h = fr->height;
400 fr->frame.ratio = fr->vo_frame.ratio; 401 fr->frame.ratio = fr->vo_frame.ratio;
401 fr->frame.y = NULL; 402 fr->frame.y = NULL;
402 fr->frame.u = NULL; 403 fr->frame.u = NULL;
403 fr->frame.v = NULL; 404 fr->frame.v = NULL;
404 fr->frame.bgra_data = malloc(fr->width * fr->height * 4); 405 fr->frame.bgra_data = malloc(fr->width * fr->height * 4);
405 fr->frame.y_stride = 0; 406 fr->frame.y_stride = 0;
406 fr->frame.u_stride = 0; 407 fr->frame.u_stride = 0;
407 fr->frame.v_stride = 0; 408 fr->frame.v_stride = 0;
@@ -415,9 +416,9 @@ _emotion_frame_format_update(vo_driver_t *vo_driver, vo_frame_t *vo_frame, uint3
415 && ((fr->vo_frame.base[0] == NULL) 416 && ((fr->vo_frame.base[0] == NULL)
416 || (fr->vo_frame.base[1] == NULL) 417 || (fr->vo_frame.base[1] == NULL)
417 || (fr->vo_frame.base[2] == NULL))) 418 || (fr->vo_frame.base[2] == NULL)))
418 || ((format == XINE_IMGFMT_YUY2) 419 || ((format == XINE_IMGFMT_YUY2)
419 && ((fr->vo_frame.base[0] == NULL) 420 && ((fr->vo_frame.base[0] == NULL)
420 || (fr->frame.bgra_data == NULL)))) 421 || (fr->frame.bgra_data == NULL))))
421 { 422 {
422 _emotion_frame_data_free(fr); 423 _emotion_frame_data_free(fr);
423 } 424 }
@@ -439,11 +440,11 @@ _emotion_frame_display(vo_driver_t *vo_driver, vo_frame_t *vo_frame)
439 { 440 {
440 void *buf; 441 void *buf;
441 int ret; 442 int ret;
442 443
443 if (fr->format == XINE_IMGFMT_YUY2) 444 if (fr->format == XINE_IMGFMT_YUY2)
444 { 445 {
445 _emotion_yuy2_to_bgra32(fr->width, fr->height, fr->vo_frame.base[0], fr->frame.bgra_data); 446 _emotion_yuy2_to_bgra32(fr->width, fr->height, fr->vo_frame.base[0], fr->frame.bgra_data);
446 } 447 }
447 448
448 buf = &(fr->frame); 449 buf = &(fr->frame);
449 fr->frame.timestamp = (double)fr->vo_frame.vpts / 90000.0; 450 fr->frame.timestamp = (double)fr->vo_frame.vpts / 90000.0;
@@ -482,8 +483,8 @@ _emotion_frame_data_free(Emotion_Frame *fr)
482 } 483 }
483 if (fr->frame.bgra_data) 484 if (fr->frame.bgra_data)
484 { 485 {
485 free(fr->frame.bgra_data); 486 free(fr->frame.bgra_data);
486 fr->frame.bgra_data = NULL; 487 fr->frame.bgra_data = NULL;
487 } 488 }
488} 489}
489 490
@@ -538,10 +539,11 @@ _emotion_overlay_blend(vo_driver_t *vo_driver, vo_frame_t *vo_frame, vo_overlay_
538static void _emotion_overlay_mem_blend_8(uint8_t *mem, uint8_t val, uint8_t o, size_t sz) 539static void _emotion_overlay_mem_blend_8(uint8_t *mem, uint8_t val, uint8_t o, size_t sz)
539{ 540{
540 uint8_t *limit = mem + sz; 541 uint8_t *limit = mem + sz;
541 while (mem < limit) { 542 while (mem < limit)
542 *mem = BLEND_BYTE(*mem, val, o); 543 {
543 mem++; 544 *mem = BLEND_BYTE(*mem, val, o);
544 } 545 mem++;
546 }
545} 547}
546 548
547static void _emotion_overlay_blend_yuv(uint8_t *dst_base[3], vo_overlay_t * img_overl, int dst_width, int dst_height, int dst_pitches[3]) 549static void _emotion_overlay_blend_yuv(uint8_t *dst_base[3], vo_overlay_t * img_overl, int dst_width, int dst_height, int dst_pitches[3])
@@ -588,77 +590,110 @@ static void _emotion_overlay_blend_yuv(uint8_t *dst_base[3], vo_overlay_t * img_
588 src_height = dst_height - 1 - y_off; 590 src_height = dst_height - 1 - y_off;
589 591
590 rlelen=rle_remainder=0; 592 rlelen=rle_remainder=0;
591 for (y = 0; y < src_height; y++) { 593 for (y = 0; y < src_height; y++)
592 ymask = ((img_overl->hili_top > y) || (img_overl->hili_bottom < y)); 594 {
593 xmask = 0; 595 ymask = ((img_overl->hili_top > y) || (img_overl->hili_bottom < y));
594 596 xmask = 0;
595 for (x = 0; x < src_width;) { 597
596 uint16_t o; 598 for (x = 0; x < src_width;)
597 599 {
598 if (rlelen == 0) { 600 uint16_t o;
599 rle_remainder = rlelen = rle->len; 601
600 clr = rle->color; 602 if (rlelen == 0)
601 rle++; 603 {
602 } 604 rle_remainder = rlelen = rle->len;
603 if (rle_remainder == 0) { 605 clr = rle->color;
604 rle_remainder = rlelen; 606 rle++;
605 }
606 if ((rle_remainder + x) > src_width) {
607 /* Do something for long rlelengths */
608 rle_remainder = src_width - x;
609 }
610
611 if (ymask == 0) {
612 if (x <= img_overl->hili_left) {
613 /* Starts outside clip area */
614 if ((x + rle_remainder - 1) > img_overl->hili_left ) {
615 /* Cutting needed, starts outside, ends inside */
616 rle_this_bite = (img_overl->hili_left - x + 1);
617 rle_remainder -= rle_this_bite;
618 rlelen -= rle_this_bite;
619 my_clut = (Emotion_Lut *) img_overl->color;
620 my_trans = img_overl->trans;
621 xmask = 0;
622 } else {
623 /* no cutting needed, starts outside, ends outside */
624 rle_this_bite = rle_remainder;
625 rle_remainder = 0;
626 rlelen -= rle_this_bite;
627 my_clut = (Emotion_Lut *) img_overl->color;
628 my_trans = img_overl->trans;
629 xmask = 0;
630 } 607 }
631 } else if (x < hili_right) { 608 if (rle_remainder == 0)
632 /* Starts inside clip area */ 609 {
633 if ((x + rle_remainder) > hili_right ) { 610 rle_remainder = rlelen;
634 /* Cutting needed, starts inside, ends outside */
635 rle_this_bite = (hili_right - x);
636 rle_remainder -= rle_this_bite;
637 rlelen -= rle_this_bite;
638 my_clut = (Emotion_Lut *) img_overl->hili_color;
639 my_trans = img_overl->hili_trans;
640 xmask++;
641 } else {
642 /* no cutting needed, starts inside, ends inside */
643 rle_this_bite = rle_remainder;
644 rle_remainder = 0;
645 rlelen -= rle_this_bite;
646 my_clut = (Emotion_Lut *) img_overl->hili_color;
647 my_trans = img_overl->hili_trans;
648 xmask++;
649 } 611 }
650 } else if (x >= hili_right) { 612 if ((rle_remainder + x) > src_width)
651 /* Starts outside clip area, ends outsite clip area */ 613 {
652 if ((x + rle_remainder ) > src_width ) { 614 /* Do something for long rlelengths */
653 /* Cutting needed, starts outside, ends at right edge */ 615 rle_remainder = src_width - x;
654 /* It should never reach here due to the earlier test of src_width */ 616 }
655 rle_this_bite = (src_width - x ); 617
656 rle_remainder -= rle_this_bite; 618 if (ymask == 0)
657 rlelen -= rle_this_bite; 619 {
658 my_clut = (Emotion_Lut *) img_overl->color; 620 if (x <= img_overl->hili_left)
659 my_trans = img_overl->trans; 621 {
660 xmask = 0; 622 /* Starts outside clip area */
661 } else { 623 if ((x + rle_remainder - 1) > img_overl->hili_left )
624 {
625 /* Cutting needed, starts outside, ends inside */
626 rle_this_bite = (img_overl->hili_left - x + 1);
627 rle_remainder -= rle_this_bite;
628 rlelen -= rle_this_bite;
629 my_clut = (Emotion_Lut *) img_overl->color;
630 my_trans = img_overl->trans;
631 xmask = 0;
632 }
633 else
634 {
635 /* no cutting needed, starts outside, ends outside */
636 rle_this_bite = rle_remainder;
637 rle_remainder = 0;
638 rlelen -= rle_this_bite;
639 my_clut = (Emotion_Lut *) img_overl->color;
640 my_trans = img_overl->trans;
641 xmask = 0;
642 }
643 }
644 else if (x < hili_right)
645 {
646 /* Starts inside clip area */
647 if ((x + rle_remainder) > hili_right )
648 {
649 /* Cutting needed, starts inside, ends outside */
650 rle_this_bite = (hili_right - x);
651 rle_remainder -= rle_this_bite;
652 rlelen -= rle_this_bite;
653 my_clut = (Emotion_Lut *) img_overl->hili_color;
654 my_trans = img_overl->hili_trans;
655 xmask++;
656 }
657 else
658 {
659 /* no cutting needed, starts inside, ends inside */
660 rle_this_bite = rle_remainder;
661 rle_remainder = 0;
662 rlelen -= rle_this_bite;
663 my_clut = (Emotion_Lut *) img_overl->hili_color;
664 my_trans = img_overl->hili_trans;
665 xmask++;
666 }
667 }
668 else if (x >= hili_right)
669 {
670 /* Starts outside clip area, ends outsite clip area */
671 if ((x + rle_remainder ) > src_width )
672 {
673 /* Cutting needed, starts outside, ends at right edge */
674 /* It should never reach here due to the earlier test of src_width */
675 rle_this_bite = (src_width - x );
676 rle_remainder -= rle_this_bite;
677 rlelen -= rle_this_bite;
678 my_clut = (Emotion_Lut *) img_overl->color;
679 my_trans = img_overl->trans;
680 xmask = 0;
681 }
682 else
683 {
684 /* no cutting needed, starts outside, ends outside */
685 rle_this_bite = rle_remainder;
686 rle_remainder = 0;
687 rlelen -= rle_this_bite;
688 my_clut = (Emotion_Lut *) img_overl->color;
689 my_trans = img_overl->trans;
690 xmask = 0;
691 }
692 }
693 }
694 else
695 {
696 /* Outside clip are due to y */
662 /* no cutting needed, starts outside, ends outside */ 697 /* no cutting needed, starts outside, ends outside */
663 rle_this_bite = rle_remainder; 698 rle_this_bite = rle_remainder;
664 rle_remainder = 0; 699 rle_remainder = 0;
@@ -667,51 +702,48 @@ static void _emotion_overlay_blend_yuv(uint8_t *dst_base[3], vo_overlay_t * img_
667 my_trans = img_overl->trans; 702 my_trans = img_overl->trans;
668 xmask = 0; 703 xmask = 0;
669 } 704 }
670 } 705 o = my_trans[clr];
671 } else { 706 if (o)
672 /* Outside clip are due to y */ 707 {
673 /* no cutting needed, starts outside, ends outside */ 708 if (o >= 15)
674 rle_this_bite = rle_remainder; 709 {
675 rle_remainder = 0; 710 memset(dst_y + x, my_clut[clr].y, rle_this_bite);
676 rlelen -= rle_this_bite; 711 if (y & 1)
677 my_clut = (Emotion_Lut *) img_overl->color; 712 {
678 my_trans = img_overl->trans; 713 memset(dst_cr + (x >> 1), my_clut[clr].cr, (rle_this_bite+1) >> 1);
679 xmask = 0; 714 memset(dst_cb + (x >> 1), my_clut[clr].cb, (rle_this_bite+1) >> 1);
680 } 715 }
681 o = my_trans[clr]; 716 }
682 if (o) { 717 else
683 if(o >= 15) { 718 {
684 memset(dst_y + x, my_clut[clr].y, rle_this_bite); 719 _emotion_overlay_mem_blend_8(dst_y + x, my_clut[clr].y, o, rle_this_bite);
685 if (y & 1) { 720 if (y & 1)
686 memset(dst_cr + (x >> 1), my_clut[clr].cr, (rle_this_bite+1) >> 1); 721 {
687 memset(dst_cb + (x >> 1), my_clut[clr].cb, (rle_this_bite+1) >> 1); 722 /* Blending cr and cb should use a different function, with pre -128 to each sample */
723 _emotion_overlay_mem_blend_8(dst_cr + (x >> 1), my_clut[clr].cr, o, (rle_this_bite+1) >> 1);
724 _emotion_overlay_mem_blend_8(dst_cb + (x >> 1), my_clut[clr].cb, o, (rle_this_bite+1) >> 1);
725 }
726 }
688 } 727 }
689 } else { 728 x += rle_this_bite;
690 _emotion_overlay_mem_blend_8(dst_y + x, my_clut[clr].y, o, rle_this_bite); 729 if (rle >= rle_limit)
691 if (y & 1) { 730 {
692 /* Blending cr and cb should use a different function, with pre -128 to each sample */ 731 break;
693 _emotion_overlay_mem_blend_8(dst_cr + (x >> 1), my_clut[clr].cr, o, (rle_this_bite+1) >> 1);
694 _emotion_overlay_mem_blend_8(dst_cb + (x >> 1), my_clut[clr].cb, o, (rle_this_bite+1) >> 1);
695 } 732 }
696 } 733 }
697 734 if (rle >= rle_limit)
698 } 735 {
699 x += rle_this_bite; 736 break;
700 if (rle >= rle_limit) { 737 }
701 break; 738
702 } 739 dst_y += dst_pitches[0];
703 } 740
704 if (rle >= rle_limit) { 741 if (y & 1)
705 break; 742 {
706 } 743 dst_cr += dst_pitches[2];
707 744 dst_cb += dst_pitches[1];
708 dst_y += dst_pitches[0]; 745 }
709 746 }
710 if (y & 1) {
711 dst_cr += dst_pitches[2];
712 dst_cb += dst_pitches[1];
713 }
714 }
715} 747}
716 748
717//TODO: Really need to improve this converter! 749//TODO: Really need to improve this converter!
@@ -727,20 +759,20 @@ _emotion_yuy2_to_bgra32(int width, int height, unsigned char *src, unsigned char
727 u = src + 1; 759 u = src + 1;
728 v = src + 3; 760 v = src + 3;
729 for (i = 0; i < width; i++) 761 for (i = 0; i < width; i++)
730 { 762 {
731 for (j = 0; j < height; j++) 763 for (j = 0; j < height; j++)
732 { 764 {
733 *dst++ = LIMIT(1.164 * (*y - 16) + 2.018 * (*u - 128)); 765 *dst++ = LIMIT(1.164 * (*y - 16) + 2.018 * (*u - 128));
734 *dst++ = LIMIT(1.164 * (*y - 16) - 0.813 * (*v - 128) - 0.391 * (*u - 128)); 766 *dst++ = LIMIT(1.164 * (*y - 16) - 0.813 * (*v - 128) - 0.391 * (*u - 128));
735 *dst++ = LIMIT(1.164 * (*y - 16) + 1.596 * (*v - 128)); 767 *dst++ = LIMIT(1.164 * (*y - 16) + 1.596 * (*v - 128));
736 *dst++ = 0; 768 *dst++ = 0;
737 769
738 y += 2; 770 y += 2;
739 if (j % 2 == 1) 771 if (j % 2 == 1)
740 { 772 {
741 u += 4; 773 u += 4;
742 v += 4; 774 v += 4;
743 } 775 }
744 } 776 }
745 } 777 }
746} 778}
diff --git a/legacy/emotion/src/modules/xine/.cvsignore b/legacy/emotion/src/modules/xine/.cvsignore
deleted file mode 100644
index 09980ae6ba..0000000000
--- a/legacy/emotion/src/modules/xine/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
1.deps
2.libs
3Makefile
4Makefile.in
5*.lo
6*.la
diff --git a/legacy/emotion/src/modules/xine/Makefile.am b/legacy/emotion/src/modules/xine/Makefile.am
deleted file mode 100644
index 064d817ca2..0000000000
--- a/legacy/emotion/src/modules/xine/Makefile.am
+++ /dev/null
@@ -1,21 +0,0 @@
1## Process this file with automake to produce Makefile.in
2
3#AUTOMAKE_OPTIONS = 1.4 foreign
4
5MAINTAINERCLEANFILES = Makefile.in
6
7INCLUDES = -I$(top_srcdir) \
8 -I$(top_srcdir)/src/lib \
9 -I$(top_srcdir)/src/modules \
10 -I$(top_srcdir)/src/modules/xine \
11 @EVAS_CFLAGS@ @ECORE_CFLAGS@ @XINE_CFLAGS@
12
13pkgdir = @xine_plugins@
14
15pkg_LTLIBRARIES = xineplug_vo_out_emotion.la
16
17xineplug_vo_out_emotion_la_SOURCES = emotion_xine_vo_out.c
18xineplug_vo_out_emotion_la_LIBADD = @XINE_LIBS@
19xineplug_vo_out_emotion_la_LDFLAGS = -module -avoid-version \
20 -L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs
21xineplug_vo_out_emotion_la_DEPENDENCIES = $(top_builddir)/config.h