The size could not be specified, as is the case in RTP/SVQ3,
in which case they don't init at the right size, leading to
crashes later.
---
libavcodec/svq3.c | 19 ++++++++++---------
1 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c
index 1e4c962..bc0215e 100644
--- a/libavcodec/svq3.c
+++ b/libavcodec/svq3.c
@@ -804,20 +804,11 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx)
avctx->pix_fmt = avctx->codec->pix_fmts[0];
if (!s->context_initialized) {
- s->width = avctx->width;
- s->height = avctx->height;
h->halfpel_flag = 1;
h->thirdpel_flag = 1;
h->unknown_svq3_flag = 0;
h->chroma_qp[0] = h->chroma_qp[1] = 4;
- if (MPV_common_init(s) < 0)
- return -1;
-
- h->b_stride = 4*s->mb_width;
-
- ff_h264_alloc_tables(h);
-
/* prowl for the "SEQH" marker in the extradata */
extradata = (unsigned char *)avctx->extradata;
for (m = 0; m < avctx->extradata_size; m++) {
@@ -904,6 +895,16 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx)
#endif
}
}
+
+ s->width = avctx->width;
+ s->height = avctx->height;
+
+ if (MPV_common_init(s) < 0)
+ return -1;
+
+ h->b_stride = 4*s->mb_width;
+
+ ff_h264_alloc_tables(h);
}
return 0;
--
1.7.4.4
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel