mirror of https://git.ffmpeg.org/ffmpeg.git
vp9: fix mvref finding to adhere to bug in libvpx.
Fixes a particular youtube video that I unfortunately can't share.
This commit is contained in:
parent
f5bffd3a1a
commit
dd3d0f46bd
|
@ -984,7 +984,10 @@ static void find_ref_mvs(VP9Context *s,
|
|||
if (mv->ref[0] != ref && mv->ref[0] >= 0) {
|
||||
RETURN_SCALE_MV(mv->mv[0], s->signbias[mv->ref[0]] != s->signbias[ref]);
|
||||
}
|
||||
if (mv->ref[1] != ref && mv->ref[1] >= 0) {
|
||||
if (mv->ref[1] != ref && mv->ref[1] >= 0 &&
|
||||
// BUG - libvpx has this condition regardless of whether
|
||||
// we used the first ref MV and pre-scaling
|
||||
AV_RN32A(&mv->mv[0]) != AV_RN32A(&mv->mv[1])) {
|
||||
RETURN_SCALE_MV(mv->mv[1], s->signbias[mv->ref[1]] != s->signbias[ref]);
|
||||
}
|
||||
}
|
||||
|
@ -997,7 +1000,10 @@ static void find_ref_mvs(VP9Context *s,
|
|||
if (mv->ref[0] != ref && mv->ref[0] >= 0) {
|
||||
RETURN_SCALE_MV(mv->mv[0], s->signbias[mv->ref[0]] != s->signbias[ref]);
|
||||
}
|
||||
if (mv->ref[1] != ref && mv->ref[1] >= 0) {
|
||||
if (mv->ref[1] != ref && mv->ref[1] >= 0 &&
|
||||
// BUG - libvpx has this condition regardless of whether
|
||||
// we used the first ref MV and pre-scaling
|
||||
AV_RN32A(&mv->mv[0]) != AV_RN32A(&mv->mv[1])) {
|
||||
RETURN_SCALE_MV(mv->mv[1], s->signbias[mv->ref[1]] != s->signbias[ref]);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue