1. 15 Jan, 2013 3 commits
    • Ronald S. Bultje's avatar
      h264: don't clobber mmco opcode tables for non-first slice headers. · f6badba1
      Ronald S. Bultje authored
      Clobbering these tables will temporarily clobber the template used
      as a basis for other threads to start decoding from. If the other
      decoding thread updates from the template right at that moment,
      subsequent threads will get invalid (or, usually, none at all) mmco
      tables. This leads to invalid reference lists and subsequent decode
      failures.
      
      Therefore, instead, decode the mmco tables only for the first slice in
      a field or frame. For other slices, decode the bits and ensure they
      are identical to the mmco tables in the first slice, but don't ever
      clobber the context state. This prevents other threads from using a
      clobbered/invalid template as starting point for decoding, and thus
      fixes decoding in these cases.
      
      This fixes occasional (~1%) failures of h264-conformance-mr1_bt_a with
      frame-multithreading enabled.
      Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
      f6badba1
    • Michael Niedermayer's avatar
      mpegvideo: Fix long standing race condition with frame threads · 8ac8f049
      Michael Niedermayer authored
      Since resolution change support this also was exploitable, which is
      how it was found.
      
      Fixes read after free and out of array reads.
      
      Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
      Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
      8ac8f049
    • Stephen Hutchinson's avatar
      Fix compilation with libutvideo version 12.0.0 · df4203ac
      Stephen Hutchinson authored
      Reviewed-by: Derek Buitenhuis
      df4203ac
  2. 14 Jan, 2013 37 commits