mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/rv30: fix switching back to the original resolution
Fixes part of Ticket1388 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
d3eb317b86
commit
7f769ae41e
@ -67,6 +67,9 @@ static int rv30_parse_slice_header(RV34DecContext *r, GetBitContext *gb, SliceIn
|
||||
|
||||
w = r->s.avctx->extradata[6 + rpr*2] << 2;
|
||||
h = r->s.avctx->extradata[7 + rpr*2] << 2;
|
||||
} else {
|
||||
w = r->orig_width;
|
||||
h = r->orig_height;
|
||||
}
|
||||
si->width = w;
|
||||
si->height = h;
|
||||
@ -259,6 +262,9 @@ static av_cold int rv30_decode_init(AVCodecContext *avctx)
|
||||
RV34DecContext *r = avctx->priv_data;
|
||||
int ret;
|
||||
|
||||
r->orig_width = avctx->coded_width;
|
||||
r->orig_height = avctx->coded_height;
|
||||
|
||||
if (avctx->extradata_size < 2) {
|
||||
av_log(avctx, AV_LOG_ERROR, "Extradata is too small.\n");
|
||||
return AVERROR(EINVAL);
|
||||
|
@ -109,6 +109,8 @@ typedef struct RV34DecContext{
|
||||
int weight1, weight2; ///< B frame distance fractions (0.14) used in motion compensation
|
||||
int mv_weight1, mv_weight2;
|
||||
|
||||
int orig_width, orig_height;
|
||||
|
||||
uint16_t *cbp_luma; ///< CBP values for luma subblocks
|
||||
uint8_t *cbp_chroma; ///< CBP values for chroma subblocks
|
||||
uint16_t *deblock_coefs; ///< deblock coefficients for each macroblock
|
||||
|
Loading…
Reference in New Issue
Block a user