pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/multimedia/mjpegtools Fix build with png-1.5.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/d666b3d61abd
branches:  trunk
changeset: 584604:d666b3d61abd
user:      wiz <wiz%pkgsrc.org@localhost>
date:      Mon Jan 24 10:04:21 2011 +0000

description:
Fix build with png-1.5.

diffstat:

 multimedia/mjpegtools/distinfo         |   3 +-
 multimedia/mjpegtools/patches/patch-ac |  89 ++++++++++++++++++++++++++++++++++
 2 files changed, 91 insertions(+), 1 deletions(-)

diffs (108 lines):

diff -r ca581fa510e1 -r d666b3d61abd multimedia/mjpegtools/distinfo
--- a/multimedia/mjpegtools/distinfo    Mon Jan 24 09:54:35 2011 +0000
+++ b/multimedia/mjpegtools/distinfo    Mon Jan 24 10:04:21 2011 +0000
@@ -1,9 +1,10 @@
-$NetBSD: distinfo,v 1.17 2009/01/08 17:25:31 wiz Exp $
+$NetBSD: distinfo,v 1.18 2011/01/24 10:04:21 wiz Exp $
 
 SHA1 (mjpegtools-1.9.0.tar.gz) = 1701233354c7ea86b5b7808c4dd5d03a71118e48
 RMD160 (mjpegtools-1.9.0.tar.gz) = 79e0eb4bce468bb8f12da336e29abe8fab390a5f
 Size (mjpegtools-1.9.0.tar.gz) = 1718063 bytes
 SHA1 (patch-aa) = 64c2bd92b206060fbaa95a932f0ea18aec17b127
 SHA1 (patch-ab) = 5fc460db1593afb1f99422003db86e6b7cfc8eb9
+SHA1 (patch-ac) = b442af0698255b6eede9ac47b178b279a2f7c56d
 SHA1 (patch-ad) = 2a6f33fdc9c240d1c5c1172710db7ed95b1fc5a8
 SHA1 (patch-ae) = 98bfbaccd8dc79582a32ffbc8dba7b6c039c0373
diff -r ca581fa510e1 -r d666b3d61abd multimedia/mjpegtools/patches/patch-ac
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/multimedia/mjpegtools/patches/patch-ac    Mon Jan 24 10:04:21 2011 +0000
@@ -0,0 +1,89 @@
+$NetBSD: patch-ac,v 1.7 2011/01/24 10:04:21 wiz Exp $
+
+Fix build with png-1.5.
+
+--- lavtools/png2yuv.c.orig    2007-11-08 17:31:50.000000000 +0000
++++ lavtools/png2yuv.c
+@@ -78,6 +78,8 @@ png_structp png_ptr;
+ png_infop info_ptr, end_info;
+ uint8_t *raw0, *raw1, *raw2;  /* buffer for RGB first, and then Y/Cb/Cr planes of decoded PNG */
+ 
++static int png_row_number = 0;
++
+ /*
+  * The User Interface parts 
+  */
+@@ -240,9 +242,13 @@ static void parse_commandline(int argc, 
+     }
+ }
+ 
++void read_row_callback(png_structp ptr, png_uint_32 row, int pass)
++{
++  png_row_number++;
++}
++
+ void png_separation(png_structp png_ptr, png_row_infop row_info, png_bytep data)
+ {
+-  int row_nr = png_ptr->row_number; // internal variable ? 
+   int i, width = row_info->width; 
+   int new_width = sh_param->new_width;
+ 
+@@ -256,28 +262,28 @@ void png_separation(png_structp png_ptr,
+    */
+ 
+   //mjpeg_debug("PNG YUV transformation callback; color_type is %d row_number %d\n", 
+-  //   row_info->color_type, row_nr);
++  //   row_info->color_type, png_row_number);
+ 
+   if(row_info->color_type == PNG_COLOR_TYPE_GRAY) // only Z available
+     {
+-      //mjpeg_debug("Grayscale to YUV, row %d", row_nr);
++      //mjpeg_debug("Grayscale to YUV, row %d", png_row_number);
+       for (i = 0; i < width; i++)
+       {
+-        raw0[i + row_nr * new_width] = data[i];
+-        raw1[i + row_nr * new_width] = data[i];
+-        raw2[i + row_nr * new_width] = data[i];
++        raw0[i + png_row_number * new_width] = data[i];
++        raw1[i + png_row_number * new_width] = data[i];
++        raw2[i + png_row_number * new_width] = data[i];
+       }
+       return;
+     }
+ 
+   if(row_info->color_type == PNG_COLOR_TYPE_RGB) // Z and Alpha available
+     {
+-      //mjpeg_info("RGB to YUV, row %d", row_nr);
++      //mjpeg_info("RGB to YUV, row %d", png_row_number);
+       for (i = 0; i < width; i++)
+       {
+-        raw0[i + row_nr * new_width] = data[i*3];
+-        raw1[i + row_nr * new_width] = data[i*3 + 1];
+-        raw2[i + row_nr * new_width] = data[i*3 + 2];
++        raw0[i + png_row_number * new_width] = data[i*3];
++        raw1[i + png_row_number * new_width] = data[i*3 + 1];
++        raw2[i + png_row_number * new_width] = data[i*3 + 2];
+       }
+       return;
+     }
+@@ -352,8 +358,10 @@ int decode_png(const char *pngname, int 
+       return -1;
+     }
+   
+-  if (process)
++  if (process) {
++    png_set_read_status_fn(png_ptr, read_row_callback);
+     png_set_read_user_transform_fn(png_ptr, png_separation);
++  }
+   png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_STRIP_16 | PNG_TRANSFORM_STRIP_ALPHA, NULL);
+   
+   if (png_get_IHDR(png_ptr, info_ptr, &param->width, &param->height, &bit_depth,
+@@ -402,7 +410,7 @@ int decode_png(const char *pngname, int 
+     }
+   png_read_end(png_ptr, info_ptr);
+ #endif  
+-  if (setjmp(png_ptr->jmpbuf)) {
++  if (setjmp(png_jmpbuf(png_ptr))) {
+     png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
+     return 2;
+     }



Home | Main Index | Thread Index | Old Index