changeset 28874:3420ff87048e

nuv encoder 64 bit fix: avoid using long/sizeof(long)
author reimar
date Mon, 09 Mar 2009 13:37:55 +0000
parents 4edc04d82a47
children 8cfb1d6272fe
files libmpcodecs/ve_nuv.c
diffstat 1 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/ve_nuv.c	Mon Mar 09 13:23:27 2009 +0000
+++ b/libmpcodecs/ve_nuv.c	Mon Mar 09 13:37:55 2009 +0000
@@ -68,6 +68,8 @@
 //===========================================================================//
 
 
+#define COMPDATASIZE (128*4)
+
 static int config(struct vf_instance_s* vf,
         int width, int height, int d_width, int d_height,
 	unsigned int flags, unsigned int outfmt){
@@ -75,8 +77,8 @@
   // We need a buffer wich can holda header and a whole YV12 picture
   // or a RTJpeg table
   vf->priv->buf_size = width*height*3/2+FRAMEHEADERSIZE;
-  if(vf->priv->buf_size < (int)(128*sizeof(long int) + FRAMEHEADERSIZE))
-    vf->priv->buf_size = 128*sizeof(long int) + FRAMEHEADERSIZE;
+  if(vf->priv->buf_size < COMPDATASIZE + FRAMEHEADERSIZE)
+    vf->priv->buf_size = COMPDATASIZE + FRAMEHEADERSIZE;
 
   mux_v->bih->biWidth=width;
   mux_v->bih->biHeight=height;
@@ -110,16 +112,16 @@
     
   // This has to be don here otherwise tv with sound doesn't work
   if(!vf->priv->tbl_wrote) {    
-    RTjpeg_init_compress((long int*)data,mpi->width,mpi->height,vf->priv->q);
+    RTjpeg_init_compress((uint32_t *)data,mpi->width,mpi->height,vf->priv->q);
     RTjpeg_init_mcompress();
 
     ench->frametype = 'D'; // compressor data
     ench->comptype  = 'R'; // compressor data for RTjpeg
-    ench->packetlength = 128*sizeof(long int);
+    ench->packetlength = COMPDATASIZE;
   
     le2me_rtframeheader(ench);
     mux_v->buffer=vf->priv->buffer;
-    muxer_write_chunk(mux_v,FRAMEHEADERSIZE + 128*sizeof(long int), 0x10, MP_NOPTS_VALUE, MP_NOPTS_VALUE);
+    muxer_write_chunk(mux_v,FRAMEHEADERSIZE + COMPDATASIZE, 0x10, MP_NOPTS_VALUE, MP_NOPTS_VALUE);
     vf->priv->tbl_wrote = 1;
     memset(ench,0,FRAMEHEADERSIZE); // Reset the header
   }