Merge commit '18db1286b04557aa2d2df7efbcb65ae825d5a469'

* commit '18db1286b04557aa2d2df7efbcb65ae825d5a469':
  libxvid: Make codec use the init-cleanup flag and mark it as init-thread-safe

Conflicts:
	libavcodec/libxvid.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2015-04-24 22:48:29 +02:00
commit 437bdf482e
1 changed files with 6 additions and 3 deletions

View File

@ -826,10 +826,12 @@ static av_cold int xvid_encode_close(AVCodecContext *avctx)
{ {
struct xvid_context *x = avctx->priv_data; struct xvid_context *x = avctx->priv_data;
if(x->encoder_handle) if (x->encoder_handle) {
xvid_encore(x->encoder_handle, XVID_ENC_DESTROY, NULL, NULL); xvid_encore(x->encoder_handle, XVID_ENC_DESTROY, NULL, NULL);
x->encoder_handle = NULL; x->encoder_handle = NULL;
}
av_frame_free(&avctx->coded_frame);
av_freep(&avctx->extradata); av_freep(&avctx->extradata);
if (x->twopassbuffer) { if (x->twopassbuffer) {
av_freep(&x->twopassbuffer); av_freep(&x->twopassbuffer);
@ -844,7 +846,6 @@ static av_cold int xvid_encode_close(AVCodecContext *avctx)
av_freep(&x->twopassfile); av_freep(&x->twopassfile);
av_freep(&x->intra_matrix); av_freep(&x->intra_matrix);
av_freep(&x->inter_matrix); av_freep(&x->inter_matrix);
av_frame_free(&avctx->coded_frame);
return 0; return 0;
} }
@ -881,4 +882,6 @@ AVCodec ff_libxvid_encoder = {
.close = xvid_encode_close, .close = xvid_encode_close,
.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
.priv_class = &xvid_class, .priv_class = &xvid_class,
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE |
FF_CODEC_CAP_INIT_CLEANUP,
}; };