changeset 4881:f5f854541977

stride!=width*bpp support to cinepak decoder
author arpi
date Thu, 28 Feb 2002 01:12:24 +0000
parents e6cd9c81db9d
children 2ebd5bed2ce4
files cinepak.c dec_video.c
diffstat 2 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/cinepak.c	Thu Feb 28 01:01:50 2002 +0000
+++ b/cinepak.c	Thu Feb 28 01:12:24 2002 +0000
@@ -383,7 +383,7 @@
  * bit_per_pixel - the number of bits per pixel allocated to the output
  *   frame (only 24 or 32 bpp are supported)
  */
-void decode_cinepak(void *context, unsigned char *buf, int size, unsigned char *frame, int width, int height, int bit_per_pixel)
+void decode_cinepak(void *context, unsigned char *buf, int size, unsigned char *frame, int width, int height, int bit_per_pixel, int stride_)
 {
 cinepak_info *cvinfo = (cinepak_info *)context;
 cvid_codebook *v4_codebook, *v1_codebook, *codebook = NULL;
@@ -429,7 +429,7 @@
 			break;
 		}
 
-	frm_stride = width * bpp;
+	frm_stride = stride_ ? stride_ : width * bpp;
 	frm_ptr = frame;
 	frm_end = frm_ptr + width * height * bpp;
 
--- a/dec_video.c	Thu Feb 28 01:01:50 2002 +0000
+++ b/dec_video.c	Thu Feb 28 01:12:24 2002 +0000
@@ -159,7 +159,8 @@
   unsigned char *frame,
   int width,
   int height,
-  int bit_per_pixel);
+  int bit_per_pixel,
+  int stride);
 
 void decode_cyuv(
   unsigned char *buf,
@@ -865,7 +866,7 @@
    else
    {
      decode_cinepak(sh_video->context, start, in_size, sh_video->our_out_buffer,
-       sh_video->disp_w, sh_video->disp_h, (out_fmt==IMGFMT_YUY2)?16:(out_fmt&255));
+       sh_video->disp_w, sh_video->disp_h, (out_fmt==IMGFMT_YUY2)?16:(out_fmt&255), 0);
      blit_frame = 3;
    }
    break;