Revert "avcodec/decode: copy the output parameters from the last bsf in the chain...
authorJames Almer <jamrial@gmail.com>
Wed, 12 Sep 2018 18:01:14 +0000 (15:01 -0300)
committerJames Almer <jamrial@gmail.com>
Wed, 24 Oct 2018 19:43:33 +0000 (16:43 -0300)
This reverts commit f631c328e680a3dd491936b92f69970c20cdcfc7.

The avcodec_parameters_to_context() call was freeing and reallocating
AVCodecContext->extradata, essentially taking ownership of it, which according
to the doxy is user owned. This is an API break and has produced crashes in
some library users like Firefox[1].

Revert until a better solution is found to internally propagate the filtered
extradata back into the decoder context, or a decision is made to change the
API.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1486080

Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/decode.c

index 4607e9f..2e82f6b 100644 (file)
@@ -281,10 +281,6 @@ int ff_decode_bsfs_init(AVCodecContext *avctx)
             bsfs_str++;
     }
 
             bsfs_str++;
     }
 
-    ret = avcodec_parameters_to_context(avctx, s->bsfs[s->nb_bsfs - 1]->par_out);
-    if (ret < 0)
-        return ret;
-
     return 0;
 fail:
     ff_decode_bsfs_uninit(avctx);
     return 0;
 fail:
     ff_decode_bsfs_uninit(avctx);