Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Cadhalpun <andreas.cadhalpun@googlemail.com>2015-06-14 13:40:18 +0300
committerMichael Niedermayer <michael@niedermayer.cc>2015-07-20 05:43:40 +0300
commit008229b7f978593392e1238eb6a6041a8d9b56c6 (patch)
tree1aeeb8bc6a78ea1adad401ff354fcb832d2f5c2d
parent3ea15a4547f83b4d7b5b9c408cb02478703730f2 (diff)
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: Luca Barbato <lu_zero@gentoo.org> Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> (cherry picked from commit fdc64a104410f5fcc7f35b62287b0ae502b7061a) Conflicts: libavcodec/h264_slice.c Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/h264_slice.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index c467da3683..6f6c2f16c5 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1669,12 +1669,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;