[FFmpeg-devel] [PATCH] avfilter/w3fdif: do not write to line before start line

Muhammad Faiz mfcc64 at gmail.com
Sat Jul 22 14:50:13 EEST 2017


That line has been written by previous job.
Fix tsan warning.

Signed-off-by: Muhammad Faiz <mfcc64 at gmail.com>
---
 libavfilter/vf_w3fdif.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavfilter/vf_w3fdif.c b/libavfilter/vf_w3fdif.c
index b7872db341..c6a6550778 100644
--- a/libavfilter/vf_w3fdif.c
+++ b/libavfilter/vf_w3fdif.c
@@ -366,7 +366,7 @@ static int deinterlace_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_
     int j, y_in, y_out;
 
     /* copy unchanged the lines of the field */
-    y_out = start + (s->field == cur->top_field_first) - (start & 1);
+    y_out = start + ((s->field == cur->top_field_first) ^ (start & 1));
 
     in_line  = cur_data + (y_out * cur_line_stride);
     out_line = dst_data + (y_out * dst_line_stride);
@@ -379,7 +379,7 @@ static int deinterlace_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_
     }
 
     /* interpolate other lines of the field */
-    y_out = start + (s->field != cur->top_field_first) - (start & 1);
+    y_out = start + ((s->field != cur->top_field_first) ^ (start & 1));
 
     out_line = dst_data + (y_out * dst_line_stride);
 
-- 
2.13.2



More information about the ffmpeg-devel mailing list