summaryrefslogtreecommitdiffstats
path: root/libavcodec/libxavs.c
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2015-07-15 18:41:22 +0100
committerVittorio Giovara <vittorio.giovara@gmail.com>2015-07-20 15:06:50 +0100
commit40cf1bbacc6220a0aa6bed5c331871d43f9ce370 (patch)
tree8b9e2c9d0b0f73dd6d8f18840be3c66b3c0e80a9 /libavcodec/libxavs.c
parent5d3addb937946eca5391e40b5e6308e74ac6f77b (diff)
downloadffmpeg-streaming-40cf1bbacc6220a0aa6bed5c331871d43f9ce370.zip
ffmpeg-streaming-40cf1bbacc6220a0aa6bed5c331871d43f9ce370.tar.gz
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 <vittorio.giovara@gmail.com>
Diffstat (limited to 'libavcodec/libxavs.c')
-rw-r--r--libavcodec/libxavs.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libavcodec/libxavs.c b/libavcodec/libxavs.c
index 0cabe63..446e233 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)
OpenPOWER on IntegriCloud