Skip to content

Commit

Permalink
Restart marker test
Browse files Browse the repository at this point in the history
  • Loading branch information
xzn committed Dec 28, 2023
1 parent 75ebdae commit 93971c3
Show file tree
Hide file tree
Showing 5 changed files with 470 additions and 195 deletions.
7 changes: 6 additions & 1 deletion include/jpeg/jpeglib.h
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,7 @@ struct rp_alloc_stats {
struct rp_alloc_state {
uint8_t* buf;
struct rp_alloc_stats stats;
uint32_t max_offset;
};

#define jpeg_common_fields \
Expand Down Expand Up @@ -515,6 +516,9 @@ struct jpeg_compress_struct {
struct jpeg_entropy_encoder *entropy;
jpeg_scan_info *script_space; /* workspace for jpeg_simple_progression */
int script_space_size;

int user_work_next;
int user_thread_id;
boolean fdct_reuse;
boolean color_reuse;
boolean defaults_skip_tables;
Expand Down Expand Up @@ -1236,12 +1240,13 @@ EXTERN(void) jpeg_write_file_header(j_compress_ptr cinfo);
EXTERN(void) jpeg_write_frame_header(j_compress_ptr cinfo);
EXTERN(void) jpeg_write_scan_header(j_compress_ptr cinfo);
EXTERN(void) jpeg_write_file_trailer(j_compress_ptr cinfo);
EXTERN(void) jpeg_emit_marker(j_compress_ptr cinfo, int marker);

EXTERN(void) jpeg_init_destination(j_compress_ptr cinfo);
EXTERN(void) jpeg_term_destination(j_compress_ptr cinfo);

EXTERN(void) jpeg_start_pass_prep(j_compress_ptr cinfo, int pass_mode);
EXTERN(void) jpeg_start_pass_huff(j_compress_ptr cinfo);
EXTERN(void) jpeg_start_pass_huff(j_compress_ptr cinfo, int next_restart_num);
EXTERN(void) jpeg_start_pass_coef(j_compress_ptr cinfo, int pass_mode);
EXTERN(void) jpeg_start_pass_main(j_compress_ptr cinfo, int pass_mode);

Expand Down
5 changes: 4 additions & 1 deletion source/jpeg/jchuff.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,14 +249,17 @@ start_pass_huff(j_compress_ptr cinfo, boolean gather_statistics)
}

GLOBAL(void)
jpeg_start_pass_huff(j_compress_ptr cinfo) {
jpeg_start_pass_huff(j_compress_ptr cinfo, int next_restart_num) {
huff_entropy_ptr entropy = (huff_entropy_ptr)cinfo->entropy;
int ci;
for (ci = 0; ci < cinfo->comps_in_scan; ci++) {
entropy->saved.last_dc_val[ci] = 0;
}
entropy->saved.put_buffer.c = 0;
entropy->saved.free_bits = BIT_BUF_SIZE;

entropy->restarts_to_go = cinfo->restart_interval;
entropy->next_restart_num = next_restart_num;
}

/*
Expand Down
1 change: 1 addition & 0 deletions source/jpeg/jcmarker.c
Original file line number Diff line number Diff line change
Expand Up @@ -673,3 +673,4 @@ GLOBAL(void) jpeg_write_file_header(j_compress_ptr cinfo) __attribute__((alias("
GLOBAL(void) jpeg_write_frame_header(j_compress_ptr cinfo) __attribute__((alias("write_frame_header")));
GLOBAL(void) jpeg_write_scan_header(j_compress_ptr cinfo) __attribute__((alias("write_scan_header")));
GLOBAL(void) jpeg_write_file_trailer(j_compress_ptr cinfo) __attribute__((alias("write_file_trailer")));
GLOBAL(void) jpeg_emit_marker(j_compress_ptr cinfo, int marker) __attribute__((alias("emit_marker")));
2 changes: 1 addition & 1 deletion source/jpeg/jdatadst.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ typedef struct {

typedef my_destination_mgr *my_dest_ptr;

/* (PACKET_SIZE - 4) */
/* (PACKET_SIZE - rp_data_hdr_size) */
#define OUTPUT_BUF_SIZE 1444 /* choose an efficiently fwrite'able size */


Expand Down

0 comments on commit 93971c3

Please sign in to comment.