1. 06 Apr, 2017 10 commits
    • Ronald S. Bultje's avatar
      vp8: make wait/thread_mb_pos atomic. · 9a54c6f2
      Ronald S. Bultje authored
      Fixes tsan warnings like this in fate-vp8-test-vector-007:
      
      WARNING: ThreadSanitizer: data race (pid=3590)
        Write of size 4 at 0x7d8c0000e07c by thread T2:
          #0 decode_mb_row_no_filter src/libavcodec/vp8.c:2330 (ffmpeg+0x000000ffb59e)
      [..]
        Previous write of size 4 at 0x7d8c0000e07c by thread T1:
          #0 decode_mb_row_no_filter src/libavcodec/vp8.c:2330 (ffmpeg+0x000000ffb59e)
      9a54c6f2
    • Ronald S. Bultje's avatar
      x86/idctdsp_init: reindent. · 83ae7e63
      Ronald S. Bultje authored
      83ae7e63
    • Ronald S. Bultje's avatar
      jrev/xvid: hardcode use of C put/add_pixels_clamped. · 32baeafe
      Ronald S. Bultje authored
      This removes the last use of the ff_put/add_pixels_clamped global
      function pointers, and as such they are removed.
      
      This patch has a negative effect on performance on MIPS, since there's
      a SIMD-optimized put/add_pixels_clamped, but no xvid or jrev. From a
      code maintenance point of view, that is probably acceptable.
      
      Because the global function pointers are removed, this fixes the following
      tsan warnings when running e.g. fate-dnxhr-parse:
      
      WARNING: ThreadSanitizer: data race (pid=29917)
        Write of size 8 at 0x0000025b12d8 by thread T2 (mutexes: write M1543):
          #0 ff_idctdsp_init src/libavcodec/idctdsp.c:313 (ffmpeg+0x00000044b68e)
      [..]
        Previous write of size 8 at 0x0000025b12d8 by thread T1 (mutexes: write M1541):
          #0 ff_idctdsp_init src/libavcodec/idctdsp.c:313 (ffmpeg+0x00000044b68e)
      32baeafe
    • Ronald S. Bultje's avatar
      x86/simple_idct: add explicit sse2 simple_idct_put/add versions. · e0c20567
      Ronald S. Bultje authored
      These use the mmx IDCT, but sse2 put/add_pixels_clamped implementations.
      This way we don't need to use the ff_put/add_pixels_clamped function
      pointers.
      e0c20567
    • Ronald S. Bultje's avatar
      cavs: add a sse2 idct implementation. · 2f0591cf
      Ronald S. Bultje authored
      This makes using the function pointer ff_add_pixels_clamped() unnecessary,
      since we always know what the best implementation is at compile-time.
      2f0591cf
    • Ronald S. Bultje's avatar
      c9d98c56
    • Ronald S. Bultje's avatar
      x86/xvididct: remove use of ff_put/add_pixels_clamped function pointer. · b51d7d89
      Ronald S. Bultje authored
      Since there's separate SSE2 implementations of xvid_idct_put/add, this
      patch has no practical impact on performance.
      b51d7d89
    • Ronald S. Bultje's avatar
      idct_arm: remove use of ff_put/add_pixels_clamped function pointer. · 40cbd686
      Ronald S. Bultje authored
      Instead, hardcode the use of the _arm implementation of add_pixels,
      and use the C version for put_pixels (as no arm-optimized version
      exists). Since there's separate implementations of idct{,_put,_add}
      for neon, this has no practical impact on performance.
      40cbd686
    • Ronald S. Bultje's avatar
      pthread_frame: allow per-field ThreadFrame owners. · 083300be
      Ronald S. Bultje authored
      This tries to handle cases where separate invocations of decode_frame()
      (each running in separate threads) write to respective fields in the
      same AVFrame->data[]. Having per-field owners makes interaction between
      readers (the referencing thread) and writers (the decoding thread)
      slightly more optimal if both accesses are field-based, since they will
      use the respective producer's thread objects (mutex/cond) instead of
      sharing the thread objects of the first field's producer.
      
      In practice, this fixes the following tsan-warning in fate-h264:
      
      WARNING: ThreadSanitizer: data race (pid=21615)
        Read of size 4 at 0x7d640000d9fc by thread T2 (mutexes: write M1006):
          #0 ff_thread_report_progress pthread_frame.c:569 (ffmpeg:x86_64+0x100f7cf54)
      [..]
        Previous write of size 4 at 0x7d640000d9fc by main thread (mutexes: write M1004):
          #0 update_context_from_user pthread_frame.c:335 (ffmpeg:x86_64+0x100f81abb)
      083300be
    • Thierry Foucu's avatar
  2. 05 Apr, 2017 8 commits
  3. 04 Apr, 2017 22 commits