summaryrefslogtreecommitdiff
path: root/libavcodec/mpeg12.c
diff options
context:
space:
mode:
authorHeikki Lindholm <holindho@cs.helsinki.fi>2007-05-02 08:18:28 +0000
committerBenoit Fouet <benoit.fouet@free.fr>2007-05-02 08:18:28 +0000
commit29644cb504eee88bd40f95abaa392047946c6066 (patch)
tree134e1a4952a66cf27d636d780c0cc0c6dad7ff84 /libavcodec/mpeg12.c
parentf52a02be352fe16bac8f9ab13a7ea927e8f41bf9 (diff)
make mpeg decoder handle mid-stream changes in resolution
patch by Heikki Lindholm holindho at cs helsinki fi original thread: [Ffmpeg-devel] [PATCH] fix mid-stream resolution changes date: Sat Mar 31 13:52:50 CEST 2007 Originally committed as revision 8865 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpeg12.c')
-rw-r--r--libavcodec/mpeg12.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c
index d8809551f1..901dd24116 100644
--- a/libavcodec/mpeg12.c
+++ b/libavcodec/mpeg12.c
@@ -2084,6 +2084,7 @@ typedef struct Mpeg1Context {
int slice_count;
int swap_uv;//indicate VCR2
int save_aspect_info;
+ int save_width, save_height;
AVRational frame_rate_ext; ///< MPEG-2 specific framerate modificator
} Mpeg1Context;
@@ -2138,6 +2139,8 @@ static int mpeg_decode_postinit(AVCodecContext *avctx){
(s1->mpeg_enc_ctx_allocated == 0)||
avctx->coded_width != s->width ||
avctx->coded_height != s->height||
+ s1->save_width != s->width ||
+ s1->save_height != s->height ||
s1->save_aspect_info != s->aspect_ratio_info||
0)
{
@@ -2155,6 +2158,8 @@ static int mpeg_decode_postinit(AVCodecContext *avctx){
avcodec_set_dimensions(avctx, s->width, s->height);
avctx->bit_rate = s->bit_rate;
s1->save_aspect_info = s->aspect_ratio_info;
+ s1->save_width = s->width;
+ s1->save_height = s->height;
//low_delay may be forced, in this case we will have B frames
//that behave like P frames