Commit 58a0dc1b authored by Andreas Cadhalpun's avatar Andreas Cadhalpun Committed by Michael Niedermayer

h264: er: Copy from the previous reference only if compatible

Also use the frame pixel format instead of the one from the codec
context, which is more robust.
Signed-off-by: 's avatarLuca Barbato <lu_zero@gentoo.org>
Reviewed-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
Signed-off-by: 's avatarAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit fdc64a10)

Conflicts:

	libavcodec/h264_slice.c
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent da139575
......@@ -1687,12 +1687,15 @@ int ff_h264_decode_slice_header(H264Context *h, H264Context *h0)
* vectors. Given we are concealing a lost frame, this probably
* is not noticeable by comparison, but it should be fixed. */
if (h->short_ref_count) {
if (prev) {
if (prev &&
h->short_ref[0]->f.width == prev->f.width &&
h->short_ref[0]->f.height == prev->f.height &&
h->short_ref[0]->f.format == prev->f.format) {
av_image_copy(h->short_ref[0]->f.data,
h->short_ref[0]->f.linesize,
(const uint8_t **)prev->f.data,
prev->f.linesize,
h->avctx->pix_fmt,
prev->f.format,
h->mb_width * 16,
h->mb_height * 16);
h->short_ref[0]->poc = prev->poc + 2;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment