From b3777b2c2eb5d04386992c0388985914d5bbebba Mon Sep 17 00:00:00 2001 From: Arttu Ylä-Outinen Date: Mon, 28 Sep 2015 10:55:14 +0300 Subject: libkvazaar: Update to work with the latest version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: Arttu Ylä-Outinen --- libavcodec/libkvazaar.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'libavcodec') diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c index 9fb5be7c79..7430e0ab7b 100644 --- a/libavcodec/libkvazaar.c +++ b/libavcodec/libkvazaar.c @@ -137,8 +137,11 @@ static int libkvazaar_encode(AVCodecContext *avctx, { int retval = 0; kvz_picture *img_in = NULL; + kvz_data_chunk *data_out = NULL; uint32_t len_out = 0; + kvz_frame_info frame_info; + LibkvazaarContext *ctx = avctx->priv_data; *got_packet_ptr = 0; @@ -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"); retval = AVERROR_EXTERNAL; goto done; @@ -198,6 +204,14 @@ static int libkvazaar_encode(AVCodecContext *avctx, ctx->api->chunk_free(data_out); 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: -- cgit v1.2.3