Commit b3777b2c authored by Arttu Ylä-Outinen's avatar Arttu Ylä-Outinen

libkvazaar: Update to work with the latest version

Function encoder_encode in Kvazaar API was changed to have new output
parameters: source picture and frame info. Frame info is used to set the
keyframe flag and source picture is ignored.
Signed-off-by: 's avatarArttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
parent ce787290
...@@ -137,8 +137,11 @@ static int libkvazaar_encode(AVCodecContext *avctx, ...@@ -137,8 +137,11 @@ static int libkvazaar_encode(AVCodecContext *avctx,
{ {
int retval = 0; int retval = 0;
kvz_picture *img_in = NULL; kvz_picture *img_in = NULL;
kvz_data_chunk *data_out = NULL; kvz_data_chunk *data_out = NULL;
uint32_t len_out = 0; uint32_t len_out = 0;
kvz_frame_info frame_info;
LibkvazaarContext *ctx = avctx->priv_data; LibkvazaarContext *ctx = avctx->priv_data;
*got_packet_ptr = 0; *got_packet_ptr = 0;
...@@ -173,7 +176,10 @@ static int libkvazaar_encode(AVCodecContext *avctx, ...@@ -173,7 +176,10 @@ static int libkvazaar_encode(AVCodecContext *avctx,
} }
} }
if (!ctx->api->encoder_encode(ctx->encoder, img_in, &data_out, &len_out, NULL)) { if (!ctx->api->encoder_encode(ctx->encoder, img_in,
&data_out, &len_out,
NULL, NULL,
&frame_info)) {
av_log(avctx, AV_LOG_ERROR, "Failed to encode frame.\n"); av_log(avctx, AV_LOG_ERROR, "Failed to encode frame.\n");
retval = AVERROR_EXTERNAL; retval = AVERROR_EXTERNAL;
goto done; goto done;
...@@ -198,6 +204,14 @@ static int libkvazaar_encode(AVCodecContext *avctx, ...@@ -198,6 +204,14 @@ static int libkvazaar_encode(AVCodecContext *avctx,
ctx->api->chunk_free(data_out); ctx->api->chunk_free(data_out);
data_out = NULL; data_out = NULL;
avpkt->flags = 0;
// IRAP VCL NAL unit types span the range
// [BLA_W_LP (16), RSV_IRAP_VCL23 (23)].
if (frame_info.nal_unit_type >= KVZ_NAL_BLA_W_LP &&
frame_info.nal_unit_type <= KVZ_NAL_RSV_IRAP_VCL23) {
avpkt->flags |= AV_PKT_FLAG_KEY;
}
} }
done: done:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment