Lines Matching defs:band
64 IVIBandDesc *band, *band1, *band2;
129 band = &ctx->planes[p].bands[i];
131 band->is_halfpel = get_bits1(&ctx->gb);
142 blk_size_changed = mb_size != band->mb_size || blk_size != band->blk_size;
144 band->mb_size = mb_size;
145 band->blk_size = blk_size;
153 /* select transform function and scan pattern according to plane and band number */
156 band->inv_transform = ff_ivi_inverse_slant_8x8;
157 band->dc_transform = ff_ivi_dc_slant_2d;
158 band->scan = ff_zigzag_direct;
159 band->transform_size = 8;
163 band->inv_transform = ff_ivi_row_slant8;
164 band->dc_transform = ff_ivi_dc_row_slant;
165 band->scan = ff_ivi_vertical_scan_8x8;
166 band->transform_size = 8;
170 band->inv_transform = ff_ivi_col_slant8;
171 band->dc_transform = ff_ivi_dc_col_slant;
172 band->scan = ff_ivi_horizontal_scan_8x8;
173 band->transform_size = 8;
177 band->inv_transform = ff_ivi_put_pixels_8x8;
178 band->dc_transform = ff_ivi_put_dc_pixel_8x8;
179 band->scan = ff_ivi_horizontal_scan_8x8;
180 band->transform_size = 8;
184 band->inv_transform = ff_ivi_inverse_slant_4x4;
185 band->dc_transform = ff_ivi_dc_slant_2d;
186 band->scan = ff_ivi_direct_scan_4x4;
187 band->transform_size = 4;
191 band->is_2d_trans = band->inv_transform == ff_ivi_inverse_slant_8x8 ||
192 band->inv_transform == ff_ivi_inverse_slant_4x4;
194 if (band->transform_size != band->blk_size) {
195 av_log(avctx, AV_LOG_ERROR, "transform and block size mismatch (%d != %d)\n", band->transform_size, band->blk_size);
199 /* select dequant matrix according to plane and band number */
206 if (band->blk_size == 8) {
211 band->intra_base = &ivi5_base_quant_8x8_intra[quant_mat][0];
212 band->inter_base = &ivi5_base_quant_8x8_inter[quant_mat][0];
213 band->intra_scale = &ivi5_scale_quant_8x8_intra[quant_mat][0];
214 band->inter_scale = &ivi5_scale_quant_8x8_inter[quant_mat][0];
216 band->intra_base = ivi5_base_quant_4x4_intra;
217 band->inter_base = ivi5_base_quant_4x4_inter;
218 band->intra_scale = ivi5_scale_quant_4x4_intra;
219 band->inter_scale = ivi5_scale_quant_4x4_inter;
376 * Decode Indeo5 band header.
379 * @param[in,out] band ptr to the band descriptor
383 static int decode_band_hdr(IVI45DecContext *ctx, IVIBandDesc *band,
392 band->is_empty = 1;
396 band->data_size = (ctx->frame_flags & 0x80) ? get_bits(&ctx->gb, 24) : 0;
398 band->inherit_mv = band_flags & 2;
399 band->inherit_qdelta = band_flags & 8;
400 band->qdelta_present = band_flags & 4;
401 if (!band->qdelta_present) band->inherit_qdelta = 1;
404 band->num_corr = 0; /* there are no corrections */
406 band->num_corr = get_bits(&ctx->gb, 8); /* get number of correction pairs */
407 if (band->num_corr > 61) {
409 band->num_corr);
414 for (i = 0; i < band->num_corr * 2; i++)
415 band->corr[i] = get_bits(&ctx->gb, 8);
418 /* select appropriate rvmap table for this band */
419 band->rvmap_sel = (band_flags & 0x40) ? get_bits(&ctx->gb, 3) : 8;
423 &band->blk_vlc, avctx);
427 band->checksum_present = get_bits1(&ctx->gb);
428 if (band->checksum_present)
429 band->checksum = get_bits(&ctx->gb, 16);
431 band->glob_quant = get_bits(&ctx->gb, 5);
450 * @param[in,out] band ptr to the band descriptor
455 static int decode_mb_info(IVI45DecContext *ctx, IVIBandDesc *band,
461 int row_offset = band->mb_size * band->pitch;
465 offs = tile->ypos * band->pitch + tile->xpos;
468 ((band->qdelta_present && band->inherit_qdelta) || band->inherit_mv))
471 if (tile->num_MBs != IVI_MBs_PER_TILE(tile->width, tile->height, band->mb_size)) {
473 tile->num_MBs, IVI_MBs_PER_TILE(tile->width, tile->height, band->mb_size));
478 mv_scale = (ctx->planes[0].bands[0].mb_size >> 3) - (band->mb_size >> 3);
481 for (y = tile->ypos; y < (tile->ypos + tile->height); y += band->mb_size) {
484 for (x = tile->xpos; x < (tile->xpos + tile->width); x += band->mb_size) {
498 if (!band->plane && !band->band_num && (ctx->frame_flags & 8)) {
505 if (band->inherit_mv && ref_mb){
516 if (band->inherit_mv && ref_mb) {
524 blks_per_mb = band->mb_size != band->blk_size ? 4 : 1;
528 if (band->qdelta_present) {
529 if (band->inherit_qdelta) {
531 } else if (mb->cbp || (!band->plane && !band->band_num &&
542 if (band->inherit_mv && ref_mb){
565 s= band->is_halfpel;
567 if ( x + (mb->mv_x >>s) + (y+ (mb->mv_y >>s))*band->pitch < 0 ||
568 x + ((mb->mv_x+s)>>s) + band->mb_size - 1
569 + (y+band->mb_size - 1 +((mb->mv_y+s)>>s))*band->pitch > band->bufsize - 1) {
577 mb_offset += band->mb_size;
654 there is only one band per plane (no scalability), only one tile (no local decoding)