diff options
| author | Antonin Descampe <antonin@gmail.com> | 2014-12-09 12:09:08 +0000 |
|---|---|---|
| committer | Antonin Descampe <antonin@gmail.com> | 2014-12-09 12:09:08 +0000 |
| commit | 8d320bbdf88edc09628d532bee6f6b975317a961 (patch) | |
| tree | d23360671c8366faf9327cdf67882a06a88c95a5 /src/lib/openjp2/tcd.c | |
| parent | 776b83ddbcf4441e2af05ec7c09f08c760fe05b7 (diff) | |
[trunk] check number of components when getting mct norm (fixes issue 436)
Diffstat (limited to 'src/lib/openjp2/tcd.c')
| -rw-r--r-- | src/lib/openjp2/tcd.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/openjp2/tcd.c b/src/lib/openjp2/tcd.c index 31e05997..83b02c08 100644 --- a/src/lib/openjp2/tcd.c +++ b/src/lib/openjp2/tcd.c @@ -1989,6 +1989,7 @@ OPJ_BOOL opj_tcd_t1_encode ( opj_tcd_t *p_tcd ) { opj_t1_t * l_t1; const OPJ_FLOAT64 * l_mct_norms; + OPJ_UINT32 l_mct_numcomps = 0U; opj_tcp_t * l_tcp = p_tcd->tcp; l_t1 = opj_t1_create(OPJ_TRUE); @@ -1997,6 +1998,7 @@ OPJ_BOOL opj_tcd_t1_encode ( opj_tcd_t *p_tcd ) } if (l_tcp->mct == 1) { + l_mct_numcomps = 3U; /* irreversible encoding */ if (l_tcp->tccps->qmfbid == 0) { l_mct_norms = opj_mct_get_mct_norms_real(); @@ -2006,10 +2008,11 @@ OPJ_BOOL opj_tcd_t1_encode ( opj_tcd_t *p_tcd ) } } else { + l_mct_numcomps = p_tcd->image->numcomps; l_mct_norms = (const OPJ_FLOAT64 *) (l_tcp->mct_norms); } - if (! opj_t1_encode_cblks(l_t1, p_tcd->tcd_image->tiles , l_tcp, l_mct_norms)) { + if (! opj_t1_encode_cblks(l_t1, p_tcd->tcd_image->tiles , l_tcp, l_mct_norms, l_mct_numcomps)) { opj_t1_destroy(l_t1); return OPJ_FALSE; } |
