mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-23 11:19:55 +00:00
avcodec: Add FF_CODEC_CAP_INIT_CLEANUP
then ff_mpv_encode_end() will be unnecessary in ff_mpv_encode_init() if it's failed. The FF_CODEC_CAP_INIT_CLEANUP flag is need for single thread, For multithread, it'll be cleanup still by AV_CODEC_CAP_FRAME_THREADS flag if have. Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
This commit is contained in:
parent
6124cbdcfa
commit
467d9e27e0
@ -107,6 +107,7 @@ AVCodec ff_flv_encoder = {
|
||||
.init = ff_mpv_encode_init,
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
|
||||
AV_PIX_FMT_NONE},
|
||||
.priv_class = &flv_class,
|
||||
|
@ -394,6 +394,7 @@ AVCodec ff_h261_encoder = {
|
||||
.init = ff_mpv_encode_init,
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
|
||||
AV_PIX_FMT_NONE },
|
||||
.priv_class = &h261_class,
|
||||
|
@ -415,6 +415,7 @@ AVCodec ff_mjpeg_encoder = {
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]) {
|
||||
AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_NONE
|
||||
},
|
||||
@ -440,6 +441,7 @@ AVCodec ff_amv_encoder = {
|
||||
.init = ff_mpv_encode_init,
|
||||
.encode2 = amv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]) {
|
||||
AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_NONE
|
||||
},
|
||||
|
@ -1399,5 +1399,6 @@ AVCodec ff_mpeg4_encoder = {
|
||||
.close = ff_mpv_encode_end,
|
||||
.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
|
||||
.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SLICE_THREADS,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.priv_class = &mpeg4enc_class,
|
||||
};
|
||||
|
@ -1060,7 +1060,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
||||
|
||||
return 0;
|
||||
fail:
|
||||
ff_mpv_encode_end(avctx);
|
||||
return AVERROR_UNKNOWN;
|
||||
}
|
||||
|
||||
@ -4743,6 +4742,7 @@ AVCodec ff_h263_encoder = {
|
||||
.init = ff_mpv_encode_init,
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts= (const enum AVPixelFormat[]){AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE},
|
||||
.priv_class = &h263_class,
|
||||
};
|
||||
@ -4772,6 +4772,7 @@ AVCodec ff_h263p_encoder = {
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.capabilities = AV_CODEC_CAP_SLICE_THREADS,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
|
||||
.priv_class = &h263p_class,
|
||||
};
|
||||
@ -4792,6 +4793,7 @@ AVCodec ff_msmpeg4v2_encoder = {
|
||||
.init = ff_mpv_encode_init,
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
|
||||
.priv_class = &msmpeg4v2_class,
|
||||
};
|
||||
@ -4812,6 +4814,7 @@ AVCodec ff_msmpeg4v3_encoder = {
|
||||
.init = ff_mpv_encode_init,
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
|
||||
.priv_class = &msmpeg4v3_class,
|
||||
};
|
||||
@ -4832,6 +4835,7 @@ AVCodec ff_wmv1_encoder = {
|
||||
.init = ff_mpv_encode_init,
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
|
||||
.priv_class = &wmv1_class,
|
||||
};
|
||||
|
@ -79,6 +79,7 @@ AVCodec ff_rv10_encoder = {
|
||||
.init = ff_mpv_encode_init,
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
|
||||
.priv_class = &rv10_class,
|
||||
};
|
||||
|
@ -76,6 +76,7 @@ AVCodec ff_rv20_encoder = {
|
||||
.init = ff_mpv_encode_init,
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
|
||||
.priv_class = &rv20_class,
|
||||
};
|
||||
|
@ -231,6 +231,7 @@ AVCodec ff_wmv2_encoder = {
|
||||
.init = wmv2_encode_init,
|
||||
.encode2 = ff_mpv_encode_picture,
|
||||
.close = ff_mpv_encode_end,
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
|
||||
.pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P,
|
||||
AV_PIX_FMT_NONE },
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user