diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-04-04 21:30:33 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-04-08 01:16:25 +0200 |
commit | 8ffd3ef9d94f33b411348c594a49d994b55c9550 (patch) | |
tree | c220779732dfadcfed6e2983d8b8b7212a11b894 | |
parent | 9bab7de175d7c942a6ebddae6ba0cacdf360827e (diff) | |
download | ffmpeg-8ffd3ef9d94f33b411348c594a49d994b55c9550.tar.gz |
avcodec/rv10: Don't presume context to be initialized
In case of resolution changes rv20_decode_picture_header() closes and
reopens its MpegEncContext; it checks the latter for errors, yet when
an error happens, it might happen that no new attempt at
reinitialization is performed when decoding the next frame; this leads
to crashes lateron.
This commit fixes this by making sure that initialization will always
be attempted if the context is currently not initialized.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r-- | libavcodec/rv10.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c index 89b838ad15..bd70689cab 100644 --- a/libavcodec/rv10.c +++ b/libavcodec/rv10.c @@ -226,7 +226,7 @@ static int rv20_decode_picture_header(RVDecContext *rv) new_w = rv->orig_width; new_h = rv->orig_height; } - if (new_w != s->width || new_h != s->height) { + if (new_w != s->width || new_h != s->height || !s->context_initialized) { AVRational old_aspect = s->avctx->sample_aspect_ratio; av_log(s->avctx, AV_LOG_DEBUG, "attempting to change resolution to %dx%d\n", new_w, new_h); |