# HG changeset patch # User michael # Date 1259706603 0 # Node ID b08c6f64a6c02e70335de9ef463b7bfb3926a9a5 # Parent 2ae4eb19665ab7539ebf0df616558aeaac788755 Store original width/height so that rv20 does not get stuck with some resolution. A sample file to show a difference is at issue833 (http://airfarce.com/video/000211fh.rm) diff -r 2ae4eb19665a -r b08c6f64a6c0 mpegvideo.h --- a/mpegvideo.h Tue Dec 01 21:10:37 2009 +0000 +++ b/mpegvideo.h Tue Dec 01 22:30:03 2009 +0000 @@ -571,6 +571,7 @@ /* RV10 specific */ int rv10_version; ///< RV10 version: 0 or 3 int rv10_first_dc_coded[3]; + int orig_width, orig_height; /* MJPEG specific */ struct MJpegContext *mjpeg_ctx; diff -r 2ae4eb19665a -r b08c6f64a6c0 rv10.c --- a/rv10.c Tue Dec 01 21:10:37 2009 +0000 +++ b/rv10.c Tue Dec 01 22:30:03 2009 +0000 @@ -362,8 +362,8 @@ new_w= 4*((uint8_t*)s->avctx->extradata)[6+2*f]; new_h= 4*((uint8_t*)s->avctx->extradata)[7+2*f]; }else{ - new_w= s->width; //FIXME wrong we of course must save the original in the context - new_h= s->height; + new_w= s->orig_width ; + new_h= s->orig_height; } if(new_w != s->width || new_h != s->height){ av_log(s->avctx, AV_LOG_DEBUG, "attempting to change resolution to %dx%d\n", new_w, new_h); @@ -453,8 +453,8 @@ s->out_format = FMT_H263; s->codec_id= avctx->codec_id; - s->width = avctx->coded_width; - s->height = avctx->coded_height; + s->orig_width = s->width = avctx->coded_width; + s->orig_height= s->height = avctx->coded_height; s->h263_long_vectors= ((uint8_t*)avctx->extradata)[3] & 1; avctx->sub_id= AV_RB32((uint8_t*)avctx->extradata + 4);