summaryrefslogtreecommitdiff
path: root/multimedia/mjpegtools
diff options
context:
space:
mode:
authorwiz <wiz>2011-01-24 10:04:21 +0000
committerwiz <wiz>2011-01-24 10:04:21 +0000
commit13616409cd1f6d3d28f6650476814ced708255ff (patch)
tree0664aca42ada51f24bfcc43e6af16e1bb88e87cc /multimedia/mjpegtools
parentcd032355eb415a9eb8dbb939999e7a9044b9b380 (diff)
downloadpkgsrc-13616409cd1f6d3d28f6650476814ced708255ff.tar.gz
Fix build with png-1.5.
Diffstat (limited to 'multimedia/mjpegtools')
-rw-r--r--multimedia/mjpegtools/distinfo3
-rw-r--r--multimedia/mjpegtools/patches/patch-ac89
2 files changed, 91 insertions, 1 deletions
diff --git a/multimedia/mjpegtools/distinfo b/multimedia/mjpegtools/distinfo
index 6ab311f8805..8c3ccdbde0f 100644
--- a/multimedia/mjpegtools/distinfo
+++ b/multimedia/mjpegtools/distinfo
@@ -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 --git a/multimedia/mjpegtools/patches/patch-ac b/multimedia/mjpegtools/patches/patch-ac
new file mode 100644
index 00000000000..f552a371836
--- /dev/null
+++ b/multimedia/mjpegtools/patches/patch-ac
@@ -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;
+ }