return 0;
if (s->height != s1->height || s->width != s1->width) {
- ff_MPV_common_end(s);
s->height = s1->height;
s->width = s1->width;
- if ((err = ff_MPV_common_init(s)) < 0)
+ if ((err = ff_MPV_common_frame_size_change(s)) < 0)
return err;
if ((err = rv34_decoder_realloc(r)) < 0)
return err;
/* first slice */
if (si.start == 0) {
if (s->mb_num_left > 0) {
- av_log(avctx, AV_LOG_ERROR, "New frame but still %d MB left.",
+ av_log(avctx, AV_LOG_ERROR, "New frame but still %d MB left.\n",
s->mb_num_left);
ff_er_frame_end(s);
ff_MPV_frame_end(s);
if (s->width != si.width || s->height != si.height) {
int err;
- if (HAVE_THREADS &&
- (s->avctx->active_thread_type & FF_THREAD_FRAME)) {
- av_log_missing_feature(s->avctx, "Width/height changing with "
- "frame threading is", 0);
- return AVERROR_PATCHWELCOME;
- }
-
av_log(s->avctx, AV_LOG_WARNING, "Changing dimensions to %dx%d\n",
si.width, si.height);
- ff_MPV_common_end(s);
+
s->width = si.width;
s->height = si.height;
avcodec_set_dimensions(s->avctx, s->width, s->height);
- if ((err = ff_MPV_common_init(s)) < 0)
+ if ((err = ff_MPV_common_frame_size_change(s)) < 0)
return err;
if ((err = rv34_decoder_realloc(r)) < 0)
return err;