# HG changeset patch # User atmos4 # Date 1017197935 0 # Node ID b87743434e1fedfabaa7847c92662f9de6278564 # Parent 4a743a02eb57e930803586515771513770536df4 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. diff -r 4a743a02eb57 -r b87743434e1f libmpcodecs/vd.c --- 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)); diff -r 4a743a02eb57 -r b87743434e1f libmpcodecs/vd_ijpg.c --- 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;