Skip to content

Commit 098b42e

Browse files
committed
reader: debug dump SOS
1 parent 1d88b1b commit 098b42e

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/gpujpeg_common_internal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ enum {
8888
#define GPUJPEG_ASSERT(cond) do { if (!(cond)) { fprintf(stderr, "%s:%d: %s: Assertion `" #cond "' failed.\n", __FILE__, __LINE__, __func__); abort(); } } while(0)
8989

9090
#define ERROR_MSG(...) do { fprintf(stderr, "[GPUJPEG] [Error] " __VA_ARGS__); } while(0)
91+
#define WARN_MSG(...) do { fprintf(stderr, "[GPUJPEG] [Warning] " __VA_ARGS__); } while(0)
9192
#define VERBOSE_MSG(log_level, ...) do { if (log_level >= 1) fprintf(stderr, "[GPUJPEG] [Warning] " __VA_ARGS__); } while(0)
9293
#define DEBUG_MSG(log_level, ...) do { if (log_level >= 2) fprintf(stderr, "[GPUJPEG] [Debug] " __VA_ARGS__); } while(0)
9394
#define DEBUG2_MSG(log_level, ...) do { if (log_level >= 3) fprintf(stderr, "[GPUJPEG] [Debug2] " __VA_ARGS__); } while(0)

src/gpujpeg_reader.c

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1153,6 +1153,20 @@ gpujpeg_reader_read_scan_content_by_segment_info(struct gpujpeg_decoder* decoder
11531153
return 0;
11541154
}
11551155

1156+
static void
1157+
sos_check_dump(int verbose, int comp_count, int Ss, int Se, int Ah, int Al)
1158+
{
1159+
bool invalid_val = false;
1160+
if (Ss != 0 || Se != 63 || Ah != 0 || Al != 0) {
1161+
WARN_MSG("Some of SOS parameters not valid for sequential DCT.\n");
1162+
invalid_val = true;
1163+
}
1164+
if (!invalid_val && verbose < LL_DEBUG2) {
1165+
return;
1166+
}
1167+
printf("SOS components=%d Ss=%d Se=%d Ah=%d Al=%d\n", comp_count, Ss, Se, Ah, Al);
1168+
}
1169+
11561170
/**
11571171
* Read start of scan block from image
11581172
*
@@ -1240,6 +1254,10 @@ gpujpeg_reader_read_sos(struct gpujpeg_decoder* decoder, struct gpujpeg_reader*
12401254

12411255
decoder->comp_table_huffman_map[component_index][GPUJPEG_HUFFMAN_DC] = table_dc;
12421256
decoder->comp_table_huffman_map[component_index][GPUJPEG_HUFFMAN_AC] = table_ac;
1257+
1258+
if ( decoder->coder.param.verbose >= LL_DEBUG2 ) {
1259+
printf("SOS component #%d table DC: %d table AC: %d\n", comp_id, table_dc, table_ac);
1260+
}
12431261
}
12441262

12451263
// Collect the additional scan parameters Ss, Se, Ah/Al.
@@ -1253,7 +1271,7 @@ gpujpeg_reader_read_sos(struct gpujpeg_decoder* decoder, struct gpujpeg_reader*
12531271
int Ax = (int)gpujpeg_reader_read_byte(*image);
12541272
int Ah = (Ax >> 4) & 15;
12551273
int Al = (Ax) & 15;
1256-
(void) Ss, (void) Se, (void) Ax, (void) Ah, (void) Al;
1274+
sos_check_dump(decoder->coder.param.verbose, comp_count, Ss, Se, Ah, Al);
12571275

12581276
// Check maximum scan count
12591277
if ( reader->scan_count >= GPUJPEG_MAX_COMPONENT_COUNT ) {

0 commit comments

Comments
 (0)