[FFmpeg-cvslog] r20691 - in trunk/libavcodec: mpegvideo.h rv10.c
michael
subversion
Tue Dec 1 23:30:03 CET 2009
Author: michael
Date: Tue Dec 1 23:30:03 2009
New Revision: 20691
Log:
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)
Modified:
trunk/libavcodec/mpegvideo.h
trunk/libavcodec/rv10.c
Modified: trunk/libavcodec/mpegvideo.h
==============================================================================
--- trunk/libavcodec/mpegvideo.h Tue Dec 1 22:10:37 2009 (r20690)
+++ trunk/libavcodec/mpegvideo.h Tue Dec 1 23:30:03 2009 (r20691)
@@ -571,6 +571,7 @@ typedef struct MpegEncContext {
/* 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;
Modified: trunk/libavcodec/rv10.c
==============================================================================
--- trunk/libavcodec/rv10.c Tue Dec 1 22:10:37 2009 (r20690)
+++ trunk/libavcodec/rv10.c Tue Dec 1 23:30:03 2009 (r20691)
@@ -362,8 +362,8 @@ static int rv20_decode_picture_header(Mp
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 @@ static av_cold int rv10_decode_init(AVCo
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);
More information about the ffmpeg-cvslog
mailing list