diff options
author | wiz <wiz> | 2011-01-24 10:04:21 +0000 |
---|---|---|
committer | wiz <wiz> | 2011-01-24 10:04:21 +0000 |
commit | 13616409cd1f6d3d28f6650476814ced708255ff (patch) | |
tree | 0664aca42ada51f24bfcc43e6af16e1bb88e87cc /multimedia/mjpegtools | |
parent | cd032355eb415a9eb8dbb939999e7a9044b9b380 (diff) | |
download | pkgsrc-13616409cd1f6d3d28f6650476814ced708255ff.tar.gz |
Fix build with png-1.5.
Diffstat (limited to 'multimedia/mjpegtools')
-rw-r--r-- | multimedia/mjpegtools/distinfo | 3 | ||||
-rw-r--r-- | multimedia/mjpegtools/patches/patch-ac | 89 |
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, ¶m->width, ¶m->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; + } |