changeset 5365:b87743434e1f

Issue a warning in VDec if disp_w and disp_h weren't set by codec and try workaround. Fix ijpg codec to set sh->disp_w and sh->disp_h.
author atmos4
date Wed, 27 Mar 2002 02:58:55 +0000
parents 4a743a02eb57
children f46873b05f82
files libmpcodecs/vd.c libmpcodecs/vd_ijpg.c
diffstat 2 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/vd.c	Wed Mar 27 02:08:14 2002 +0000
+++ b/libmpcodecs/vd.c	Wed Mar 27 02:58:55 2002 +0000
@@ -123,6 +123,18 @@
     int screen_size_y=0;//SCREEN_SIZE_Y;
     vo_functions_t* video_out=sh->video_out;
 
+#if 1
+    if(!(sh->disp_w && sh->disp_h))
+        mp_msg(MSGT_DECVIDEO,MSGL_WARN,
+            "VDec: codec didn't set sh->disp_w and sh->disp_h, trying to workaround!\n");
+    /* XXX: HACK, if sh->disp_* aren't set,
+     * but we have w and h, set them :: atmos */
+    if(!sh->disp_w && w)
+        sh->disp_w=w;
+    if(!sh->disp_h && h)
+        sh->disp_h=h;
+#endif
+
     mp_msg(MSGT_DECVIDEO,MSGL_INFO,"VDec: vo config request - %d x %d, %s  \n",
 	w,h,vo_format_name(preferred_outfmt));
 
--- a/libmpcodecs/vd_ijpg.c	Wed Mar 27 02:08:14 2002 +0000
+++ b/libmpcodecs/vd_ijpg.c	Wed Mar 27 02:58:55 2002 +0000
@@ -133,8 +133,6 @@
 
  if ( len <= 0 ) return NULL; // skipped frame
 
- cinfo.err=jpeg_std_error( &jerr.pub );
- jerr.pub.error_exit=my_error_exit;
  if( setjmp( jerr.setjmp_buffer ) )
   {
    mp_msg( MSGT_DECVIDEO,MSGL_ERR,"[ijpg] setjmp error ...\n" );
@@ -144,8 +142,8 @@
  jpeg_create_decompress( &cinfo );
  jpeg_buf_src( &cinfo,data,len );
  jpeg_read_header( &cinfo,TRUE );
- width=cinfo.image_width;
- height=cinfo.image_height;
+ sh->disp_w=width=cinfo.image_width;
+ sh->disp_h=height=cinfo.image_height;
  jpeg_start_decompress( &cinfo );
  depth=cinfo.output_components * 8;