summaryrefslogtreecommitdiffstats
path: root/dec_video.c
diff options
context:
space:
mode:
Diffstat (limited to 'dec_video.c')
-rw-r--r--dec_video.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/dec_video.c b/dec_video.c
index 13a3ad221b..333602e3ac 100644
--- a/dec_video.c
+++ b/dec_video.c
@@ -62,6 +62,9 @@ extern int init_video_codec(sh_video_t *sh_video,int ex);
#include <decore.h>
#endif
+void AVI_Decode_RLE8(char *image,char *delta,int tdsize,
+ unsigned int *map,int imagex,int imagey,unsigned char x11_bytes_pixel);
+
//**************************************************************************//
// The OpenDivX stuff:
//**************************************************************************//
@@ -351,6 +354,11 @@ switch(sh_video->codec->driver){
case VFM_RAW: {
break;
}
+ case VFM_RLE: {
+ int bpp=((out_fmt&255)+7)/8; // RGB only
+ sh_video->our_out_buffer = memalign(64,sh_video->disp_w*sh_video->disp_h*bpp); // FIXME!!!
+ break;
+ }
}
sh_video->inited=1;
return 1;
@@ -552,6 +560,14 @@ else
planes[0]=start;
blit_frame=2;
break;
+ case VFM_RLE:
+//void AVI_Decode_RLE8(char *image,char *delta,int tdsize,
+// unsigned int *map,int imagex,int imagey,unsigned char x11_bytes_pixel);
+ AVI_Decode_RLE8(sh_video->our_out_buffer,start,in_size,
+ (int*)(((char*)sh_video->bih)+40),
+ sh_video->disp_w,sh_video->disp_h,((out_fmt&255)+7)/8);
+ blit_frame=3;
+ break;
} // switch
//------------------------ frame decoded. --------------------