From: Arttu Ylä-Outinen Date: Mon, 28 Sep 2015 07:55:14 +0000 (+0300) Subject: libkvazaar: Update to work with the latest version X-Git-Tag: android-x86-7.1-r1~8708 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b3777b2c2eb5d04386992c0388985914d5bbebba;p=android-x86%2Fexternal-ffmpeg.git 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: Arttu Ylä-Outinen --- 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: