diff mbox

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

Message ID 20170722115013.7879-1-mfcc64@gmail.com
State Accepted
Commit 7e9f5500039a31148dc971270ab569015e0ea247
Headers show

Commit Message

Muhammad Faiz July 22, 2017, 11:50 a.m. UTC
That line has been written by previous job.
Fix tsan warning.

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

Comments

Paul B Mahol July 22, 2017, 1:49 p.m. UTC | #1
On 7/22/17, Muhammad Faiz <mfcc64@gmail.com> wrote:
> That line has been written by previous job.
> Fix tsan warning.
>
> Signed-off-by: Muhammad Faiz <mfcc64@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
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

Should be ok.
Muhammad Faiz July 23, 2017, 1:37 p.m. UTC | #2
On Sat, Jul 22, 2017 at 8:49 PM, Paul B Mahol <onemda@gmail.com> wrote:
> On 7/22/17, Muhammad Faiz <mfcc64@gmail.com> wrote:
>> That line has been written by previous job.
>> Fix tsan warning.
>>
>> Signed-off-by: Muhammad Faiz <mfcc64@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
>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>
> Should be ok.

Applied.

Thank's.
diff mbox

Patch

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);