Module: libav Branch: master Commit: a6e4ac40a62930d3c90f869990f96fedb9a5d654
Author: Kostya Shishkov <[email protected]> Committer: Kostya Shishkov <[email protected]> Date: Sat May 19 13:08:51 2012 +0200 indeo: track tile macroblock size --- libavcodec/ivi_common.c | 6 ++++++ libavcodec/ivi_common.h | 1 + 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/libavcodec/ivi_common.c b/libavcodec/ivi_common.c index b66dde5..581e7a5 100644 --- a/libavcodec/ivi_common.c +++ b/libavcodec/ivi_common.c @@ -287,6 +287,7 @@ av_cold int ff_ivi_init_tiles(IVIPlaneDesc *planes, int tile_width, int tile_hei for (x = 0; x < band->width; x += t_width) { tile->xpos = x; tile->ypos = y; + tile->mb_size = band->mb_size; tile->width = FFMIN(band->width - x, t_width); tile->height = FFMIN(band->height - y, t_height); tile->is_empty = tile->data_size = 0; @@ -670,6 +671,11 @@ static int decode_band(IVI45DecContext *ctx, int plane_num, for (t = 0; t < band->num_tiles; t++) { tile = &band->tiles[t]; + if (tile->mb_size != band->mb_size) { + av_log(avctx, AV_LOG_ERROR, "MB sizes mismatch: %d vs. %d\n", + band->mb_size, tile->mb_size); + return AVERROR_INVALIDDATA; + } tile->is_empty = get_bits1(&ctx->gb); if (tile->is_empty) { ff_ivi_process_empty_tile(avctx, band, tile, diff --git a/libavcodec/ivi_common.h b/libavcodec/ivi_common.h index d3edea0..6842d74 100644 --- a/libavcodec/ivi_common.h +++ b/libavcodec/ivi_common.h @@ -118,6 +118,7 @@ typedef struct { int ypos; int width; int height; + int mb_size; int is_empty; ///< = 1 if this tile doesn't contain any data int data_size; ///< size of the data in bytes int num_MBs; ///< number of macroblocks in this tile _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
