mirror of https://git.ffmpeg.org/ffmpeg.git
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:
commit
437bdf482e
|
@ -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,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue