mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 03:31:05 +00:00
yadif.asm: Fix improper usage of LOAD macro
LOAD macro relies in m7 being zero for interleaving purposes. Using LOAD on the m7 register makes it interleave with its new content instead of with 0. The effect of this bug was bobbing on some static lines that appeared over fast-moving content. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1816>
This commit is contained in:
parent
d499342f0d
commit
b699feefee
1 changed files with 6 additions and 4 deletions
|
@ -160,6 +160,8 @@ SECTION .text
|
|||
psraw m3, 1
|
||||
; rsp + 0 = d
|
||||
mova [rsp+ 0], m3
|
||||
; rsp + 16 = bzeroq
|
||||
mova [rsp+16], m1
|
||||
; m2 = m1 - mp
|
||||
psubw m2, m4
|
||||
; m2 = temporal_diff0 (m4 is temporary)
|
||||
|
@ -195,8 +197,8 @@ SECTION .text
|
|||
psrlw m3, 1
|
||||
; m2 = diff (for real)
|
||||
pmaxsw m2, m3
|
||||
; rsp + 16 = diff
|
||||
mova [rsp+16], m2
|
||||
; rsp + 32 = diff
|
||||
mova [rsp+32], m2
|
||||
|
||||
; m1 = e + c
|
||||
paddw m1, m0
|
||||
|
@ -251,7 +253,7 @@ SECTION .text
|
|||
; now m0 = spatial_score, m1 = spatial_pred
|
||||
|
||||
; m6 = diff
|
||||
mova m6, [rsp+16]
|
||||
mova m6, [rsp+32]
|
||||
%endmacro
|
||||
|
||||
%macro FILTER_TAIL 0
|
||||
|
@ -311,7 +313,7 @@ SECTION .text
|
|||
; m5 = d
|
||||
mova m5, [rsp]
|
||||
; m7 = e
|
||||
LOAD m7, [bzeroq]
|
||||
mova m7, [rsp+16]
|
||||
; m2 = b - c
|
||||
psubw m2, m4
|
||||
; m3 = f - e
|
||||
|
|
Loading…
Reference in a new issue