[SCM] libav/experimental: set last_picture for h.264 too, this significantly improves error concealment quality, i hope it doesnt break anything as last_picture_ptr was always NULL for h.264
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sun Jun 30 15:55:30 UTC 2013
The following commit has been merged in the experimental branch:
commit 6ad7cd0469989529e4bb0d469ab5f1978dd1c201
Author: Michael Niedermayer <michaelni at gmx.at>
Date: Wed Jan 24 14:20:00 2007 +0000
set last_picture for h.264 too, this significantly improves error concealment quality, i hope it doesnt break anything as last_picture_ptr was always NULL for h.264
Originally committed as revision 7686 to svn://svn.ffmpeg.org/ffmpeg/trunk
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 9c6b9f1..1c27108 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -1538,6 +1538,7 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
/* mark&release old frames */
if (s->pict_type != B_TYPE && s->last_picture_ptr && s->last_picture_ptr != s->next_picture_ptr && s->last_picture_ptr->data[0]) {
+ if(s->out_format != FMT_H264 || s->codec_id == CODEC_ID_SVQ3){
avctx->release_buffer(avctx, (AVFrame*)s->last_picture_ptr);
/* release forgotten pictures */
@@ -1550,6 +1551,7 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
}
}
}
+ }
}
alloc:
if(!s->encoding){
@@ -1587,7 +1589,6 @@ alloc:
copy_picture(&s->current_picture, s->current_picture_ptr);
- if(s->out_format != FMT_H264 || s->codec_id == CODEC_ID_SVQ3){
if (s->pict_type != B_TYPE) {
s->last_picture_ptr= s->next_picture_ptr;
if(!s->dropable)
@@ -1621,7 +1622,6 @@ alloc:
s->next_picture.linesize[i] *=2;
}
}
- }
s->hurry_up= s->avctx->hurry_up;
s->error_resilience= avctx->error_resilience;
--
Libav/FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list