This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 587db45caf2a5be4bfdc1704b89c662681ad1142 Author: Philip Langdale <[email protected]> AuthorDate: Fri Jun 26 22:56:34 2026 -0700 Commit: philipl <[email protected]> CommitDate: Sun Jun 28 19:33:23 2026 +0000 avfilter/vf_bwdif_cuda: fix typos in algorithm It's been years, but took another look at the bwdif_cuda implementation and there are a couple of typos sitting in there. Found them when I was doing a comparison with the Vulkan implementation. This probably explains the small PSNR differences we've noted in the past. --- libavfilter/vf_bwdif_cuda.cu | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libavfilter/vf_bwdif_cuda.cu b/libavfilter/vf_bwdif_cuda.cu index 3d4c29d8c3..c09b6f7f36 100644 --- a/libavfilter/vf_bwdif_cuda.cu +++ b/libavfilter/vf_bwdif_cuda.cu @@ -91,7 +91,7 @@ __inline__ __device__ T filter(T cur_prefs3, T cur_prefs, T cur_mrefs, T cur_mre if (abs(c - e) > temporal_diff0) { interpol = (((coef_hf[0] * (prev2_0 + next2_0) - coef_hf[1] * (prev2_mrefs2 + next2_mrefs2 + prev2_prefs2 + next2_prefs2) - + coef_hf[2] * (prev2_mrefs4 + next2_mrefs4 + prev2_prefs4 + next2_mrefs4)) >> 2) + + coef_hf[2] * (prev2_mrefs4 + next2_mrefs4 + prev2_prefs4 + next2_prefs4)) >> 2) + coef_lf[0] * (c + e) - coef_lf[1] * (cur_mrefs3 + cur_prefs3)) >> 13; } else { interpol = (coef_sp[0] * (c + e) - coef_sp[1] * (cur_mrefs3 + cur_prefs3)) >> 13; @@ -146,10 +146,10 @@ __inline__ __device__ void bwdif_single(T *dst, // Calculate temporal prediction int is_second_field = !(parity ^ tff); - cudaTextureObject_t prev2 = prev; - cudaTextureObject_t prev1 = is_second_field ? cur : prev; - cudaTextureObject_t next1 = is_second_field ? next : cur; - cudaTextureObject_t next2 = next; + cudaTextureObject_t prev2 = is_second_field ? cur : prev; + cudaTextureObject_t prev1 = prev; + cudaTextureObject_t next1 = next; + cudaTextureObject_t next2 = is_second_field ? next : cur; T prev2_prefs4 = tex2D<T>(prev2, xo, yo + 4); T prev2_prefs2 = tex2D<T>(prev2, xo, yo + 2); @@ -213,10 +213,10 @@ __inline__ __device__ void bwdif_double(T *dst, int is_second_field = !(parity ^ tff); - cudaTextureObject_t prev2 = prev; - cudaTextureObject_t prev1 = is_second_field ? cur : prev; - cudaTextureObject_t next1 = is_second_field ? next : cur; - cudaTextureObject_t next2 = next; + cudaTextureObject_t prev2 = is_second_field ? cur : prev; + cudaTextureObject_t prev1 = prev; + cudaTextureObject_t next1 = next; + cudaTextureObject_t next2 = is_second_field ? next : cur; T prev2_prefs4 = tex2D<T>(prev2, xo, yo + 4); T prev2_prefs2 = tex2D<T>(prev2, xo, yo + 2); _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
