diff --git a/libavfilter/vf_yadif_cuda.cu b/libavfilter/vf_yadif_cuda.cu index 65a902c66b..12e7e4a443 100644 --- a/libavfilter/vf_yadif_cuda.cu +++ b/libavfilter/vf_yadif_cuda.cu @@ -201,9 +201,11 @@ __inline__ __device__ void yadif_double(T *dst, T m = tex2D(cur, xo + 2, yo + 1); T n = tex2D(cur, xo + 3, yo + 1); - T spatial_pred = { - spatial_predictor(a.x, b.x, c.x, d.x, e.x, f.x, g.x, h.x, i.x, j.x, k.x, l.x, m.x, n.x), - spatial_predictor(a.y, b.y, c.y, d.y, e.y, f.y, g.y, h.y, i.y, j.y, k.y, l.y, m.y, n.y) }; + T spatial_pred; + spatial_pred.x = + spatial_predictor(a.x, b.x, c.x, d.x, e.x, f.x, g.x, h.x, i.x, j.x, k.x, l.x, m.x, n.x); + spatial_pred.y = + spatial_predictor(a.y, b.y, c.y, d.y, e.y, f.y, g.y, h.y, i.y, j.y, k.y, l.y, m.y, n.y); // Calculate temporal prediction int is_second_field = !(parity ^ tff); @@ -226,11 +228,12 @@ __inline__ __device__ void yadif_double(T *dst, T K = tex2D(next2, xo, yo - 1); T L = tex2D(next2, xo, yo + 1); - spatial_pred = { + spatial_pred.x = temporal_predictor(A.x, B.x, C.x, D.x, E.x, F.x, G.x, H.x, I.x, J.x, K.x, L.x, - spatial_pred.x, skip_spatial_check), + spatial_pred.x, skip_spatial_check); + spatial_pred.y = temporal_predictor(A.y, B.y, C.y, D.y, E.y, F.y, G.y, H.y, I.y, J.y, K.y, L.y, - spatial_pred.y, skip_spatial_check) }; + spatial_pred.y, skip_spatial_check); dst[yo*dst_pitch+xo] = spatial_pred; }