Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F8724239
jcinit.c
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
jcinit.c
View Options
/*
* jcinit.c
*
* Copyright (C) 1991-1997, 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 initialization logic for the JPEG compressor.
* This routine is in charge of selecting the modules to be executed and
* making an initialization call to each one.
*
* Logically, this code belongs in jcmaster.c. It's split out because
* linking this routine implies linking the entire compression library.
* For a transcoding-only application, we want to be able to use jcmaster.c
* without linking in the whole library.
*/
#define JPEG_INTERNALS
#include
"jinclude.h"
#include
"jpeglib.h"
/*
* Master selection of compression modules.
* This is done once at the start of processing an image. We determine
* which modules will be used and give them appropriate initialization calls.
*/
GLOBAL
(
void
)
jinit_compress_master
(
j_compress_ptr
cinfo
)
{
/* Initialize master control (includes parameter checking/processing) */
jinit_c_master_control
(
cinfo
,
FALSE
/* full compression */
);
/* Preprocessing */
if
(
!
cinfo
->
raw_data_in
)
{
jinit_color_converter
(
cinfo
);
jinit_downsampler
(
cinfo
);
jinit_c_prep_controller
(
cinfo
,
FALSE
/* never need full buffer here */
);
}
/* Forward DCT */
jinit_forward_dct
(
cinfo
);
/* Entropy encoding: either Huffman or arithmetic coding. */
if
(
cinfo
->
arith_code
)
{
ERREXIT
(
cinfo
,
JERR_ARITH_NOTIMPL
);
}
else
{
if
(
cinfo
->
progressive_mode
)
{
#ifdef C_PROGRESSIVE_SUPPORTED
jinit_phuff_encoder
(
cinfo
);
#else
ERREXIT
(
cinfo
,
JERR_NOT_COMPILED
);
#endif
}
else
jinit_huff_encoder
(
cinfo
);
}
/* Need a full-image coefficient buffer in any multi-pass mode. */
jinit_c_coef_controller
(
cinfo
,
(
boolean
)
(
cinfo
->
num_scans
>
1
||
cinfo
->
optimize_coding
));
jinit_c_main_controller
(
cinfo
,
FALSE
/* never need full buffer here */
);
jinit_marker_writer
(
cinfo
);
/* We can now tell the memory manager to allocate virtual arrays. */
(
*
cinfo
->
mem
->
realize_virt_arrays
)
((
j_common_ptr
)
cinfo
);
/* Write the datastream header (SOI) immediately.
* Frame and scan headers are postponed till later.
* This lets application insert special markers after the SOI.
*/
(
*
cinfo
->
marker
->
write_file_header
)
(
cinfo
);
}
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Mon, Jan 20, 10:57 PM (1 d, 17 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4242732
Default Alt Text
jcinit.c (2 KB)
Attached To
rFROGSVN frogsvn
Event Timeline
Log In to Comment