diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index e4f890f7f7..58239e0ab9 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -32,6 +32,7 @@ #include "internal.h" #include #include "atsc_a53.h" +#include "encode.h" #include "h264.h" #include "h264_sei.h" #include @@ -1978,7 +1979,7 @@ static int vtenc_cm_to_avpacket( sei_nalu_size + nalu_count * ((int)sizeof(start_code) - (int)length_code_size); - status = ff_alloc_packet2(avctx, pkt, out_buf_size, out_buf_size); + status = ff_get_encode_buffer(avctx, pkt, out_buf_size, 0); if (status < 0) return status; @@ -2021,7 +2022,6 @@ static int vtenc_cm_to_avpacket( time_base_num = avctx->time_base.num; pkt->pts = pts.value / time_base_num; pkt->dts = dts.value / time_base_num - dts_delta; - pkt->size = out_buf_size; return 0; } @@ -2668,12 +2668,12 @@ const AVCodec ff_h264_videotoolbox_encoder = { .long_name = NULL_IF_CONFIG_SMALL("VideoToolbox H.264 Encoder"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_H264, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, .priv_data_size = sizeof(VTEncContext), .pix_fmts = avc_pix_fmts, .init = vtenc_init, .encode2 = vtenc_frame, .close = vtenc_close, - .capabilities = AV_CODEC_CAP_DELAY, .priv_class = &h264_videotoolbox_class, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, @@ -2702,12 +2702,13 @@ const AVCodec ff_hevc_videotoolbox_encoder = { .long_name = NULL_IF_CONFIG_SMALL("VideoToolbox H.265 Encoder"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_HEVC, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_HARDWARE, .priv_data_size = sizeof(VTEncContext), .pix_fmts = hevc_pix_fmts, .init = vtenc_init, .encode2 = vtenc_frame, .close = vtenc_close, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HARDWARE, .priv_class = &hevc_videotoolbox_class, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,