OLD | NEW |
1 /* | 1 /* |
2 * The copyright in this software is being made available under the 2-clauses | 2 * The copyright in this software is being made available under the 2-clauses |
3 * BSD License, included below. This software may be subject to other third | 3 * BSD License, included below. This software may be subject to other third |
4 * party and contributor rights, including patent rights, and no such rights | 4 * party and contributor rights, including patent rights, and no such rights |
5 * are granted under this license. | 5 * are granted under this license. |
6 * | 6 * |
7 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium | 7 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium |
8 * Copyright (c) 2002-2014, Professor Benoit Macq | 8 * Copyright (c) 2002-2014, Professor Benoit Macq |
9 * Copyright (c) 2001-2003, David Janssens | 9 * Copyright (c) 2001-2003, David Janssens |
10 * Copyright (c) 2002-2003, Yannick Verschueren | 10 * Copyright (c) 2002-2003, Yannick Verschueren |
(...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
686 const opj_tcp_t *tcp = 00; | 686 const opj_tcp_t *tcp = 00; |
687 const opj_tccp_t * l_tccp = 00; | 687 const opj_tccp_t * l_tccp = 00; |
688 const opj_image_comp_t * l_img_comp = 00; | 688 const opj_image_comp_t * l_img_comp = 00; |
689 | 689 |
690 /* to store l_dx, l_dy, w and h for each resolution and component.*/ | 690 /* to store l_dx, l_dy, w and h for each resolution and component.*/ |
691 OPJ_UINT32 * lResolutionPtr; | 691 OPJ_UINT32 * lResolutionPtr; |
692 | 692 |
693 /* position in x and y of tile*/ | 693 /* position in x and y of tile*/ |
694 OPJ_UINT32 p, q; | 694 OPJ_UINT32 p, q; |
695 | 695 |
| 696 /* non-corrected (in regard to image offset) tile offset */ |
| 697 OPJ_UINT32 l_tx0, l_ty0; |
| 698 |
696 /* preconditions in debug*/ | 699 /* preconditions in debug*/ |
697 assert(p_cp != 00); | 700 assert(p_cp != 00); |
698 assert(p_image != 00); | 701 assert(p_image != 00); |
699 assert(tileno < p_cp->tw * p_cp->th); | 702 assert(tileno < p_cp->tw * p_cp->th); |
700 | 703 |
701 /* initializations*/ | 704 /* initializations*/ |
702 tcp = &p_cp->tcps [tileno]; | 705 tcp = &p_cp->tcps [tileno]; |
703 l_tccp = tcp->tccps; | 706 l_tccp = tcp->tccps; |
704 l_img_comp = p_image->comps; | 707 l_img_comp = p_image->comps; |
705 | 708 |
706 /* position in x and y of tile*/ | 709 /* position in x and y of tile*/ |
707 p = tileno % p_cp->tw; | 710 p = tileno % p_cp->tw; |
708 q = tileno / p_cp->tw; | 711 q = tileno / p_cp->tw; |
709 | 712 |
710 /* here calculation of tx0, tx1, ty0, ty1, maxprec, l_dx and l_dy */ | 713 /* here calculation of tx0, tx1, ty0, ty1, maxprec, l_dx and l_dy */ |
711 » *p_tx0 = opj_int_max((OPJ_INT32)(p_cp->tx0 + p * p_cp->tdx), (OPJ_INT32)
p_image->x0); | 714 » l_tx0 = p_cp->tx0 + p * p_cp->tdx; /* can't be greater than p_image->x1
so won't overflow */ |
712 » *p_tx1 = opj_int_min((OPJ_INT32)(p_cp->tx0 + (p + 1) * p_cp->tdx), (OPJ_
INT32)p_image->x1); | 715 » *p_tx0 = (OPJ_INT32)opj_uint_max(l_tx0, p_image->x0); |
713 » *p_ty0 = opj_int_max((OPJ_INT32)(p_cp->ty0 + q * p_cp->tdy), (OPJ_INT32)
p_image->y0); | 716 » *p_tx1 = (OPJ_INT32)opj_uint_min(opj_uint_adds(l_tx0, p_cp->tdx), p_imag
e->x1); |
714 » *p_ty1 = opj_int_min((OPJ_INT32)(p_cp->ty0 + (q + 1) * p_cp->tdy), (OPJ_
INT32)p_image->y1); | 717 » l_ty0 = p_cp->ty0 + q * p_cp->tdy; /* can't be greater than p_image->y1
so won't overflow */ |
| 718 » *p_ty0 = (OPJ_INT32)opj_uint_max(l_ty0, p_image->y0); |
| 719 » *p_ty1 = (OPJ_INT32)opj_uint_min(opj_uint_adds(l_ty0, p_cp->tdy), p_imag
e->y1); |
715 | 720 |
716 /* max precision and resolution is 0 (can only grow)*/ | 721 /* max precision and resolution is 0 (can only grow)*/ |
717 *p_max_prec = 0; | 722 *p_max_prec = 0; |
718 *p_max_res = 0; | 723 *p_max_res = 0; |
719 | 724 |
720 /* take the largest value for dx_min and dy_min*/ | 725 /* take the largest value for dx_min and dy_min*/ |
721 *p_dx_min = 0x7fffffff; | 726 *p_dx_min = 0x7fffffff; |
722 *p_dy_min = 0x7fffffff; | 727 *p_dy_min = 0x7fffffff; |
723 | 728 |
724 for (compno = 0; compno < p_image->numcomps; ++compno) { | 729 for (compno = 0; compno < p_image->numcomps; ++compno) { |
(...skipping 1138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1863 case OPJ_PCRL: | 1868 case OPJ_PCRL: |
1864 return opj_pi_next_pcrl(pi); | 1869 return opj_pi_next_pcrl(pi); |
1865 case OPJ_CPRL: | 1870 case OPJ_CPRL: |
1866 return opj_pi_next_cprl(pi); | 1871 return opj_pi_next_cprl(pi); |
1867 case OPJ_PROG_UNKNOWN: | 1872 case OPJ_PROG_UNKNOWN: |
1868 return OPJ_FALSE; | 1873 return OPJ_FALSE; |
1869 } | 1874 } |
1870 | 1875 |
1871 return OPJ_FALSE; | 1876 return OPJ_FALSE; |
1872 } | 1877 } |
OLD | NEW |