summaryrefslogtreecommitdiffstats
path: root/libavcodec
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
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')
-rw-r--r--libavcodec/a64multienc.c8
-rw-r--r--libavcodec/aliaspixenc.c4
-rw-r--r--libavcodec/asvenc.c4
-rw-r--r--libavcodec/avcodec.h6
-rw-r--r--libavcodec/bmpenc.c4
-rw-r--r--libavcodec/cljrenc.c4
-rw-r--r--libavcodec/dnxhdenc.c12
-rw-r--r--libavcodec/dpxenc.c4
-rw-r--r--libavcodec/dvenc.c4
-rw-r--r--libavcodec/ffv1enc.c8
-rw-r--r--libavcodec/flashsvenc.c8
-rw-r--r--libavcodec/gif.c4
-rw-r--r--libavcodec/huffyuvenc.c4
-rw-r--r--libavcodec/jpeglsenc.c4
-rw-r--r--libavcodec/lclenc.c4
-rw-r--r--libavcodec/libschroedingerenc.c8
-rw-r--r--libavcodec/libtheoraenc.c4
-rw-r--r--libavcodec/libvpxenc.c12
-rw-r--r--libavcodec/libx264.c8
-rw-r--r--libavcodec/libx265.c4
-rw-r--r--libavcodec/libxavs.c16
-rw-r--r--libavcodec/libxvid.c12
-rw-r--r--libavcodec/ljpegenc.c4
-rw-r--r--libavcodec/mpegvideo_enc.c4
-rw-r--r--libavcodec/nvenc.c4
-rw-r--r--libavcodec/pamenc.c4
-rw-r--r--libavcodec/pcxenc.c4
-rw-r--r--libavcodec/pngenc.c4
-rw-r--r--libavcodec/pnmenc.c4
-rw-r--r--libavcodec/proresenc.c4
-rw-r--r--libavcodec/pthread_frame.c4
-rw-r--r--libavcodec/qsvenc.c4
-rw-r--r--libavcodec/qtrleenc.c4
-rw-r--r--libavcodec/rawenc.c4
-rw-r--r--libavcodec/sgienc.c4
-rw-r--r--libavcodec/sunrastenc.c4
-rw-r--r--libavcodec/svq1enc.c4
-rw-r--r--libavcodec/targaenc.c4
-rw-r--r--libavcodec/tiffenc.c4
-rw-r--r--libavcodec/utils.c12
-rw-r--r--libavcodec/utvideoenc.c4
-rw-r--r--libavcodec/v210enc.c4
-rw-r--r--libavcodec/v410enc.c4
-rw-r--r--libavcodec/version.h5
-rw-r--r--libavcodec/xbmenc.c4
-rw-r--r--libavcodec/xwdenc.c4
-rw-r--r--libavcodec/zmbvenc.c4
47 files changed, 251 insertions, 4 deletions
diff --git a/libavcodec/a64multienc.c b/libavcodec/a64multienc.c
index 192adb5..e55383a 100644
--- a/libavcodec/a64multienc.c
+++ b/libavcodec/a64multienc.c
@@ -217,8 +217,12 @@ static av_cold int a64multi_encode_init(AVCodecContext *avctx)
AV_WB32(avctx->extradata, c->mc_lifetime);
AV_WB32(avctx->extradata + 16, INTERLACED);
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (!avctx->codec_tag)
avctx->codec_tag = AV_RL32("a64m");
@@ -289,8 +293,12 @@ static int a64multi_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
} else {
/* fill up mc_meta_charset with data until lifetime exceeds */
if (c->mc_frame_counter < c->mc_lifetime) {
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
to_meta_with_crop(avctx, pict, meta + 32000 * c->mc_frame_counter);
c->mc_frame_counter++;
if (c->next_pts == AV_NOPTS_VALUE)
diff --git a/libavcodec/aliaspixenc.c b/libavcodec/aliaspixenc.c
index 5e3bcb4..63016af 100644
--- a/libavcodec/aliaspixenc.c
+++ b/libavcodec/aliaspixenc.c
@@ -33,8 +33,12 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
int width, height, bits_pixel, i, j, length, ret;
uint8_t *in_buf, *buf;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
width = avctx->width;
height = avctx->height;
diff --git a/libavcodec/asvenc.c b/libavcodec/asvenc.c
index af0687a..3b0a4ac 100644
--- a/libavcodec/asvenc.c
+++ b/libavcodec/asvenc.c
@@ -282,8 +282,12 @@ static av_cold int encode_init(AVCodecContext *avctx)
int i;
const int scale = avctx->codec_id == AV_CODEC_ID_ASV1 ? 1 : 2;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
ff_asv_common_init(avctx);
ff_fdctdsp_init(&a->fdsp, avctx);
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index db077e9..290de70 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -2559,12 +2559,16 @@ typedef struct AVCodecContext {
attribute_deprecated int lowres;
#endif
+#if FF_API_CODED_FRAME
/**
* the picture in the bitstream
* - encoding: Set by libavcodec.
* - decoding: unused
+ *
+ * @deprecated use the quality factor packet side data instead
*/
- AVFrame *coded_frame;
+ attribute_deprecated AVFrame *coded_frame;
+#endif
/**
* thread count
diff --git a/libavcodec/bmpenc.c b/libavcodec/bmpenc.c
index 7260baa..915c396 100644
--- a/libavcodec/bmpenc.c
+++ b/libavcodec/bmpenc.c
@@ -69,8 +69,12 @@ static int bmp_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
int bit_count = avctx->bits_per_coded_sample;
uint8_t *ptr, *buf;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
switch (avctx->pix_fmt) {
case AV_PIX_FMT_RGB444:
compression = BMP_BITFIELDS;
diff --git a/libavcodec/cljrenc.c b/libavcodec/cljrenc.c
index e2db7a6..0687e30 100644
--- a/libavcodec/cljrenc.c
+++ b/libavcodec/cljrenc.c
@@ -41,8 +41,12 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
return ret;
}
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
init_put_bits(&pb, pkt->data, pkt->size);
diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c
index bccf5c8..af1dc78 100644
--- a/libavcodec/dnxhdenc.c
+++ b/libavcodec/dnxhdenc.c
@@ -372,8 +372,12 @@ FF_ENABLE_DEPRECATION_WARNINGS
FF_ALLOCZ_OR_GOTO(ctx->m.avctx, ctx->mb_qscale,
ctx->m.mb_num * sizeof(uint8_t), fail);
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->key_frame = 1;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (avctx->thread_count > MAX_THREADS) {
av_log(avctx, AV_LOG_ERROR, "too many threads\n");
@@ -1026,7 +1030,11 @@ static void dnxhd_load_picture(DNXHDEncContext *ctx, const AVFrame *frame)
ctx->thread[i]->dct_uv_offset = ctx->m.uvlinesize*8;
}
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
ctx->m.avctx->coded_frame->interlaced_frame = frame->interlaced_frame;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
ctx->cur_field = frame->interlaced_frame && !frame->top_field_first;
}
@@ -1090,7 +1098,11 @@ encode_coding_unit:
goto encode_coding_unit;
}
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->quality = ctx->qscale * FF_QP2LAMBDA;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
sd = av_packet_new_side_data(pkt, AV_PKT_DATA_QUALITY_FACTOR, sizeof(int));
if (!sd)
diff --git a/libavcodec/dpxenc.c b/libavcodec/dpxenc.c
index aaa5d93..fc25892 100644
--- a/libavcodec/dpxenc.c
+++ b/libavcodec/dpxenc.c
@@ -35,8 +35,12 @@ static av_cold int encode_init(AVCodecContext *avctx)
{
DPXContext *s = avctx->priv_data;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
s->big_endian = 1;
s->bits_per_component = 8;
diff --git a/libavcodec/dvenc.c b/libavcodec/dvenc.c
index 3bbcaf0..fa29f0b 100644
--- a/libavcodec/dvenc.c
+++ b/libavcodec/dvenc.c
@@ -716,8 +716,12 @@ static int dvvideo_encode_frame(AVCodecContext *c, AVPacket *pkt,
c->pix_fmt = s->sys->pix_fmt;
s->frame = frame;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
c->coded_frame->key_frame = 1;
c->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
s->buf = pkt->data;
c->execute(c, dv_encode_video_segment, s->work_chunks, NULL,
diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
index 74f3d4a..df1d990 100644
--- a/libavcodec/ffv1enc.c
+++ b/libavcodec/ffv1enc.c
@@ -721,7 +721,11 @@ static av_cold int ffv1_encode_init(AVCodecContext *avctx)
if ((ret = ffv1_allocate_initial_states(s)) < 0)
return ret;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (!s->transparency)
s->plane_count = 2;
@@ -1045,7 +1049,11 @@ static int ffv1_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
} else if (avctx->flags & CODEC_FLAG_PASS1)
avctx->stats_out[0] = '\0';
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->key_frame = f->key_frame;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
f->picture_number++;
pkt->size = buf_p - pkt->data;
diff --git a/libavcodec/flashsvenc.c b/libavcodec/flashsvenc.c
index 1cc010e..7e14e47 100644
--- a/libavcodec/flashsvenc.c
+++ b/libavcodec/flashsvenc.c
@@ -258,13 +258,21 @@ static int flashsv_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
//mark the frame type so the muxer can mux it correctly
if (I_frame) {
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
s->last_key_frame = avctx->frame_number;
ff_dlog(avctx, "Inserting keyframe at frame %d\n", avctx->frame_number);
} else {
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_P;
avctx->coded_frame->key_frame = 0;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
if (I_frame)
diff --git a/libavcodec/gif.c b/libavcodec/gif.c
index cb1c71b..a8c7f37 100644
--- a/libavcodec/gif.c
+++ b/libavcodec/gif.c
@@ -130,8 +130,12 @@ static av_cold int gif_encode_init(AVCodecContext *avctx)
{
GIFContext *s = avctx->priv_data;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
s->lzw = av_mallocz(ff_lzw_encode_state_size);
if (!s->lzw)
diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c
index 4f73fd8..a86f880 100644
--- a/libavcodec/huffyuvenc.c
+++ b/libavcodec/huffyuvenc.c
@@ -157,8 +157,12 @@ static av_cold int encode_init(AVCodecContext *avctx)
if (!avctx->extradata || !avctx->stats_out)
return AVERROR(ENOMEM);
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
switch (avctx->pix_fmt) {
case AV_PIX_FMT_YUV420P:
diff --git a/libavcodec/jpeglsenc.c b/libavcodec/jpeglsenc.c
index 3021394..47c420f 100644
--- a/libavcodec/jpeglsenc.c
+++ b/libavcodec/jpeglsenc.c
@@ -415,8 +415,12 @@ memfail:
static av_cold int encode_init_ls(AVCodecContext *ctx)
{
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
ctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
ctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (ctx->pix_fmt != AV_PIX_FMT_GRAY8 &&
ctx->pix_fmt != AV_PIX_FMT_GRAY16 &&
diff --git a/libavcodec/lclenc.c b/libavcodec/lclenc.c
index 6edde07..a73f6d6 100644
--- a/libavcodec/lclenc.c
+++ b/libavcodec/lclenc.c
@@ -138,8 +138,12 @@ static av_cold int encode_init(AVCodecContext *avctx)
if (!avctx->extradata)
return AVERROR(ENOMEM);
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
// Will be user settable someday
c->compression = 6;
diff --git a/libavcodec/libschroedingerenc.c b/libavcodec/libschroedingerenc.c
index bf30eb6..d6f8dc5 100644
--- a/libavcodec/libschroedingerenc.c
+++ b/libavcodec/libschroedingerenc.c
@@ -384,12 +384,16 @@ static int libschroedinger_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
}
memcpy(pkt->data, p_frame_output->p_encbuf, p_frame_output->size);
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->key_frame = p_frame_output->key_frame;
+ avctx->coded_frame->pts = p_frame_output->frame_num;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
/* Use the frame number of the encoded frame as the pts. It is OK to
* do so since Dirac is a constant frame rate codec. It expects input
* to be of constant frame rate. */
- pkt->pts =
- avctx->coded_frame->pts = p_frame_output->frame_num;
+ pkt->pts = p_frame_output->frame_num;
pkt->dts = p_schro_params->dts++;
enc_size = p_frame_output->size;
diff --git a/libavcodec/libtheoraenc.c b/libavcodec/libtheoraenc.c
index 8927b32..6f1404f 100644
--- a/libavcodec/libtheoraenc.c
+++ b/libavcodec/libtheoraenc.c
@@ -343,7 +343,11 @@ static int encode_frame(AVCodecContext* avc_context, AVPacket *pkt,
// HACK: assumes no encoder delay, this is true until libtheora becomes
// multithreaded (which will be disabled unless explicitly requested)
pkt->pts = pkt->dts = frame->pts;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avc_context->coded_frame->key_frame = !(o_packet.granulepos & h->keyframe_mask);
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (!(o_packet.granulepos & h->keyframe_mask))
pkt->flags |= AV_PKT_FLAG_KEY;
*got_packet = 1;
diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index 20fd38c..edddef0 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -397,14 +397,26 @@ static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame,
if (ret >= 0) {
memcpy(pkt->data, cx_frame->buf, pkt->size);
pkt->pts = pkt->dts = cx_frame->pts;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pts = cx_frame->pts;
avctx->coded_frame->key_frame = !!(cx_frame->flags & VPX_FRAME_IS_KEY);
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (!!(cx_frame->flags & VPX_FRAME_IS_KEY)) {
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
pkt->flags |= AV_PKT_FLAG_KEY;
} else {
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_P;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
} else {
av_log(avctx, AV_LOG_ERROR,
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index a3ffe22..7d719d4 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -253,6 +253,8 @@ static int X264_frame(AVCodecContext *ctx, AVPacket *pkt, const AVFrame *frame,
pkt->pts = pic_out.i_pts;
pkt->dts = pic_out.i_dts;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
switch (pic_out.i_type) {
case X264_TYPE_IDR:
case X264_TYPE_I:
@@ -266,6 +268,8 @@ static int X264_frame(AVCodecContext *ctx, AVPacket *pkt, const AVFrame *frame,
ctx->coded_frame->pict_type = AV_PICTURE_TYPE_B;
break;
}
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
pkt->flags |= AV_PKT_FLAG_KEY*pic_out.b_keyframe;
if (ret) {
@@ -275,7 +279,11 @@ static int X264_frame(AVCodecContext *ctx, AVPacket *pkt, const AVFrame *frame,
return AVERROR(ENOMEM);
*(int *)sd = (pic_out.i_qpplus1 - 1) * FF_QP2LAMBDA;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
ctx->coded_frame->quality = (pic_out.i_qpplus1 - 1) * FF_QP2LAMBDA;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
*got_packet = ret;
diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c
index 145480f..df112e1 100644
--- a/libavcodec/libx265.c
+++ b/libavcodec/libx265.c
@@ -298,6 +298,8 @@ static int libx265_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
pkt->pts = x265pic_out.pts;
pkt->dts = x265pic_out.dts;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
switch (x265pic_out.sliceType) {
case X265_TYPE_IDR:
case X265_TYPE_I:
@@ -310,6 +312,8 @@ static int libx265_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_B;
break;
}
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
*got_packet = 1;
return 0;
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)
diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c
index b440ac2..7b25c62 100644
--- a/libavcodec/libxvid.c
+++ b/libavcodec/libxvid.c
@@ -751,6 +751,8 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
*got_packet = 1;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->quality = xvid_enc_stats.quant * FF_QP2LAMBDA;
if (xvid_enc_stats.type == XVID_TYPE_PVOP)
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_P;
@@ -760,14 +762,24 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_S;
else
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (xvid_enc_frame.out_flags & XVID_KEYFRAME) {
+#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 (x->quicktime_format)
return xvid_strip_vol_header(avctx, pkt,
xvid_enc_stats.hlength, xerr);
} else {
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->key_frame = 0;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
pkt->size = xerr;
diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c
index c652653..d57d033 100644
--- a/libavcodec/ljpegenc.c
+++ b/libavcodec/ljpegenc.c
@@ -276,8 +276,12 @@ static av_cold int ljpeg_encode_init(AVCodecContext *avctx)
return AVERROR(EINVAL);
}
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
s->scratch = av_malloc_array(avctx->width + 1, sizeof(*s->scratch));
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index ceced18..770f66c 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -1475,7 +1475,11 @@ static void frame_end(MpegEncContext *s)
}
}
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
av_frame_copy_props(s->avctx->coded_frame, s->current_picture.f);
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
static void update_noise_reduction(MpegEncContext *s)
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
index 388fbe4..35c04e8 100644
--- a/libavcodec/nvenc.c
+++ b/libavcodec/nvenc.c
@@ -1037,6 +1037,8 @@ static int nvenc_get_frame(AVCodecContext *avctx, AVPacket *pkt)
switch (params.pictureType) {
case NV_ENC_PIC_TYPE_IDR:
pkt->flags |= AV_PKT_FLAG_KEY;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
case NV_ENC_PIC_TYPE_INTRA_REFRESH:
case NV_ENC_PIC_TYPE_I:
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
@@ -1050,6 +1052,8 @@ static int nvenc_get_frame(AVCodecContext *avctx, AVPacket *pkt)
case NV_ENC_PIC_TYPE_BI:
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_BI;
break;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
return 0;
diff --git a/libavcodec/pamenc.c b/libavcodec/pamenc.c
index 483089a..0be07e1 100644
--- a/libavcodec/pamenc.c
+++ b/libavcodec/pamenc.c
@@ -109,8 +109,12 @@ static int pam_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
static av_cold int pam_encode_init(AVCodecContext *avctx)
{
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
return 0;
}
diff --git a/libavcodec/pcxenc.c b/libavcodec/pcxenc.c
index 24bca97..7fc0d9c 100644
--- a/libavcodec/pcxenc.c
+++ b/libavcodec/pcxenc.c
@@ -34,8 +34,12 @@ static const uint32_t monoblack_pal[16] = { 0x000000, 0xFFFFFF };
static av_cold int pcx_encode_init(AVCodecContext *avctx)
{
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
return 0;
}
diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c
index bbeee01..df5e08f 100644
--- a/libavcodec/pngenc.c
+++ b/libavcodec/pngenc.c
@@ -455,8 +455,12 @@ static av_cold int png_enc_init(AVCodecContext *avctx)
{
PNGEncContext *s = avctx->priv_data;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
ff_huffyuvencdsp_init(&s->hdsp);
diff --git a/libavcodec/pnmenc.c b/libavcodec/pnmenc.c
index 58fd4fe..055aff4 100644
--- a/libavcodec/pnmenc.c
+++ b/libavcodec/pnmenc.c
@@ -120,8 +120,12 @@ static int pnm_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
static av_cold int pnm_encode_init(AVCodecContext *avctx)
{
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
return 0;
}
diff --git a/libavcodec/proresenc.c b/libavcodec/proresenc.c
index 3e99d10..88e9482 100644
--- a/libavcodec/proresenc.c
+++ b/libavcodec/proresenc.c
@@ -939,8 +939,12 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
uint8_t frame_flags;
ctx->pic = pic;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
pkt_size = ctx->frame_size_upper_bound;
diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c
index d7f742b..da339cc 100644
--- a/libavcodec/pthread_frame.c
+++ b/libavcodec/pthread_frame.c
@@ -215,7 +215,11 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
if (for_user) {
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
dst->coded_frame = src->coded_frame;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
} else {
if (dst->codec->update_thread_context)
err = dst->codec->update_thread_context(dst, src);
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index f9b9d6f..ca91e3a 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -441,12 +441,16 @@ int ff_qsv_encode(AVCodecContext *avctx, QSVEncContext *q,
bs->FrameType & MFX_FRAMETYPE_xIDR)
new_pkt.flags |= AV_PKT_FLAG_KEY;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
if (bs->FrameType & MFX_FRAMETYPE_I || bs->FrameType & MFX_FRAMETYPE_xI)
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
else if (bs->FrameType & MFX_FRAMETYPE_P || bs->FrameType & MFX_FRAMETYPE_xP)
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_P;
else if (bs->FrameType & MFX_FRAMETYPE_B || bs->FrameType & MFX_FRAMETYPE_xB)
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_B;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
av_freep(&bs);
diff --git a/libavcodec/qtrleenc.c b/libavcodec/qtrleenc.c
index c455c82..29deb21 100644
--- a/libavcodec/qtrleenc.c
+++ b/libavcodec/qtrleenc.c
@@ -321,8 +321,12 @@ static int qtrle_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
av_picture_copy(&s->previous_frame, (const AVPicture *)pict,
avctx->pix_fmt, avctx->width, avctx->height);
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->key_frame = s->key_frame;
avctx->coded_frame->pict_type = pict_type;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (s->key_frame)
pkt->flags |= AV_PKT_FLAG_KEY;
diff --git a/libavcodec/rawenc.c b/libavcodec/rawenc.c
index a360c34..cc55b3a 100644
--- a/libavcodec/rawenc.c
+++ b/libavcodec/rawenc.c
@@ -35,8 +35,12 @@ static av_cold int raw_encode_init(AVCodecContext *avctx)
{
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt);
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
avctx->bits_per_coded_sample = av_get_bits_per_pixel(desc);
if(!avctx->codec_tag)
avctx->codec_tag = avcodec_pix_fmt_to_codec_tag(avctx->pix_fmt);
diff --git a/libavcodec/sgienc.c b/libavcodec/sgienc.c
index 73e1a67..b88f6c3 100644
--- a/libavcodec/sgienc.c
+++ b/libavcodec/sgienc.c
@@ -49,8 +49,12 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
unsigned int bytes_per_channel, pixmax, put_be;
unsigned char *end_buf;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
width = avctx->width;
height = avctx->height;
diff --git a/libavcodec/sunrastenc.c b/libavcodec/sunrastenc.c
index 0627c47..ddf624e 100644
--- a/libavcodec/sunrastenc.c
+++ b/libavcodec/sunrastenc.c
@@ -153,8 +153,12 @@ static av_cold int sunrast_encode_init(AVCodecContext *avctx)
return AVERROR(EINVAL);
}
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->key_frame = 1;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
s->maptype = RMT_NONE;
s->maplength = 0;
diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c
index ebbc54e..24251ff 100644
--- a/libavcodec/svq1enc.c
+++ b/libavcodec/svq1enc.c
@@ -609,8 +609,12 @@ static int svq1_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
s->pict_type = AV_PICTURE_TYPE_I;
s->quality = pict->quality;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = s->pict_type;
avctx->coded_frame->key_frame = s->pict_type == AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
sd = av_packet_new_side_data(pkt, AV_PKT_DATA_QUALITY_FACTOR, sizeof(int));
if (!sd)
diff --git a/libavcodec/targaenc.c b/libavcodec/targaenc.c
index 048183f..a85400f 100644
--- a/libavcodec/targaenc.c
+++ b/libavcodec/targaenc.c
@@ -150,8 +150,12 @@ static int targa_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
static av_cold int targa_encode_init(AVCodecContext *avctx)
{
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->key_frame = 1;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
return 0;
}
diff --git a/libavcodec/tiffenc.c b/libavcodec/tiffenc.c
index fbdb824..f762ab8 100644
--- a/libavcodec/tiffenc.c
+++ b/libavcodec/tiffenc.c
@@ -490,8 +490,12 @@ fail:
static av_cold int encode_init(AVCodecContext *avctx)
{
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
avctx->coded_frame->key_frame = 1;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
return 0;
}
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index d038e90..e8848f6 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1169,11 +1169,15 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
if (av_codec_is_encoder(avctx->codec)) {
int i;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame = av_frame_alloc();
if (!avctx->coded_frame) {
ret = AVERROR(ENOMEM);
goto free_and_end;
}
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
if (avctx->codec->sample_fmts) {
for (i = 0; avctx->codec->sample_fmts[i] != AV_SAMPLE_FMT_NONE; i++) {
if (avctx->sample_fmt == avctx->codec->sample_fmts[i])
@@ -1301,7 +1305,11 @@ free_and_end:
av_opt_free(avctx->priv_data);
av_opt_free(avctx);
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
av_frame_free(&avctx->coded_frame);
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
av_dict_free(&tmp);
av_freep(&avctx->priv_data);
@@ -1822,7 +1830,11 @@ av_cold int avcodec_close(AVCodecContext *avctx)
av_freep(&avctx->priv_data);
if (av_codec_is_encoder(avctx->codec)) {
av_freep(&avctx->extradata);
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
av_frame_free(&avctx->coded_frame);
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
}
avctx->codec = NULL;
avctx->active_thread_type = 0;
diff --git a/libavcodec/utvideoenc.c b/libavcodec/utvideoenc.c
index c22f488..6e9916c 100644
--- a/libavcodec/utvideoenc.c
+++ b/libavcodec/utvideoenc.c
@@ -615,8 +615,12 @@ static int utvideo_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
* At least currently Ut Video is IDR only.
* Set flags accordingly.
*/
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->key_frame = 1;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
pkt->size = bytestream2_tell_p(&pb);
pkt->flags |= AV_PKT_FLAG_KEY;
diff --git a/libavcodec/v210enc.c b/libavcodec/v210enc.c
index 375236c..42cbb86 100644
--- a/libavcodec/v210enc.c
+++ b/libavcodec/v210enc.c
@@ -91,7 +91,11 @@ static av_cold int encode_init(AVCodecContext *avctx)
return AVERROR(EINVAL);
}
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
s->pack_line_8 = v210_planar_pack_8_c;
s->pack_line_10 = v210_planar_pack_10_c;
diff --git a/libavcodec/v410enc.c b/libavcodec/v410enc.c
index ffbdc7d..1e3f38f 100644
--- a/libavcodec/v410enc.c
+++ b/libavcodec/v410enc.c
@@ -49,8 +49,12 @@ static int v410_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
}
dst = pkt->data;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->key_frame = 1;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
y = (uint16_t *)pic->data[0];
u = (uint16_t *)pic->data[1];
diff --git a/libavcodec/version.h b/libavcodec/version.h
index a130e8d..892ff6b 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -30,7 +30,7 @@
#define LIBAVCODEC_VERSION_MAJOR 56
#define LIBAVCODEC_VERSION_MINOR 33
-#define LIBAVCODEC_VERSION_MICRO 0
+#define LIBAVCODEC_VERSION_MICRO 1
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
@@ -171,5 +171,8 @@
#ifndef FF_API_RC_STRATEGY
#define FF_API_RC_STRATEGY (LIBAVCODEC_VERSION_MAJOR < 59)
#endif
+#ifndef FF_API_CODED_FRAME
+#define FF_API_CODED_FRAME (LIBAVCODEC_VERSION_MAJOR < 59)
+#endif
#endif /* AVCODEC_VERSION_H */
diff --git a/libavcodec/xbmenc.c b/libavcodec/xbmenc.c
index 41456cb..4840050 100644
--- a/libavcodec/xbmenc.c
+++ b/libavcodec/xbmenc.c
@@ -26,7 +26,11 @@
static av_cold int xbm_encode_init(AVCodecContext *avctx)
{
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
return 0;
}
diff --git a/libavcodec/xwdenc.c b/libavcodec/xwdenc.c
index 97a3eb8..e346b5c 100644
--- a/libavcodec/xwdenc.c
+++ b/libavcodec/xwdenc.c
@@ -146,8 +146,12 @@ static int xwd_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
}
buf = pkt->data;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->key_frame = 1;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
bytestream_put_be32(&buf, header_size);
bytestream_put_be32(&buf, XWD_VERSION); // file version
diff --git a/libavcodec/zmbvenc.c b/libavcodec/zmbvenc.c
index ea63b94..4436bb3 100644
--- a/libavcodec/zmbvenc.c
+++ b/libavcodec/zmbvenc.c
@@ -133,8 +133,12 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
c->curfrm++;
if(c->curfrm == c->keyint)
c->curfrm = 0;
+#if FF_API_CODED_FRAME
+FF_DISABLE_DEPRECATION_WARNINGS
avctx->coded_frame->pict_type = keyframe ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_P;
avctx->coded_frame->key_frame = keyframe;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
chpal = !keyframe && memcmp(p->data[1], c->pal2, 1024);
palptr = (uint32_t*)p->data[1];
OpenPOWER on IntegriCloud