+ if (!(avctx->flags2 & CODEC_FLAG2_IGNORE_CROP)) {
+ avctx->width = visible_width;
+ avctx->height = visible_height;
+ // translate offsets from theora axis ([0,0] lower left)
+ // to normal axis ([0,0] upper left)
+ s->offset_x = offset_x;
+ s->offset_y = s->height - visible_height - offset_y;
+
+ if ((s->offset_x & 0x1F) && !(avctx->flags & CODEC_FLAG_UNALIGNED)) {
+ s->offset_x &= ~0x1F;
+ if (!s->offset_x_warned) {
+ s->offset_x_warned = 1;
+ av_log(avctx, AV_LOG_WARNING, "Reducing offset_x from %d to %d"
+ "chroma samples to preserve alignment.\n",
+ offset_x, s->offset_x);
+ }
+ }
+ }