diff spudec.c @ 6938:d796833e77af

Put all spudec_new stuff in a single function, spudec_new_scaled_vobsub. Original frame width is always either 720x576 or 720x480. See dvd-subtitle-problem.txt and dvd-subtitle-problem.txt.vob.
author kmkaplan
date Tue, 06 Aug 2002 13:32:55 +0000
parents f33d4ab7a6b2
children a280cc3087ea
line wrap: on
line diff
--- a/spudec.c	Tue Aug 06 10:22:50 2002 +0000
+++ b/spudec.c	Tue Aug 06 13:32:55 2002 +0000
@@ -927,25 +927,7 @@
 
 void *spudec_new_scaled(unsigned int *palette, unsigned int frame_width, unsigned int frame_height)
 {
-  spudec_handle_t *this = calloc(1, sizeof(spudec_handle_t));
-  if (this) {
-    if (palette) {
-      memcpy(this->global_palette, palette, sizeof(this->global_palette));
-      this->auto_palette = 0;
-    }
-    else {
-      /* No palette, compute one */
-      this->auto_palette = 1;
-    }
-    this->packet = NULL;
-    this->image = NULL;
-    this->scaled_image = NULL;
-    this->orig_frame_width = frame_width;
-    this->orig_frame_height = frame_height;
-  }
-  else
-    mp_msg(MSGT_SPUDEC,MSGL_FATAL, "FATAL: spudec_init: calloc");
-  return this;
+  return spudec_new_scaled_vobsub(palette, NULL, 0, frame_width, frame_height);
 }
 
 /* get palette custom color, width, height from .idx file */
@@ -957,8 +939,10 @@
     this->packet = NULL;
     this->image = NULL;
     this->scaled_image = NULL;
-    this->orig_frame_width = frame_width;
-    this->orig_frame_height = frame_height;
+    /* XXX Although the video frame is some size, the SPU frame is
+       always maximum size i.e. 720 wide and 576 or 480 high */
+    this->orig_frame_width = 720;
+    this->orig_frame_height = (frame_height == 480 || frame_height == 240) ? 480 : 576;
     this->custom = custom;
     // set up palette:
     this->auto_palette = 1;