mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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 <arttu.yla-outinen@tut.fi>
This commit is contained in:
parent
ce78729033
commit
b3777b2c2e
@ -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,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
|||||||
|
|
||||||
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:
|
||||||
|
Loading…
Reference in New Issue
Block a user