Here is an update to dav1d 1.2.1.

Changes for 1.2.1 'Arctic Peregrine Falcon':
-------------------------------------------

1.2.1 is a small release of dav1d, adding more SIMD and fixes

- Fix a threading race on task_thread.init_done
- NEON z2 8bpc and high bit-depth optimizations
- SSSE3 z2 high bit-depth optimziations
- Fix a desynced luma/chroma planes issue with Film Grain
- Reduce memory consumption
- Improve dav1d_parse_sequence_header() speed
- OBU: Improve header parsing and fix potential overflows
- OBU: Improve ITU-T T.35 parsing speed
- Misc buildsystems, CI and headers fixes


Index: Makefile
===================================================================
RCS file: /home/cvs/ports/multimedia/dav1d/Makefile,v
retrieving revision 1.33
diff -u -p -u -p -r1.33 Makefile
--- Makefile    19 May 2023 11:07:30 -0000      1.33
+++ Makefile    6 Jun 2023 20:03:17 -0000
@@ -1,6 +1,6 @@
 COMMENT=       small and fast AV1 decoder
 
-VER=           1.2.0
+VER=           1.2.1
 DISTNAME=      dav1d-${VER}
 CATEGORIES=    multimedia
 MASTER_SITES=  https://downloads.videolan.org/pub/videolan/dav1d/${VER}/
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/multimedia/dav1d/distinfo,v
retrieving revision 1.17
diff -u -p -u -p -r1.17 distinfo
--- distinfo    19 May 2023 11:07:30 -0000      1.17
+++ distinfo    6 Jun 2023 20:03:24 -0000
@@ -1,2 +1,2 @@
-SHA256 (dav1d-1.2.0.tar.xz) = Ixvti8G7KKQdiNprTCwRjehLkuXx1nyv+ht/garqjG4=
-SIZE (dav1d-1.2.0.tar.xz) = 866120
+SHA256 (dav1d-1.2.1.tar.xz) = TjPrYexUx2ihbaDPj6CSi0xFk/X4BKPIh9SiHDGDQLI=
+SIZE (dav1d-1.2.1.tar.xz) = 873008
Index: patches/patch-src_arm_64_ipred16_S
===================================================================
RCS file: /home/cvs/ports/multimedia/dav1d/patches/patch-src_arm_64_ipred16_S,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-src_arm_64_ipred16_S
--- patches/patch-src_arm_64_ipred16_S  19 May 2023 11:07:30 -0000      1.2
+++ patches/patch-src_arm_64_ipred16_S  6 Jun 2023 20:32:43 -0000
@@ -387,7 +387,7 @@ Index: src/arm/64/ipred16.S
  endfunc
  
  const padding_mask_buf
-@@ -2445,13 +2463,13 @@ function ipred_filter_\bpc\()bpc_neon
+@@ -3880,13 +3898,13 @@ function ipred_filter_\bpc\()bpc_neon
          add             x6,  x6,  w5, uxtw
          ld1             {v16.8b, v17.8b, v18.8b, v19.8b}, [x6], #32
          clz             w9,  w3
@@ -404,7 +404,7 @@ Index: src/arm/64/ipred16.S
          sxtl            v18.8h,  v18.8b
          sxtl            v19.8h,  v19.8b
          add             x6,  x0,  x1
-@@ -2725,11 +2743,13 @@ function ipred_filter_\bpc\()bpc_neon
+@@ -4160,11 +4178,13 @@ function ipred_filter_\bpc\()bpc_neon
  9:
          ret
  
@@ -422,7 +422,7 @@ Index: src/arm/64/ipred16.S
  endfunc
  .endm
  
-@@ -2749,11 +2769,11 @@ endfunc
+@@ -4184,11 +4204,11 @@ endfunc
  function pal_pred_16bpc_neon, export=1
          ld1             {v30.8h}, [x2]
          clz             w9,  w4
@@ -437,7 +437,7 @@ Index: src/arm/64/ipred16.S
          br              x6
  40:
          AARCH64_VALID_JUMP_TARGET
-@@ -2922,12 +2942,14 @@ function pal_pred_16bpc_neon, export=1
+@@ -4357,12 +4377,14 @@ function pal_pred_16bpc_neon, export=1
          b.gt            64b
          ret
  
@@ -457,7 +457,7 @@ Index: src/arm/64/ipred16.S
  endfunc
  
  // void ipred_cfl_128_16bpc_neon(pixel *dst, const ptrdiff_t stride,
-@@ -2938,12 +2960,12 @@ endfunc
+@@ -4373,12 +4395,12 @@ endfunc
  function ipred_cfl_128_16bpc_neon, export=1
          dup             v31.8h,  w7   // bitdepth_max
          clz             w9,  w3
@@ -473,7 +473,7 @@ Index: src/arm/64/ipred16.S
          add             x6,  x0,  x1
          lsl             x1,  x1,  #1
          movi            v30.8h,  #0
-@@ -3075,12 +3097,14 @@ L(ipred_cfl_splat_w16):
+@@ -4510,12 +4532,14 @@ L(ipred_cfl_splat_w16):
          b.gt            1b
          ret
  
@@ -492,7 +492,7 @@ Index: src/arm/64/ipred16.S
  endfunc
  
  // void ipred_cfl_top_16bpc_neon(pixel *dst, const ptrdiff_t stride,
-@@ -3091,12 +3115,12 @@ endfunc
+@@ -4526,12 +4550,12 @@ endfunc
  function ipred_cfl_top_16bpc_neon, export=1
          dup             v31.8h,  w7   // bitdepth_max
          clz             w9,  w3
@@ -508,7 +508,7 @@ Index: src/arm/64/ipred16.S
          add             x6,  x0,  x1
          lsl             x1,  x1,  #1
          movi            v30.8h,  #0
-@@ -3134,11 +3158,13 @@ function ipred_cfl_top_16bpc_neon, export=1
+@@ -4569,11 +4593,13 @@ function ipred_cfl_top_16bpc_neon, export=1
          dup             v0.8h,   v0.h[0]
          b               L(ipred_cfl_splat_w16)
  
@@ -526,7 +526,7 @@ Index: src/arm/64/ipred16.S
  endfunc
  
  // void ipred_cfl_left_16bpc_neon(pixel *dst, const ptrdiff_t stride,
-@@ -3151,15 +3177,15 @@ function ipred_cfl_left_16bpc_neon, export=1
+@@ -4586,15 +4612,15 @@ function ipred_cfl_left_16bpc_neon, export=1
          sub             x2,  x2,  w4, uxtw #1
          clz             w9,  w3
          clz             w8,  w4
@@ -548,7 +548,7 @@ Index: src/arm/64/ipred16.S
          add             x6,  x0,  x1
          lsl             x1,  x1,  #1
          movi            v30.8h,  #0
-@@ -3201,11 +3227,13 @@ L(ipred_cfl_left_h32):
+@@ -4636,11 +4662,13 @@ L(ipred_cfl_left_h32):
          dup             v0.8h,   v0.h[0]
          br              x9
  
@@ -566,7 +566,7 @@ Index: src/arm/64/ipred16.S
  endfunc
  
  // void ipred_cfl_16bpc_neon(pixel *dst, const ptrdiff_t stride,
-@@ -3221,16 +3249,15 @@ function ipred_cfl_16bpc_neon, export=1
+@@ -4656,16 +4684,15 @@ function ipred_cfl_16bpc_neon, export=1
          clz             w9,  w3
          clz             w6,  w4
          dup             v16.4s, w8               // width + height
@@ -587,7 +587,7 @@ Index: src/arm/64/ipred16.S
          ushr            v16.4s,  v16.4s,  #1     // (width + height) >> 1
          dup             v17.4s,  w8              // -ctz(width + height)
          add             x6,  x0,  x1
-@@ -3354,15 +3381,17 @@ L(ipred_cfl_w32):
+@@ -4789,15 +4816,17 @@ L(ipred_cfl_w32):
          dup             v0.8h,   v0.h[0]
          b               L(ipred_cfl_splat_w16)
  
@@ -613,7 +613,7 @@ Index: src/arm/64/ipred16.S
  endfunc
  
  // void cfl_ac_420_16bpc_neon(int16_t *const ac, const pixel *const ypx,
-@@ -3371,14 +3400,14 @@ endfunc
+@@ -4806,14 +4835,14 @@ endfunc
  function ipred_cfl_ac_420_16bpc_neon, export=1
          clz             w8,  w5
          lsl             w4,  w4,  #2
@@ -631,7 +631,7 @@ Index: src/arm/64/ipred16.S
          sub             w8,  w6,  w4         // height - h_pad
          rbit            w9,  w5              // rbit(width)
          rbit            w10, w6              // rbit(height)
-@@ -3510,9 +3539,9 @@ L(ipred_cfl_ac_420_w8_hpad):
+@@ -4945,9 +4974,9 @@ L(ipred_cfl_ac_420_w8_hpad):
  
  L(ipred_cfl_ac_420_w16):
          AARCH64_VALID_JUMP_TARGET
@@ -644,7 +644,7 @@ Index: src/arm/64/ipred16.S
          br              x7
  
  L(ipred_cfl_ac_420_w16_wpad0):
-@@ -3689,17 +3718,19 @@ L(ipred_cfl_ac_420_w16_hpad):
+@@ -5124,17 +5153,19 @@ L(ipred_cfl_ac_420_w16_hpad):
          lsl             w6,  w6,  #2
          b               L(ipred_cfl_ac_420_w4_calc_subtract_dc)
  
@@ -672,7 +672,7 @@ Index: src/arm/64/ipred16.S
  endfunc
  
  // void cfl_ac_422_16bpc_neon(int16_t *const ac, const pixel *const ypx,
-@@ -3708,14 +3739,14 @@ endfunc
+@@ -5143,14 +5174,14 @@ endfunc
  function ipred_cfl_ac_422_16bpc_neon, export=1
          clz             w8,  w5
          lsl             w4,  w4,  #2
@@ -690,7 +690,7 @@ Index: src/arm/64/ipred16.S
          sub             w8,  w6,  w4         // height - h_pad
          rbit            w9,  w5              // rbit(width)
          rbit            w10, w6              // rbit(height)
-@@ -3816,9 +3847,9 @@ L(ipred_cfl_ac_422_w8_wpad):
+@@ -5251,9 +5282,9 @@ L(ipred_cfl_ac_422_w8_wpad):
  
  L(ipred_cfl_ac_422_w16):
          AARCH64_VALID_JUMP_TARGET
@@ -703,7 +703,7 @@ Index: src/arm/64/ipred16.S
          br              x7
  
  L(ipred_cfl_ac_422_w16_wpad0):
-@@ -3937,17 +3968,19 @@ L(ipred_cfl_ac_422_w16_wpad3):
+@@ -5372,17 +5403,19 @@ L(ipred_cfl_ac_422_w16_wpad3):
          mov             v1.16b,  v3.16b
          b               L(ipred_cfl_ac_420_w16_hpad)
  
@@ -731,7 +731,7 @@ Index: src/arm/64/ipred16.S
  endfunc
  
  // void cfl_ac_444_16bpc_neon(int16_t *const ac, const pixel *const ypx,
-@@ -3956,14 +3989,14 @@ endfunc
+@@ -5391,14 +5424,14 @@ endfunc
  function ipred_cfl_ac_444_16bpc_neon, export=1
          clz             w8,  w5
          lsl             w4,  w4,  #2
@@ -749,7 +749,7 @@ Index: src/arm/64/ipred16.S
          sub             w8,  w6,  w4         // height - h_pad
          rbit            w9,  w5              // rbit(width)
          rbit            w10, w6              // rbit(height)
-@@ -4072,10 +4105,11 @@ L(ipred_cfl_ac_444_w16_wpad):
+@@ -5507,10 +5540,11 @@ L(ipred_cfl_ac_444_w16_wpad):
  
  L(ipred_cfl_ac_444_w32):
          AARCH64_VALID_JUMP_TARGET
@@ -764,7 +764,7 @@ Index: src/arm/64/ipred16.S
          br              x7
  
  L(ipred_cfl_ac_444_w32_wpad0):
-@@ -4190,15 +4224,17 @@ L(ipred_cfl_ac_444_w32_hpad):
+@@ -5625,15 +5659,17 @@ L(ipred_cfl_ac_444_w32_hpad):
          lsl             w6,  w6,  #3
          b               L(ipred_cfl_ac_420_w4_calc_subtract_dc)
  
Index: patches/patch-src_arm_64_ipred_S
===================================================================
RCS file: /home/cvs/ports/multimedia/dav1d/patches/patch-src_arm_64_ipred_S,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-src_arm_64_ipred_S
--- patches/patch-src_arm_64_ipred_S    19 May 2023 11:07:30 -0000      1.2
+++ patches/patch-src_arm_64_ipred_S    6 Jun 2023 20:32:55 -0000
@@ -387,7 +387,7 @@ Index: src/arm/64/ipred.S
  endfunc
  
  const padding_mask_buf
-@@ -1614,11 +1632,11 @@ endfunc
+@@ -1653,11 +1671,11 @@ endfunc
  //                               const int dx, const int max_base_x);
  function ipred_z1_fill1_8bpc_neon, export=1
          clz             w9,  w3
@@ -402,7 +402,7 @@ Index: src/arm/64/ipred.S
          ld1r            {v31.16b}, [x10]          // padding
          mov             w7,  w5
          mov             w15, #64
-@@ -1777,12 +1795,14 @@ function ipred_z1_fill1_8bpc_neon, export=1
+@@ -1816,12 +1834,14 @@ function ipred_z1_fill1_8bpc_neon, export=1
          mov             w3,  w12
          b               169b
  
@@ -422,7 +422,7 @@ Index: src/arm/64/ipred.S
  endfunc
  
  function ipred_z1_fill2_8bpc_neon, export=1
-@@ -1900,11 +1920,11 @@ endconst
+@@ -3160,11 +3180,11 @@ endfunc
  function ipred_z3_fill1_8bpc_neon, export=1
          cmp             w6,  #64
          clz             w9,  w3
@@ -437,7 +437,7 @@ Index: src/arm/64/ipred.S
          movrel          x11, increments
          ld1r            {v31.16b}, [x10]          // padding
          ld1             {v30.8h},  [x11]          // increments
-@@ -2243,17 +2263,20 @@ L(ipred_z3_fill1_large_h16):
+@@ -3503,17 +3523,20 @@ L(ipred_z3_fill1_large_h16):
  9:
          ret
  
@@ -464,7 +464,7 @@ Index: src/arm/64/ipred.S
          b.gt            L(ipred_z3_fill_padding_wide)
          // w3 = remaining width, w4 = constant height
          mov             w12, w4
-@@ -2264,8 +2287,7 @@ function ipred_z3_fill_padding_neon, export=0
+@@ -3524,8 +3547,7 @@ function ipred_z3_fill_padding_neon, export=0
          // power of two in the remaining width, and repeating.
          clz             w9,  w3
          sub             w9,  w9,  #25
@@ -474,7 +474,7 @@ Index: src/arm/64/ipred.S
          br              x9
  
  2:
-@@ -2345,13 +2367,15 @@ function ipred_z3_fill_padding_neon, export=0
+@@ -3605,13 +3627,15 @@ function ipred_z3_fill_padding_neon, export=0
  9:
          ret
  
@@ -496,7 +496,7 @@ Index: src/arm/64/ipred.S
  
  L(ipred_z3_fill_padding_wide):
          // Fill a WxH rectangle with padding, with W > 16.
-@@ -2506,13 +2530,13 @@ function ipred_filter_8bpc_neon, export=1
+@@ -3766,13 +3790,13 @@ function ipred_filter_8bpc_neon, export=1
          add             x6,  x6,  w5, uxtw
          ld1             {v16.8b, v17.8b, v18.8b, v19.8b}, [x6], #32
          clz             w9,  w3
@@ -513,7 +513,7 @@ Index: src/arm/64/ipred.S
          sxtl            v18.8h,  v18.8b
          sxtl            v19.8h,  v19.8b
          add             x6,  x0,  x1
-@@ -2653,11 +2677,13 @@ function ipred_filter_8bpc_neon, export=1
+@@ -3913,11 +3937,13 @@ function ipred_filter_8bpc_neon, export=1
  9:
          ret
  
@@ -531,7 +531,7 @@ Index: src/arm/64/ipred.S
  endfunc
  
  // void pal_pred_8bpc_neon(pixel *dst, const ptrdiff_t stride,
-@@ -2666,11 +2692,11 @@ endfunc
+@@ -3926,11 +3952,11 @@ endfunc
  function pal_pred_8bpc_neon, export=1
          ld1             {v0.8h}, [x2]
          clz             w9,  w4
@@ -546,7 +546,7 @@ Index: src/arm/64/ipred.S
          add             x2,  x0,  x1
          lsl             x1,  x1,  #1
          br              x6
-@@ -2748,12 +2774,14 @@ function pal_pred_8bpc_neon, export=1
+@@ -4008,12 +4034,14 @@ function pal_pred_8bpc_neon, export=1
          b.gt            64b
          ret
  
@@ -566,7 +566,7 @@ Index: src/arm/64/ipred.S
  endfunc
  
  // void ipred_cfl_128_8bpc_neon(pixel *dst, const ptrdiff_t stride,
-@@ -2762,12 +2790,12 @@ endfunc
+@@ -4022,12 +4050,12 @@ endfunc
  //                              const int16_t *ac, const int alpha);
  function ipred_cfl_128_8bpc_neon, export=1
          clz             w9,  w3
@@ -582,7 +582,7 @@ Index: src/arm/64/ipred.S
          add             x6,  x0,  x1
          lsl             x1,  x1,  #1
          br              x7
-@@ -2872,12 +2900,14 @@ L(ipred_cfl_splat_w16):
+@@ -4132,12 +4160,14 @@ L(ipred_cfl_splat_w16):
          b.gt            1b
          ret
  
@@ -601,7 +601,7 @@ Index: src/arm/64/ipred.S
  endfunc
  
  // void ipred_cfl_top_8bpc_neon(pixel *dst, const ptrdiff_t stride,
-@@ -2886,12 +2916,12 @@ endfunc
+@@ -4146,12 +4176,12 @@ endfunc
  //                              const int16_t *ac, const int alpha);
  function ipred_cfl_top_8bpc_neon, export=1
          clz             w9,  w3
@@ -617,7 +617,7 @@ Index: src/arm/64/ipred.S
          add             x6,  x0,  x1
          lsl             x1,  x1,  #1
          br              x7
-@@ -2926,11 +2956,13 @@ function ipred_cfl_top_8bpc_neon, export=1
+@@ -4186,11 +4216,13 @@ function ipred_cfl_top_8bpc_neon, export=1
          dup             v0.8h,   v2.h[0]
          b               L(ipred_cfl_splat_w16)
  
@@ -635,7 +635,7 @@ Index: src/arm/64/ipred.S
  endfunc
  
  // void ipred_cfl_left_8bpc_neon(pixel *dst, const ptrdiff_t stride,
-@@ -2941,15 +2973,15 @@ function ipred_cfl_left_8bpc_neon, export=1
+@@ -4201,15 +4233,15 @@ function ipred_cfl_left_8bpc_neon, export=1
          sub             x2,  x2,  w4, uxtw
          clz             w9,  w3
          clz             w8,  w4
@@ -657,7 +657,7 @@ Index: src/arm/64/ipred.S
          add             x6,  x0,  x1
          lsl             x1,  x1,  #1
          br              x7
-@@ -2988,11 +3020,13 @@ L(ipred_cfl_left_h32):
+@@ -4248,11 +4280,13 @@ L(ipred_cfl_left_h32):
          dup             v0.8h,   v2.h[0]
          br              x9
  
@@ -675,7 +675,7 @@ Index: src/arm/64/ipred.S
  endfunc
  
  // void ipred_cfl_8bpc_neon(pixel *dst, const ptrdiff_t stride,
-@@ -3006,16 +3040,15 @@ function ipred_cfl_8bpc_neon, export=1
+@@ -4266,16 +4300,15 @@ function ipred_cfl_8bpc_neon, export=1
          clz             w9,  w3
          clz             w6,  w4
          dup             v16.8h, w8               // width + height
@@ -696,7 +696,7 @@ Index: src/arm/64/ipred.S
          ushr            v16.8h,  v16.8h,  #1     // (width + height) >> 1
          dup             v17.8h,  w8              // -ctz(width + height)
          add             x6,  x0,  x1
-@@ -3132,15 +3165,17 @@ L(ipred_cfl_w32):
+@@ -4392,15 +4425,17 @@ L(ipred_cfl_w32):
          dup             v0.8h,   v0.h[0]
          b               L(ipred_cfl_splat_w16)
  
@@ -722,7 +722,7 @@ Index: src/arm/64/ipred.S
  endfunc
  
  // void cfl_ac_420_8bpc_neon(int16_t *const ac, const pixel *const ypx,
-@@ -3149,14 +3184,14 @@ endfunc
+@@ -4409,14 +4444,14 @@ endfunc
  function ipred_cfl_ac_420_8bpc_neon, export=1
          clz             w8,  w5
          lsl             w4,  w4,  #2
@@ -740,7 +740,7 @@ Index: src/arm/64/ipred.S
          sub             w8,  w6,  w4         // height - h_pad
          rbit            w9,  w5              // rbit(width)
          rbit            w10, w6              // rbit(height)
-@@ -3295,9 +3330,9 @@ L(ipred_cfl_ac_420_w8_subtract_dc):
+@@ -4555,9 +4590,9 @@ L(ipred_cfl_ac_420_w8_subtract_dc):
  
  L(ipred_cfl_ac_420_w16):
          AARCH64_VALID_JUMP_TARGET
@@ -753,7 +753,7 @@ Index: src/arm/64/ipred.S
          br              x7
  
  L(ipred_cfl_ac_420_w16_wpad0):
-@@ -3454,17 +3489,19 @@ L(ipred_cfl_ac_420_w16_hpad):
+@@ -4714,17 +4749,19 @@ L(ipred_cfl_ac_420_w16_hpad):
          lsl             w6,  w6,  #1
          b               L(ipred_cfl_ac_420_w8_calc_subtract_dc)
  
@@ -781,7 +781,7 @@ Index: src/arm/64/ipred.S
  endfunc
  
  // void cfl_ac_422_8bpc_neon(int16_t *const ac, const pixel *const ypx,
-@@ -3473,14 +3510,14 @@ endfunc
+@@ -4733,14 +4770,14 @@ endfunc
  function ipred_cfl_ac_422_8bpc_neon, export=1
          clz             w8,  w5
          lsl             w4,  w4,  #2
@@ -799,7 +799,7 @@ Index: src/arm/64/ipred.S
          sub             w8,  w6,  w4         // height - h_pad
          rbit            w9,  w5              // rbit(width)
          rbit            w10, w6              // rbit(height)
-@@ -3571,9 +3608,9 @@ L(ipred_cfl_ac_422_w8_wpad):
+@@ -4831,9 +4868,9 @@ L(ipred_cfl_ac_422_w8_wpad):
  
  L(ipred_cfl_ac_422_w16):
          AARCH64_VALID_JUMP_TARGET
@@ -812,7 +812,7 @@ Index: src/arm/64/ipred.S
          br              x7
  
  L(ipred_cfl_ac_422_w16_wpad0):
-@@ -3676,17 +3713,19 @@ L(ipred_cfl_ac_422_w16_wpad3):
+@@ -4936,17 +4973,19 @@ L(ipred_cfl_ac_422_w16_wpad3):
          mov             v1.16b,  v3.16b
          b               L(ipred_cfl_ac_420_w16_hpad)
  
@@ -840,7 +840,7 @@ Index: src/arm/64/ipred.S
  endfunc
  
  // void cfl_ac_444_8bpc_neon(int16_t *const ac, const pixel *const ypx,
-@@ -3695,14 +3734,14 @@ endfunc
+@@ -4955,14 +4994,14 @@ endfunc
  function ipred_cfl_ac_444_8bpc_neon, export=1
          clz             w8,  w5
          lsl             w4,  w4,  #2
@@ -858,7 +858,7 @@ Index: src/arm/64/ipred.S
          sub             w8,  w6,  w4         // height - h_pad
          rbit            w9,  w5              // rbit(width)
          rbit            w10, w6              // rbit(height)
-@@ -3823,9 +3862,10 @@ L(ipred_cfl_ac_444_w16_wpad):
+@@ -5083,9 +5122,10 @@ L(ipred_cfl_ac_444_w16_wpad):
  
  L(ipred_cfl_ac_444_w32):
          AARCH64_VALID_JUMP_TARGET
@@ -872,7 +872,7 @@ Index: src/arm/64/ipred.S
          br              x7
  
  L(ipred_cfl_ac_444_w32_wpad0):
-@@ -3971,15 +4011,17 @@ L(ipred_cfl_ac_444_w32_hpad):
+@@ -5231,15 +5271,17 @@ L(ipred_cfl_ac_444_w32_hpad):
          dup             v4.8h,   v4.h[0]
          b               L(ipred_cfl_ac_420_w8_subtract_dc)
  
Index: patches/patch-src_thread_task_c
===================================================================
RCS file: patches/patch-src_thread_task_c
diff -N patches/patch-src_thread_task_c
--- patches/patch-src_thread_task_c     19 May 2023 11:07:30 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,28 +0,0 @@
-threading: Fix a race on task_thread.init_done
-
-Index: src/thread_task.c
---- src/thread_task.c.orig
-+++ src/thread_task.c
-@@ -327,6 +327,7 @@ int dav1d_task_create_tile_sbrow(Dav1dFrameContext *co
-         f->task_thread.pending_tasks.tail->next = &tasks[0];
-     f->task_thread.pending_tasks.tail = prev_t;
-     atomic_store(&f->task_thread.pending_tasks.merge, 1);
-+    atomic_store(&f->task_thread.init_done, 1);
-     pthread_mutex_unlock(&f->task_thread.pending_tasks.lock);
- 
-     return 0;
-@@ -730,14 +731,11 @@ void *dav1d_worker_task(void *data) {
-                             dav1d_decode_frame_exit(f, DAV1D_ERR(ENOMEM));
-                             f->n_tile_data = 0;
-                             pthread_cond_signal(&f->task_thread.cond);
--                            atomic_store(&f->task_thread.init_done, 1);
--                            continue;
-                         } else {
-                             pthread_mutex_unlock(&ttd->lock);
-                         }
-                     }
-                 }
--                atomic_store(&f->task_thread.init_done, 1);
-                 pthread_mutex_lock(&ttd->lock);
-             } else {
-                 pthread_mutex_lock(&ttd->lock);

Reply via email to