#include "libavutil/avassert.h"
#include "libavutil/common.h"
+#include "libavutil/internal.h"
#include "libavutil/log.h"
#include "libavutil/pixdesc.h"
#include "encode.h"
#include "avcodec.h"
-const AVCodecHWConfigInternal *ff_vaapi_encode_hw_configs[] = {
+const AVCodecHWConfigInternal *const ff_vaapi_encode_hw_configs[] = {
HW_CONFIG_ENCODER_FRAMES(VAAPI, VAAPI),
NULL,
};
fail:
for(i = 0; i < pic->nb_param_buffers; i++)
vaDestroyBuffer(ctx->hwctx->display, pic->param_buffers[i]);
- for (i = 0; i < pic->nb_slices; i++) {
- if (pic->slices) {
- av_freep(&pic->slices[i].priv_data);
+ if (pic->slices) {
+ for (i = 0; i < pic->nb_slices; i++)
av_freep(&pic->slices[i].codec_slice_params);
- }
}
fail_at_end:
av_freep(&pic->codec_picture_params);
for (buf = buf_list; buf; buf = buf->next)
total_size += buf->size;
- err = av_new_packet(pkt, total_size);
+ err = ff_get_encode_buffer(avctx, pkt, total_size, 0);
ptr = pkt->data;
if (err < 0)
if (pic->encode_issued)
vaapi_encode_discard(avctx, pic);
- for (i = 0; i < pic->nb_slices; i++) {
- if (pic->slices) {
- av_freep(&pic->slices[i].priv_data);
+ if (pic->slices) {
+ for (i = 0; i < pic->nb_slices; i++)
av_freep(&pic->slices[i].codec_slice_params);
- }
}
av_freep(&pic->codec_picture_params);
req_slices = avctx->slices;
}
if (slice_structure & VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS ||
-#if VA_CHECK_VERSION(1, 8, 0)
- slice_structure & VA_ENC_SLICE_STRUCTURE_EQUAL_MULTI_ROWS ||
-#endif
slice_structure & VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS) {
ctx->nb_slices = req_slices;
ctx->slice_size = ctx->slice_block_rows / ctx->nb_slices;
}
static AVBufferRef *vaapi_encode_alloc_output_buffer(void *opaque,
- int size)
+ size_t size)
{
AVCodecContext *avctx = opaque;
VAAPIEncodeContext *ctx = avctx->priv_data;