summaryrefslogtreecommitdiff
path: root/libavcodec/h264_picture.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-03-21 22:08:19 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-03-21 23:05:34 +0100
commitd8151a7e944aea52d167571badc247c8d9972847 (patch)
tree00f3d6dcaf271371dc5a2ef284baefb8697d446d /libavcodec/h264_picture.c
parente970b576d28dd515d4ccd665b53763e228816cac (diff)
parenta12d3188cbec15e22070e139fa5cc541da07e2c3 (diff)
downloadffmpeg-d8151a7e944aea52d167571badc247c8d9972847.tar.gz
Merge commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3'
* commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3': h264: use a smaller struct for the ref lists Conflicts: libavcodec/h264_direct.c libavcodec/h264_mb.c libavcodec/h264_picture.c libavcodec/h264_refs.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/h264_picture.c')
-rw-r--r--libavcodec/h264_picture.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libavcodec/h264_picture.c b/libavcodec/h264_picture.c
index d63a12e1f2..127bc45c88 100644
--- a/libavcodec/h264_picture.c
+++ b/libavcodec/h264_picture.c
@@ -203,20 +203,23 @@ int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup)
if (use_last_pic) {
ff_h264_set_erpic(&sl->er.last_pic, &h->last_pic_for_ec);
- COPY_PICTURE(&sl->ref_list[0][0], &h->last_pic_for_ec);
+ sl->ref_list[0][0].parent = &h->last_pic_for_ec;
+ memcpy(sl->ref_list[0][0].data, h->last_pic_for_ec.f.data, sizeof(sl->ref_list[0][0].data));
+ memcpy(sl->ref_list[0][0].linesize, h->last_pic_for_ec.f.linesize, sizeof(sl->ref_list[0][0].linesize));
+ sl->ref_list[0][0].reference = h->last_pic_for_ec.reference;
} else if (sl->ref_count[0]) {
- ff_h264_set_erpic(&sl->er.last_pic, &sl->ref_list[0][0]);
+ ff_h264_set_erpic(&sl->er.last_pic, sl->ref_list[0][0].parent);
} else
ff_h264_set_erpic(&sl->er.last_pic, NULL);
if (sl->ref_count[1])
- ff_h264_set_erpic(&sl->er.next_pic, &sl->ref_list[1][0]);
+ ff_h264_set_erpic(&sl->er.next_pic, sl->ref_list[1][0].parent);
sl->er.ref_count = sl->ref_count[0];
ff_er_frame_end(&sl->er);
if (use_last_pic)
- memset(&sl->ref_list[0][0], 0, sizeof(h->last_pic_for_ec));
+ memset(&sl->ref_list[0][0], 0, sizeof(sl->ref_list[0][0]));
}
#endif /* CONFIG_ERROR_RESILIENCE */