patch-libmpcodecs_vd_mpng_c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. --- MPlayer-1.0rc4.orig/libmpcodecs/vd_mpng.c 2010-02-26 16:01:37.000000000 +0100
  2. +++ MPlayer-1.0rc4/libmpcodecs/vd_mpng.c 2011-04-01 16:23:04.381818599 +0200
  3. @@ -74,7 +74,7 @@ static int pngLength;
  4. static void pngReadFN( png_structp pngstr,png_bytep buffer,png_size_t size )
  5. {
  6. - char * p = pngstr->io_ptr;
  7. + char * p = png_get_io_ptr(pngstr);
  8. if(size>pngLength-pngPointer && pngLength>=pngPointer) size=pngLength-pngPointer;
  9. fast_memcpy( buffer,(char *)&p[pngPointer],size );
  10. pngPointer+=size;
  11. @@ -90,6 +90,7 @@ static mp_image_t* decode(sh_video_t *sh
  12. png_uint_32 png_width=0,png_height=0;
  13. int depth,color;
  14. png_uint_32 i;
  15. + png_byte color_type;
  16. mp_image_t* mpi;
  17. int cols;
  18. @@ -111,7 +112,9 @@ static mp_image_t* decode(sh_video_t *sh
  19. png_get_IHDR( png,info,&png_width,&png_height,&depth,&color,NULL,NULL,NULL );
  20. png_set_bgr( png );
  21. - switch( info->color_type ) {
  22. + color_type=png_get_color_type(png, info);
  23. +
  24. + switch( color_type ) {
  25. case PNG_COLOR_TYPE_GRAY_ALPHA:
  26. mp_msg( MSGT_DECVIDEO,MSGL_INFO,"Sorry gray scaled png with alpha channel not supported at moment.\n" );
  27. break;
  28. @@ -128,7 +131,7 @@ static mp_image_t* decode(sh_video_t *sh
  29. out_fmt=IMGFMT_BGR24;
  30. break;
  31. default:
  32. - mp_msg( MSGT_DECVIDEO,MSGL_INFO,"Sorry, unsupported PNG colorspace: %d.\n" ,info->color_type);
  33. + mp_msg( MSGT_DECVIDEO,MSGL_INFO,"Sorry, unsupported PNG colorspace: %d.\n" ,color_type);
  34. }
  35. // (re)init libvo if image parameters changed (width/height/colorspace)