cdjpeg.h

来自「ESS3890+SL原代码(1*16内存)」· C头文件 代码 · 共 247 行

H
247
字号
/* Copyright 2000, ESS Technology, Inc.                                 *//* SCCSID @(#)cdjpeg.h	1.1 10/16/01 *//* Based on DVD/SVCD version 	1.1 12/01/00 *//* $Id$ *//* * $Log$ *//* * cdjpeg.h * * Copyright (C) 1994-1995, 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. * * This file contains common declarations for the sample applications * cjpeg and djpeg.  It is NOT used by the core JPEG library. */#ifndef __JPGE_CD_H__#define __JPEG_CD_H__#define JPEG_CJPEG_DJPEG	/* define proper options in jconfig.h */#define JPEG_INTERNAL_OPTIONS	/* cjpeg.c,djpeg.c need to see xxx_SUPPORTED */#include "jinclude.h"#include "jpeglib.h"#include "jerror.h"		/* get library error codes too */#include "cderror.h"		/* get application-specific error codes *//*#include "../lib_browser/browser_config.h"*//* * Object interface for cjpeg's source file decoding modules */typedef struct cjpeg_source_struct * cjpeg_source_ptr;struct cjpeg_source_struct {  JMETHOD(void, start_input, (j_compress_ptr cinfo,			      cjpeg_source_ptr sinfo));  JMETHOD(JDIMENSION, get_pixel_rows, (j_compress_ptr cinfo,				       cjpeg_source_ptr sinfo));  JMETHOD(void, finish_input, (j_compress_ptr cinfo,			       cjpeg_source_ptr sinfo));  FILE *input_file;  JSAMPARRAY buffer;  JDIMENSION buffer_height;};/* * Object interface for djpeg's output file encoding modules */typedef struct djpeg_dest_struct * djpeg_dest_ptr;struct djpeg_dest_struct {  /* start_output is called after jpeg_start_decompress finishes.   * The color map will be ready at this time, if one is needed.   */  JMETHOD(void, start_output, (j_decompress_ptr cinfo,			       djpeg_dest_ptr dinfo));  /* Emit the specified number of pixel rows from the buffer. */  JMETHOD(void, put_pixel_rows, (j_decompress_ptr cinfo,				 djpeg_dest_ptr dinfo,				 JDIMENSION rows_supplied));  /* Finish up at the end of the image. */  JMETHOD(void, finish_output, (j_decompress_ptr cinfo,				djpeg_dest_ptr dinfo));  /* Target file spec; filled in by djpeg.c after object is created. */  FILE * output_file;  /* Output pixel-row buffer.  Created by module init or start_output.   * Width is cinfo->output_width * cinfo->output_components;   * height is buffer_height.   */  JSAMPARRAY buffer;  JDIMENSION buffer_height;};typedef struct {  struct djpeg_dest_struct pub; /* public fields */  ImageStruct *pJpgImage ; /*used to store the Image STRUCT IN ORDER TO USE IN THE FUTURE*/  char * bmp_buf ; /* used to save the bmp */  my_boolean is_os2;            /* saves the OS2 format request flag */  int output_status; /*used to save the status of the output  */  jvirt_sarray_ptr whole_image; /* needed to reverse row order */  JDIMENSION data_width;        /* JSAMPLEs per row */  JDIMENSION row_width;         /* physical width of one row in the BMP file */  int pad_bytes;                /* number of padding bytes needed per row */  JDIMENSION cur_output_row;    /* next row# to write to virtual array */  int final_width;				/* for ESS downsampling */  int final_height;  int final_block_height;  int downsample;  int compressed_bmp;  int compressed_size;			/* for profile */  int rows_per_block;  int cur_block_row;  int cur_block;  char *block_buf;  char *compressed_block;  short *HashTable;  char *rbuf;  char *gbuf;  char *bbuf;} bmp_dest_struct;typedef bmp_dest_struct * bmp_dest_ptr;/* * 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. */struct cdjpeg_progress_mgr {  struct jpeg_progress_mgr pub;	/* fields known to JPEG library */  int completed_extra_passes;	/* extra passes completed */  int total_extra_passes;	/* total extra */  /* last printed percentage stored here to avoid multiple printouts */  int percent_done;};typedef struct cdjpeg_progress_mgr * cd_progress_ptr;#ifdef INC_DECODEtypedef struct {  j_decompress_ptr pCInfo ;     struct my_error_mgr * pErrMgr ;  djpeg_dest_ptr * pDestPtr ;  char *outputBuf ; /*to store the pointer to the output data */  int Lastsize ; /*used to record the data of lasttime which passed to the decorder*/  char * buffer   ; /* to store the where the data come from the caller */  int  FileSize ; /* to store the data size in the buffer */  int  headeronly; /*Used to indicate read the header only */  int  dest_height; }DECOMPRESS_DATA , * DECOMPRESS_DATA_PTR ;#endif/* Short forms of external names for systems with brain-damaged linkers. */#ifdef NEED_SHORT_EXTERNAL_NAMES#define jinit_read_bmp		jIRdBMP#define jinit_write_bmp		jIWrBMP#define jinit_read_gif		jIRdGIF#define jinit_write_gif		jIWrGIF#define jinit_read_ppm		jIRdPPM#define jinit_write_ppm		jIWrPPM#define jinit_read_rle		jIRdRLE#define jinit_write_rle		jIWrRLE#define jinit_read_targa	jIRdTarga#define jinit_write_targa	jIWrTarga#define read_quant_tables	RdQTables#define read_scan_script	RdScnScript#define set_quant_slots		SetQSlots#define set_sample_factors	SetSFacts#define read_color_map		RdCMap#define enable_signal_catcher	EnSigCatcher#define start_progress_monitor	StProgMon#define end_progress_monitor	EnProgMon#define read_stdin		RdStdin#define write_stdout		WrStdout#endif /* NEED_SHORT_EXTERNAL_NAMES *//* Module selection routines for I/O modules. */EXTERN cjpeg_source_ptr jinit_read_bmp JPP((j_compress_ptr cinfo));#ifdef INC_DECODEEXTERN djpeg_dest_ptr jinit_write_bmp JPP((j_decompress_ptr cinfo,					   int w, int h,ImageStruct * pImgStr));#elseEXTERN djpeg_dest_ptr jinit_write_bmp JPP((j_decompress_ptr cinfo,					   my_boolean is_os2));#endifEXTERN cjpeg_source_ptr jinit_read_gif JPP((j_compress_ptr cinfo));EXTERN djpeg_dest_ptr jinit_write_gif JPP((j_decompress_ptr cinfo));EXTERN cjpeg_source_ptr jinit_read_ppm JPP((j_compress_ptr cinfo));EXTERN djpeg_dest_ptr jinit_write_ppm JPP((j_decompress_ptr cinfo));EXTERN cjpeg_source_ptr jinit_read_rle JPP((j_compress_ptr cinfo));EXTERN djpeg_dest_ptr jinit_write_rle JPP((j_decompress_ptr cinfo));EXTERN cjpeg_source_ptr jinit_read_targa JPP((j_compress_ptr cinfo));EXTERN djpeg_dest_ptr jinit_write_targa JPP((j_decompress_ptr cinfo));/* cjpeg support routines (in rdswitch.c) */EXTERN my_boolean read_quant_tables JPP((j_compress_ptr cinfo, char * filename,				   int scale_factor, my_boolean force_baseline));EXTERN my_boolean read_scan_script JPP((j_compress_ptr cinfo, char * filename));EXTERN my_boolean set_quant_slots JPP((j_compress_ptr cinfo, char *arg));EXTERN my_boolean set_sample_factors JPP((j_compress_ptr cinfo, char *arg));/* djpeg support routines (in rdcolmap.c) */EXTERN void read_color_map JPP((j_decompress_ptr cinfo, FILE * infile));/* common support routines (in cdjpeg.c) */EXTERN void enable_signal_catcher JPP((j_common_ptr cinfo));EXTERN void start_progress_monitor JPP((j_common_ptr cinfo,					cd_progress_ptr progress));EXTERN void end_progress_monitor JPP((j_common_ptr cinfo));EXTERN my_boolean keymatch JPP((char * arg, const char * keyword, int minchars));EXTERN FILE * read_stdin JPP((void));EXTERN FILE * write_stdout JPP((void));/* miscellaneous useful macros */#ifdef DONT_USE_B_MODE		/* define mode parameters for fopen() */#define READ_BINARY	"r"#define WRITE_BINARY	"w"#else#define READ_BINARY	"rb"#define WRITE_BINARY	"wb"#endif#ifndef EXIT_FAILURE		/* define exit() codes if not provided */#define EXIT_FAILURE  1#endif#ifndef EXIT_SUCCESS#ifdef VMS#define EXIT_SUCCESS  1		/* VMS is very nonstandard */#else#define EXIT_SUCCESS  0#endif#endif#ifndef EXIT_WARNING#ifdef VMS#define EXIT_WARNING  1		/* VMS is very nonstandard */#else#define EXIT_WARNING  2#endif#endif#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?