[FFmpeg-cvslog] vp9: don't allow compound references if error_resilience is enabled.
Ronald S. Bultje
git at videolan.org
Mon May 18 02:44:29 CEST 2015
ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Fri May 15 14:15:46 2015 -0400| [32b6d31ef3abd45186cfc69607ffe66837588d53] | committer: Ronald S. Bultje
vp9: don't allow compound references if error_resilience is enabled.
libvpx (probably accidentally) clears the bits if error_res is set,
along with keyframe/intraonly. This probably wasn't the intention
(since it's local data), but it's behaviour we have to copy...
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=32b6d31ef3abd45186cfc69607ffe66837588d53
---
libavcodec/vp9.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
index bc88bf9..9540f3d 100644
--- a/libavcodec/vp9.c
+++ b/libavcodec/vp9.c
@@ -648,8 +648,9 @@ static int decode_frame_header(AVCodecContext *ctx,
s->highprecisionmvs = get_bits1(&s->gb);
s->filtermode = get_bits1(&s->gb) ? FILTER_SWITCHABLE :
get_bits(&s->gb, 2);
- s->allowcompinter = s->signbias[0] != s->signbias[1] ||
- s->signbias[0] != s->signbias[2];
+ s->allowcompinter = !s->errorres &&
+ (s->signbias[0] != s->signbias[1] ||
+ s->signbias[0] != s->signbias[2]);
if (s->allowcompinter) {
if (s->signbias[0] == s->signbias[1]) {
s->fixcompref = 2;
More information about the ffmpeg-cvslog
mailing list