diff options
Diffstat (limited to 'packages/base/pasjpeg/cdjpeg.pas')
-rw-r--r-- | packages/base/pasjpeg/cdjpeg.pas | 279 |
1 files changed, 0 insertions, 279 deletions
diff --git a/packages/base/pasjpeg/cdjpeg.pas b/packages/base/pasjpeg/cdjpeg.pas deleted file mode 100644 index edf4254e50..0000000000 --- a/packages/base/pasjpeg/cdjpeg.pas +++ /dev/null @@ -1,279 +0,0 @@ -Unit CdJpeg; - -{ OriginaL : cdjpeg.h+cdjpeg.c ; Copyright (C) 1994-1996, Thomas G. Lane. - - This file contains common support routines used by the IJG application - programs (cjpeg, djpeg, jpegtran). - - This file contains common declarations for the sample applications - cjpeg and djpeg. It is NOT used by the core JPEG library. } - -{$define JPEG_CJPEG_DJPEG} { define proper options in jconfig.h } -{$define JPEG_INTERNAL_OPTIONS} { cjpeg.c,djpeg.c need to see xxx_SUPPORTED } - -interface - -{$I jconfig.inc} - -uses - jmorecfg, jinclude, jpeglib, - jdeferr, - {cderror,} { get application-specific error codes } - jerror; { get library error codes too } - - -const - EXIT_SUCCESS = 0; - EXIT_FAILURE = 1; - EXIT_WARNING = 2; - -type { Nomssi } - BGRptr = ^BGRtype; - BGRtype = packed record - b,g,r : byte; - end; -type { Nomssi } - RGBptr = ^RGBtype; - RGBtype = packed record - r,g,b : JSAMPLE; - end; - -{ Object interface for cjpeg's source file decoding modules } - -type - cjpeg_source_ptr = ^cjpeg_source_struct; - cjpeg_source_struct = record - start_input : procedure (cinfo : j_compress_ptr; - sinfo : cjpeg_source_ptr); - get_pixel_rows : function (cinfo : j_compress_ptr; - sinfo : cjpeg_source_ptr) : JDIMENSION; - finish_input : procedure (cinfo : j_compress_ptr; - sinfo : cjpeg_source_ptr); - input_file : FILEptr; - - buffer : JSAMPARRAY; - buffer_height : JDIMENSION; - end; - - -{ Object interface for djpeg's output file encoding modules } - -type - djpeg_dest_ptr = ^djpeg_dest_struct; - djpeg_dest_struct = record - { start_output is called after jpeg_start_decompress finishes. - The color map will be ready at this time, if one is needed. } - - start_output : procedure (cinfo : j_decompress_ptr; - dinfo : djpeg_dest_ptr); - { Emit the specified number of pixel rows from the buffer. } - put_pixel_rows : procedure (cinfo : j_decompress_ptr; - dinfo : djpeg_dest_ptr; - rows_supplied : JDIMENSION); - { Finish up at the end of the image. } - finish_output : procedure (cinfo : j_decompress_ptr; - dinfo : djpeg_dest_ptr); - - { Target file spec; filled in by djpeg.c after object is created. } - output_file : FILEptr; - - { Output pixel-row buffer. Created by module init or start_output. - Width is cinfo^.output_width * cinfo^.output_components; - height is buffer_height. } - - buffer : JSAMPARRAY; - buffer_height : JDIMENSION; - end; - - -{ cjpeg/djpeg may need to perform extra passes to convert to or from - the source/destination file format. The JPEG library does not know - about these passes, but we'd like them to be counted by the progress - monitor. We use an expanded progress monitor object to hold the - additional pass count. } - -type - cd_progress_ptr = ^cdjpeg_progress_mgr; - cdjpeg_progress_mgr = record - pub : jpeg_progress_mgr; { fields known to JPEG library } - completed_extra_passes : int; { extra passes completed } - total_extra_passes : int; { total extra } - { last printed percentage stored here to avoid multiple printouts } - percent_done : int; - end; - -{GLOBAL} -procedure enable_signal_catcher (cinfo : j_common_ptr); - -{ Case-insensitive matching of possibly-abbreviated keyword switches. - keyword is the constant keyword (must be lower case already), - minchars is length of minimum legal abbreviation. } - -{GLOBAL} -function keymatch (arg : string; - const keyword : string; - minchars : int) : boolean; - -{$ifdef PROGRESS_REPORT} - -{GLOBAL} -procedure start_progress_monitor (cinfo : j_common_ptr; - progress : cd_progress_ptr); - -{GLOBAL} -procedure end_progress_monitor (cinfo : j_common_ptr); - -{$endif} - -implementation - - -{GLOBAL} -procedure enable_signal_catcher (cinfo : j_common_ptr); -begin - RunError(255); { not translated - Jacques Nomssi } -end; - -{ Optional progress monitor: display a percent-done figure on stderr. } - - -{$ifdef PROGRESS_REPORT} - -{METHODDEF} -procedure progress_monitor (cinfo : j_common_ptr); far; -var - prog : cd_progress_ptr; - total_passes : int; - percent_done : int; -begin - prog := cd_progress_ptr (cinfo^.progress); - total_passes := prog^.pub.total_passes + prog^.total_extra_passes; - percent_done := int (prog^.pub.pass_counter*Long(100) div prog^.pub.pass_limit); - if (percent_done <> prog^.percent_done) then - begin - prog^.percent_done := percent_done; - if (total_passes > 1) then - Write(output, #13'Pass ', - prog^.pub.completed_passes + prog^.completed_extra_passes + 1, - '/',total_passes,': ',percent_done:3,'% ') - else - Write(#13' ', percent_done,'% '); - {fflush(stderr);} - end; -end; - - -{GLOBAL} -procedure start_progress_monitor (cinfo : j_common_ptr; - progress : cd_progress_ptr); -begin - { Enable progress display, unless trace output is on } - if (cinfo^.err^.trace_level = 0) then - begin - progress^.pub.progress_monitor := progress_monitor; - progress^.completed_extra_passes := 0; - progress^.total_extra_passes := 0; - progress^.percent_done := -1; - cinfo^.progress := @progress^.pub; - end; -end; - - -{GLOBAL} -procedure end_progress_monitor (cinfo : j_common_ptr); -begin - { Clear away progress display } - if (cinfo^.err^.trace_level = 0) then - begin - WriteLn(#13' '#13); - {fflush(stderr);} - end; -end; - -{$endif} - - -{ Case-insensitive matching of possibly-abbreviated keyword switches. - keyword is the constant keyword (must be lower case already), - minchars is length of minimum legal abbreviation. } - -{GLOBAL} -function keymatch (arg : string; - const keyword : string; - minchars : int) : boolean; -var - {register} i : int; - ca, ck : char; - {register} nmatched : int; -begin - nmatched := 0; - - i := 1; - if length(arg) > length(keyword) then - begin - keymatch := FALSE; { arg longer than keyword, no good } - exit; - end; - while (i <= length(arg)) do - begin - ca := UpCase(arg[i]); - ck := UpCase(keyword[i]); - Inc(i); - if (ca <> ck) then - begin - keymatch := FALSE; { no good } - exit; - end; - Inc(nmatched); { count matched characters } - end; - { reached end of argument; fail if it's too short for unique abbrev } - keymatch := (nmatched >= minchars); -end; - -{$IFDEF std I/O} - -{ Routines to establish binary I/O mode for stdin and stdout. - Non-Unix systems often require some hacking to get out of text mode. } - -{GLOBAL} -function read_stdin : FILEptr; -var - input_file : FILEptr; -begin - input_file := @input; - -{$ifdef USE_SETMODE} { need to hack file mode? } - setmode(fileno(stdin), O_BINARY); -{$endif} -{$ifdef USE_FDOPEN} { need to re-open in binary mode? } - if ((input_file = fdopen(fileno(stdin), READ_BINARY)) = NIL) then - begin - WriteLn(stderr, 'Cannot reopen stdin'); - Halt(EXIT_FAILURE); - end; -{$endif} - read_stdin := input_file; -end; - - -{GLOBAL} -function write_stdout : FILEptr; -var - output_file : FILEptr; -begin - output_file := @output; -{$ifdef USE_SETMODE} { need to hack file mode? } - setmode(fileno(stdout), O_BINARY); -{$endif} -{$ifdef USE_FDOPEN} { need to re-open in binary mode? } - if ((output_file = fdopen(fileno(stdout), WRITE_BINARY)) = NIL) then - begin - WriteLn(stderr, 'Cannot reopen stdout'); - Halt(EXIT_FAILURE); - end; -{$endif} - write_stdout := output_file; -end; -{$ENDIF} - -end. |