[FFmpeg-cvslog] r22897 - trunk/libavcodec/vp3.c
conrad
subversion
Sat Apr 17 04:04:35 CEST 2010
Author: conrad
Date: Sat Apr 17 04:04:35 2010
New Revision: 22897
Log:
vp3: Don't crop if there's a left/top offset, it's wrong
Fixes issue1834
Modified:
trunk/libavcodec/vp3.c
Modified: trunk/libavcodec/vp3.c
==============================================================================
--- trunk/libavcodec/vp3.c Sat Apr 17 04:04:30 2010 (r22896)
+++ trunk/libavcodec/vp3.c Sat Apr 17 04:04:35 2010 (r22897)
@@ -1952,6 +1952,7 @@ static int theora_decode_header(AVCodecC
{
Vp3DecodeContext *s = avctx->priv_data;
int visible_width, visible_height, colorspace;
+ int offset_x = 0, offset_y = 0;
s->theora = get_bits_long(gb, 24);
av_log(avctx, AV_LOG_DEBUG, "Theora bitstream version %X\n", s->theora);
@@ -1977,8 +1978,8 @@ static int theora_decode_header(AVCodecC
visible_width = get_bits_long(gb, 24);
visible_height = get_bits_long(gb, 24);
- skip_bits(gb, 8); /* offset x */
- skip_bits(gb, 8); /* offset y */
+ offset_x = get_bits(gb, 8); /* offset x */
+ offset_y = get_bits(gb, 8); /* offset y, from bottom */
}
skip_bits(gb, 32); /* fps numerator */
@@ -2003,7 +2004,8 @@ static int theora_decode_header(AVCodecC
// align_get_bits(gb);
if ( visible_width <= s->width && visible_width > s->width-16
- && visible_height <= s->height && visible_height > s->height-16)
+ && visible_height <= s->height && visible_height > s->height-16
+ && !offset_x && (offset_y == s->height - visible_height))
avcodec_set_dimensions(avctx, visible_width, visible_height);
else
avcodec_set_dimensions(avctx, s->width, s->height);
More information about the ffmpeg-cvslog
mailing list