diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-05-30 17:14:19 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-05-30 18:38:04 +0200 |
commit | 3f714d1ffd96f13354f42487ff5df7411ac47c8b (patch) | |
tree | 9b4554fd9c9235c884a4e5a64ed8b5e7aca732f1 | |
parent | 941a8efae2ac166840bc8ec2a1534289b6714957 (diff) | |
download | ffmpeg-3f714d1ffd96f13354f42487ff5df7411ac47c8b.tar.gz |
jpeg2000/j2k: merge non functional changes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/j2kdec.c | 57 | ||||
-rw-r--r-- | libavcodec/jpeg2000dec.c | 4 |
2 files changed, 33 insertions, 28 deletions
diff --git a/libavcodec/j2kdec.c b/libavcodec/j2kdec.c index 041d20219b..66b427883c 100644 --- a/libavcodec/j2kdec.c +++ b/libavcodec/j2kdec.c @@ -213,6 +213,7 @@ static int get_siz(Jpeg2000DecoderContext *s) s->reduction_factor); s->avctx->height = ff_jpeg2000_ceildivpow2(s->height - s->image_offset_y, s->reduction_factor); + switch(s->ncomponents) { case 1: if (s->precision > 8) @@ -426,7 +427,7 @@ static int get_qcc(Jpeg2000DecoderContext *s, int n, Jpeg2000QuantStyle *q, return get_qcx(s, n - 1, q + compno); } -/** get start of tile segment */ +/* get start of tile segment */ static int get_sot(Jpeg2000DecoderContext *s) { if (bytestream2_get_bytes_left(&s->g) < 8) @@ -525,7 +526,7 @@ static int init_tile(Jpeg2000DecoderContext *s, int tileno) return 0; } -/** read the number of coding passes */ +/* read the number of coding passes */ static int getnpasses(Jpeg2000DecoderContext *s) { int num; @@ -552,10 +553,10 @@ static int getlblockinc(Jpeg2000DecoderContext *s) return res; } -static int decode_packet(Jpeg2000DecoderContext *s, - Jpeg2000CodingStyle *codsty, - Jpeg2000ResLevel *rlevel, int precno, - int layno, uint8_t *expn, int numgbits) +static int jpeg2000_decode_packet(Jpeg2000DecoderContext *s, + Jpeg2000CodingStyle *codsty, + Jpeg2000ResLevel *rlevel, int precno, + int layno, uint8_t *expn, int numgbits) { int bandno, cblkno, ret, nb_code_blocks; @@ -653,14 +654,13 @@ static int jpeg2000_decode_packets(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile Jpeg2000ResLevel *rlevel = tile->comp[compno].reslevel + reslevelno; ok_reslevel = 1; - for (precno = 0; precno < rlevel->num_precincts_x * rlevel->num_precincts_y; precno++) { - if (decode_packet(s, - codsty, rlevel, - precno, layno, - qntsty->expn + (reslevelno ? 3*(reslevelno-1)+1 : 0), - qntsty->nguardbits)) + for (precno = 0; precno < rlevel->num_precincts_x * rlevel->num_precincts_y; precno++) + if (jpeg2000_decode_packet(s, + codsty, rlevel, + precno, layno, + qntsty->expn + (reslevelno ? 3 * (reslevelno - 1) + 1 : 0), + qntsty->nguardbits)) return -1; - } } } } @@ -691,7 +691,8 @@ static void decode_sigpass(Jpeg2000T1Context *t1, int width, int height, t1->data[y][x] = (ff_mqc_decode(&t1->mqc, t1->mqc.cx_states + ctxno) ^ xorbit) ? -mask : mask; - ff_jpeg2000_set_significance(t1, x, y, t1->data[y][x] < 0); + ff_jpeg2000_set_significance(t1, x, y, + t1->data[y][x] < 0); } t1->flags[y + 1][x + 1] |= JPEG2000_T1_VIS; } @@ -792,7 +793,7 @@ static int decode_cblk(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *codsty, int vert_causal_ctx_csty_symbol = JPEG2000_CBLK_VSC & codsty->cblk_style; for (y = 0; y < height+2; y++) - memset(t1->flags[y], 0, (width+2)*sizeof(int)); + memset(t1->flags[y], 0, (width + 2)*sizeof(int)); for (y = 0; y < height; y++) memset(t1->data[y], 0, width*sizeof(int)); @@ -804,16 +805,16 @@ static int decode_cblk(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *codsty, while (passno--) { switch(pass_t) { case 0: - decode_sigpass(t1, width, height, bpno+1, bandpos, + decode_sigpass(t1, width, height, bpno + 1, bandpos, bpass_csty_symbol && (clnpass_cnt >= 4), vert_causal_ctx_csty_symbol); break; case 1: - decode_refpass(t1, width, height, bpno+1); + decode_refpass(t1, width, height, bpno + 1); if (bpass_csty_symbol && clnpass_cnt >= 4) ff_mqc_initdec(&t1->mqc, cblk->data); break; case 2: - decode_clnpass(s, t1, width, height, bpno+1, bandpos, + decode_clnpass(s, t1, width, height, bpno + 1, bandpos, codsty->cblk_style & JPEG2000_CBLK_SEGSYM, vert_causal_ctx_csty_symbol); clnpass_cnt = clnpass_cnt + 1; if (bpass_csty_symbol && clnpass_cnt >= 4) @@ -921,15 +922,16 @@ static void mct_decode(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile) *src[1]++ = i1; *src[2]++ = i2; } + break; } } -static int decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, - AVFrame *picture) -) +static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, + AVFrame *picture) { int compno, reslevelno, bandno; int x, y; + uint8_t *line; Jpeg2000T1Context t1; @@ -1066,14 +1068,16 @@ static void jpeg2000_dec_cleanup(Jpeg2000DecoderContext *s) av_freep(&s->tile); } -static int decode_codestream(Jpeg2000DecoderContext *s) +static int jpeg2000_decode_codestream(Jpeg2000DecoderContext *s) { Jpeg2000CodingStyle *codsty = s->codsty; Jpeg2000QuantStyle *qntsty = s->qntsty; uint8_t *properties = s->properties; for (;;) { - int oldpos, marker, len, ret = 0; + int len, ret = 0; + int marker; + int oldpos; if (bytestream2_get_bytes_left(&s->g) < 2) { av_log(s->avctx, AV_LOG_ERROR, "Missing EOC\n"); @@ -1081,7 +1085,6 @@ static int decode_codestream(Jpeg2000DecoderContext *s) } marker = bytestream2_get_be16u(&s->g); - av_dlog(s->avctx, "marker 0x%.4X at pos 0x%x\n", marker, bytestream2_tell(&s->g) - 4); oldpos = bytestream2_tell(&s->g); if (marker == JPEG2000_SOD) { @@ -1137,7 +1140,7 @@ static int decode_codestream(Jpeg2000DecoderContext *s) break; default: av_log(s->avctx, AV_LOG_ERROR, - "unsupported marker 0x%.4X at pos 0x%x\n", + "unsupported marker 0x%.4X at pos 0x%X\n", marker, bytestream2_tell(&s->g) - 4); bytestream2_skip(&s->g, len - 2); break; @@ -1214,11 +1217,11 @@ static int jpeg2000_decode_frame(AVCodecContext *avctx, void *data, ret = -1; goto err_out; } - if (ret = decode_codestream(s)) + if (ret = jpeg2000_decode_codestream(s)) goto err_out; for (tileno = 0; tileno < s->numXtiles * s->numYtiles; tileno++) - if (ret = decode_tile(s, s->tile + tileno, s->picture)) + if (ret = jpeg2000_decode_tile(s, s->tile + tileno, s->picture)) goto err_out; jpeg2000_dec_cleanup(s); diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c index fd9295e687..7fc704ba5a 100644 --- a/libavcodec/jpeg2000dec.c +++ b/libavcodec/jpeg2000dec.c @@ -601,6 +601,7 @@ static int jpeg2000_decode_packet(Jpeg2000DecoderContext *s, if (band->coord[0][0] == band->coord[0][1] || band->coord[1][0] == band->coord[1][1]) continue; + nb_code_blocks = prec->nb_codeblocks_height * prec->nb_codeblocks_width; for (cblkno = 0; cblkno < nb_code_blocks; cblkno++) { @@ -1020,8 +1021,8 @@ static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, uint8_t *line; Jpeg2000T1Context t1; - /* Loop on tile components */ + /* Loop on tile components */ for (compno = 0; compno < s->ncomponents; compno++) { Jpeg2000Component *comp = tile->comp + compno; Jpeg2000CodingStyle *codsty = tile->codsty + compno; @@ -1075,6 +1076,7 @@ static int jpeg2000_decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, Jpeg2000Component *comp = tile->comp + compno; float *datap = comp->f_data; int32_t *i_datap = comp->i_data; + y = tile->comp[compno].coord[1][0] - s->image_offset_y; line = picture->data[0] + y * picture->linesize[0]; for (; y < tile->comp[compno].coord[1][1] - s->image_offset_y; y += s->cdy[compno]) { |