changeset 2787:8dfe10c9f15d

fixes for vivo
author alex
date Fri, 09 Nov 2001 22:04:09 +0000
parents 1907e5771e81
children 4a909be26ea1
files mp_msg.h xacodec.c
diffstat 2 files changed, 17 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mp_msg.h	Fri Nov 09 17:00:12 2001 +0000
+++ b/mp_msg.h	Fri Nov 09 22:04:09 2001 +0000
@@ -47,10 +47,14 @@
 #define MSGT_LIRC 19	// lirc_mp.c
 
 #define MSGT_STREAM 20  // stream.c
-#define MSGT_CACHE 21  // cache2.c
+#define MSGT_CACHE 21 	// cache2.c
 
 #define MSGT_MENCODER 22
 
+#define MSGT_XACODEC 23	// XAnim codecs
+
+#define MSGT_TV 24	// TV input subsystem
+
 #define MSGT_MAX 64
 
 void mp_msg_init(int verbose);
--- a/xacodec.c	Fri Nov 09 17:00:12 2001 +0000
+++ b/xacodec.c	Fri Nov 09 22:04:09 2001 +0000
@@ -80,7 +80,7 @@
 
     va_start(vallist, fmt);
     vsnprintf(buf, 1024, fmt, vallist);
-    mp_msg(MSGT_DECVIDEO, MSGL_DBG2, "[xacodec] %s\n", buf);
+    mp_msg(MSGT_XACODEC, MSGL_DBG2, "[xacodec] %s\n", buf);
     va_end(vallist);
 
     return;
@@ -258,16 +258,17 @@
     if (xacodec_init(dll, xacodec_driver) == 0)
 	return(0);
 
+    codec_hdr.xapi_rev = XAVID_API_REV;
     codec_hdr.anim_hdr = malloc(4096);
     codec_hdr.description = vidinfo->codec->info;
     codec_hdr.compression = bswap_32(vidinfo->bih->biCompression);
     codec_hdr.decoder = NULL;
+    codec_hdr.x = vidinfo->bih->biWidth; /* ->disp_w */
+    codec_hdr.y = vidinfo->bih->biHeight; /* ->disp_h */
+    /* extra fields to store palette */
     codec_hdr.avi_ctab_flag = 0;
     codec_hdr.avi_read_ext = NULL;
-    codec_hdr.xapi_rev = XAVID_API_REV;
     codec_hdr.extra = NULL;
-    codec_hdr.x = vidinfo->disp_w;
-    codec_hdr.y = vidinfo->disp_h;
 
     switch(out_format)
     {
@@ -723,15 +724,20 @@
     xacodec_image_t *image=(xacodec_image_t*)image_p;
 
 #if 0
-    printf("XA_YUV221111_Convert(%p  %dx%d %d;%d [%dx%d]  %p %p %d %p %p)\n",
+    XA_Print("XA_YUV221111_Convert(%p  %dx%d %d;%d [%dx%d]  %p %p %d %p %p)\n",
 	image,imagex,imagey,i_x,i_y, image->width,image->height,
 	yuv,yuv_tabs,map_flag,map,chdr);
 
-    printf("YUV: %p %p %p %X (%X) %Xx%X %Xx%X\n",
+    XA_Print("YUV: %p %p %p %X (%X) %Xx%X %Xx%X\n",
 	yuv->Ybuf,yuv->Ubuf,yuv->Vbuf,yuv->the_buf,yuv->the_buf_size,
 	yuv->y_w,yuv->y_h,yuv->uv_w,yuv->uv_h);
 #endif
 
+    /* hotfix for Vivo/2.00 - do not fault - but no decode ;( */
+#warning "FIXME! Decoder doesn't supports Vivo/2.00 :("
+    if (!yuv->the_buf_size)
+	return;
+
 if(i_x==image->width && i_y==image->height){
 //    printf("Direct render!!!\n");
     image->planes[0]=yuv->Ybuf;