From 40cf1bbacc6220a0aa6bed5c331871d43f9ce370 Mon Sep 17 00:00:00 2001 From: Vittorio Giovara Date: Wed, 15 Jul 2015 18:41:22 +0100 Subject: Deprecate avctx.coded_frame The rationale is that coded_frame was only used to communicate key_frame, pict_type and quality to the caller, as well as a few other random fields, in a non predictable, let alone consistent way. There was agreement that there was no use case for coded_frame, as it is a full-sized AVFrame container used for just 2-3 int-sized properties, which shouldn't even belong into the AVCodecContext in the first place. The appropriate AVPacket flag can be used instead of key_frame, while quality is exported with the new AVPacketSideData quality factor. There is no replacement for the other fields as they were unreliable, mishandled or just not used at all. Signed-off-by: Vittorio Giovara --- libavcodec/libxavs.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'libavcodec/libxavs.c') diff --git a/libavcodec/libxavs.c b/libavcodec/libxavs.c index 0cabe63f7f..446e2336eb 100644 --- a/libavcodec/libxavs.c +++ b/libavcodec/libxavs.c @@ -161,7 +161,11 @@ static int XAVS_frame(AVCodecContext *avctx, AVPacket *pkt, return 0; } +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS avctx->coded_frame->pts = pic_out.i_pts; +FF_ENABLE_DEPRECATION_WARNINGS +#endif pkt->pts = pic_out.i_pts; if (avctx->has_b_frames) { if (!x4->out_frame_count) @@ -171,6 +175,8 @@ static int XAVS_frame(AVCodecContext *avctx, AVPacket *pkt, } else pkt->dts = pkt->pts; +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS switch (pic_out.i_type) { case XAVS_TYPE_IDR: case XAVS_TYPE_I: @@ -184,15 +190,25 @@ static int XAVS_frame(AVCodecContext *avctx, AVPacket *pkt, avctx->coded_frame->pict_type = AV_PICTURE_TYPE_B; break; } +FF_ENABLE_DEPRECATION_WARNINGS +#endif /* There is no IDR frame in AVS JiZhun */ /* Sequence header is used as a flag */ if (pic_out.i_type == XAVS_TYPE_I) { +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS avctx->coded_frame->key_frame = 1; +FF_ENABLE_DEPRECATION_WARNINGS +#endif pkt->flags |= AV_PKT_FLAG_KEY; } +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS avctx->coded_frame->quality = (pic_out.i_qpplus1 - 1) * FF_QP2LAMBDA; +FF_ENABLE_DEPRECATION_WARNINGS +#endif sd = av_packet_new_side_data(pkt, AV_PKT_DATA_QUALITY_FACTOR, sizeof(int)); if (!sd) -- cgit v1.2.3