summaryrefslogtreecommitdiff
path: root/graphics/jpeg/patches/patch-ad
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/jpeg/patches/patch-ad')
-rw-r--r--graphics/jpeg/patches/patch-ad193
1 files changed, 0 insertions, 193 deletions
diff --git a/graphics/jpeg/patches/patch-ad b/graphics/jpeg/patches/patch-ad
deleted file mode 100644
index fb3ba4f64af..00000000000
--- a/graphics/jpeg/patches/patch-ad
+++ /dev/null
@@ -1,193 +0,0 @@
-$NetBSD: patch-ad,v 1.1 2007/06/05 22:07:26 tnn Exp $
-
---- jpegtran.c.orig 2007-06-05 22:37:58.000000000 +0200
-+++ jpegtran.c
-@@ -1,7 +1,7 @@
- /*
- * jpegtran.c
- *
-- * Copyright (C) 1995-1997, Thomas G. Lane.
-+ * Copyright (C) 1995-2001, Thomas G. Lane.
- * This file is part of the Independent JPEG Group's software.
- * For conditions of distribution and use, see the accompanying README file.
- *
-@@ -64,8 +64,10 @@ usage (void)
- #endif
- #if TRANSFORMS_SUPPORTED
- fprintf(stderr, "Switches for modifying the image:\n");
-+ fprintf(stderr, " -crop WxH+X+Y Crop to a rectangular subarea\n");
- fprintf(stderr, " -grayscale Reduce to grayscale (omit color data)\n");
- fprintf(stderr, " -flip [horizontal|vertical] Mirror image (left-right or top-bottom)\n");
-+ fprintf(stderr, " -perfect Fail if there is non-transformable edge blocks\n");
- fprintf(stderr, " -rotate [90|180|270] Rotate image (degrees clockwise)\n");
- fprintf(stderr, " -transpose Transpose image\n");
- fprintf(stderr, " -transverse Transverse transpose image\n");
-@@ -133,7 +135,9 @@ parse_switches (j_compress_ptr cinfo, in
- copyoption = JCOPYOPT_DEFAULT;
- transformoption.transform = JXFORM_NONE;
- transformoption.trim = FALSE;
-+ transformoption.perfect = FALSE;
- transformoption.force_grayscale = FALSE;
-+ transformoption.crop = FALSE;
- cinfo->err->trace_level = 0;
-
- /* Scan command line options, adjust parameters */
-@@ -160,7 +164,7 @@ parse_switches (j_compress_ptr cinfo, in
- exit(EXIT_FAILURE);
- #endif
-
-- } else if (keymatch(arg, "copy", 1)) {
-+ } else if (keymatch(arg, "copy", 2)) {
- /* Select which extra markers to copy. */
- if (++argn >= argc) /* advance to next argument */
- usage();
-@@ -173,6 +177,20 @@ parse_switches (j_compress_ptr cinfo, in
- } else
- usage();
-
-+ } else if (keymatch(arg, "crop", 2)) {
-+ /* Perform lossless cropping. */
-+#if TRANSFORMS_SUPPORTED
-+ if (++argn >= argc) /* advance to next argument */
-+ usage();
-+ if (! jtransform_parse_crop_spec(&transformoption, argv[argn])) {
-+ fprintf(stderr, "%s: bogus -crop argument '%s'\n",
-+ progname, argv[argn]);
-+ exit(EXIT_FAILURE);
-+ }
-+#else
-+ select_transform(JXFORM_NONE); /* force an error */
-+#endif
-+
- } else if (keymatch(arg, "debug", 1) || keymatch(arg, "verbose", 1)) {
- /* Enable debug printouts. */
- /* On first -d, print version identification */
-@@ -233,7 +251,12 @@ parse_switches (j_compress_ptr cinfo, in
- usage();
- outfilename = argv[argn]; /* save it away for later use */
-
-- } else if (keymatch(arg, "progressive", 1)) {
-+ } else if (keymatch(arg, "perfect", 2)) {
-+ /* Fail if there is any partial edge MCUs that the transform can't
-+ * handle. */
-+ transformoption.perfect = TRUE;
-+
-+ } else if (keymatch(arg, "progressive", 2)) {
- /* Select simple progressive mode. */
- #ifdef C_PROGRESSIVE_SUPPORTED
- simple_progressive = TRUE;
-@@ -342,8 +365,10 @@ main (int argc, char **argv)
- jvirt_barray_ptr * src_coef_arrays;
- jvirt_barray_ptr * dst_coef_arrays;
- int file_index;
-- FILE * input_file;
-- FILE * output_file;
-+ /* We assume all-in-memory processing and can therefore use only a
-+ * single file pointer for sequential input and output operation.
-+ */
-+ FILE * fp;
-
- /* On Mac, fetch a command line. */
- #ifdef USE_CCOMMAND
-@@ -406,24 +431,13 @@ main (int argc, char **argv)
-
- /* Open the input file. */
- if (file_index < argc) {
-- if ((input_file = fopen(argv[file_index], READ_BINARY)) == NULL) {
-- fprintf(stderr, "%s: can't open %s\n", progname, argv[file_index]);
-+ if ((fp = fopen(argv[file_index], READ_BINARY)) == NULL) {
-+ fprintf(stderr, "%s: can't open %s for reading\n", progname, argv[file_index]);
- exit(EXIT_FAILURE);
- }
- } else {
- /* default input file is stdin */
-- input_file = read_stdin();
-- }
--
-- /* Open the output file. */
-- if (outfilename != NULL) {
-- if ((output_file = fopen(outfilename, WRITE_BINARY)) == NULL) {
-- fprintf(stderr, "%s: can't open %s\n", progname, outfilename);
-- exit(EXIT_FAILURE);
-- }
-- } else {
-- /* default output file is stdout */
-- output_file = write_stdout();
-+ fp = read_stdin();
- }
-
- #ifdef PROGRESS_REPORT
-@@ -431,7 +445,7 @@ main (int argc, char **argv)
- #endif
-
- /* Specify data source for decompression */
-- jpeg_stdio_src(&srcinfo, input_file);
-+ jpeg_stdio_src(&srcinfo, fp);
-
- /* Enable saving of extra markers that we want to copy */
- jcopy_markers_setup(&srcinfo, copyoption);
-@@ -443,6 +457,15 @@ main (int argc, char **argv)
- * jpeg_read_coefficients so that memory allocation will be done right.
- */
- #if TRANSFORMS_SUPPORTED
-+ /* Fails right away if -perfect is given and transformation is not perfect.
-+ */
-+ if (transformoption.perfect &&
-+ !jtransform_perfect_transform(srcinfo.image_width, srcinfo.image_height,
-+ srcinfo.max_h_samp_factor * DCTSIZE, srcinfo.max_v_samp_factor * DCTSIZE,
-+ transformoption.transform)) {
-+ fprintf(stderr, "%s: transformation is not perfect\n", progname);
-+ exit(EXIT_FAILURE);
-+ }
- jtransform_request_workspace(&srcinfo, &transformoption);
- #endif
-
-@@ -463,11 +486,32 @@ main (int argc, char **argv)
- dst_coef_arrays = src_coef_arrays;
- #endif
-
-+ /* Close input file, if we opened it.
-+ * Note: we assume that jpeg_read_coefficients consumed all input
-+ * until JPEG_REACHED_EOI, and that jpeg_finish_decompress will
-+ * only consume more while (! cinfo->inputctl->eoi_reached).
-+ * We cannot call jpeg_finish_decompress here since we still need the
-+ * virtual arrays allocated from the source object for processing.
-+ */
-+ if (fp != stdin)
-+ fclose(fp);
-+
-+ /* Open the output file. */
-+ if (outfilename != NULL) {
-+ if ((fp = fopen(outfilename, WRITE_BINARY)) == NULL) {
-+ fprintf(stderr, "%s: can't open %s for writing\n", progname, outfilename);
-+ exit(EXIT_FAILURE);
-+ }
-+ } else {
-+ /* default output file is stdout */
-+ fp = write_stdout();
-+ }
-+
- /* Adjust default compression parameters by re-parsing the options */
- file_index = parse_switches(&dstinfo, argc, argv, 0, TRUE);
-
- /* Specify data destination for compression */
-- jpeg_stdio_dest(&dstinfo, output_file);
-+ jpeg_stdio_dest(&dstinfo, fp);
-
- /* Start compressor (note no image data is actually written here) */
- jpeg_write_coefficients(&dstinfo, dst_coef_arrays);
-@@ -488,11 +532,9 @@ main (int argc, char **argv)
- (void) jpeg_finish_decompress(&srcinfo);
- jpeg_destroy_decompress(&srcinfo);
-
-- /* Close files, if we opened them */
-- if (input_file != stdin)
-- fclose(input_file);
-- if (output_file != stdout)
-- fclose(output_file);
-+ /* Close output file, if we opened it */
-+ if (fp != stdout)
-+ fclose(fp);
-
- #ifdef PROGRESS_REPORT
- end_progress_monitor((j_common_ptr) &dstinfo);