1. 27 May, 2020 2 commits
    • Xu Guangxin's avatar
      lavc/hevc_refs: Fix the logic of find_ref_idx() · 8b5ffaea
      Xu Guangxin authored
      Currently find_ref_idx() would trigger 2 scans in DPB to find the
      requested POC:
      1. Firstly, ignore MSB of ref->poc and search for the requested POC;
      2. Secondly, compare the entire ref->poc with requested POC;
      
      For long term reference, we are able to only check LSB if MSB is not
      presented(e.g. delta_poc_msb_present_flag == 0). However, for short
      term reference, we should never ignore poc's MSB and it should be
      kind of bit-exact. (Details in 8.3.2)
      
      Otherwise this leads to decoding failures like:
      [hevc @ 0x5638f4328600] Error constructing the frame RPS.
      [hevc @ 0x5638f4328600] Error parsing NAL unit #2.
      [hevc @ 0x5638f4338a80] Could not find ref with POC 21
      Error while decoding stream #0:0: Invalid data found when processing input
      
      Search the requested POC based on whether MSB is used, and avoid
      the 2-times scan for DPB buffer. This benefits both native HEVC
      decoder and integrated HW decoders.
      Signed-off-by: 's avatarXu Guangxin <guangxin.xu@intel.com>
      Signed-off-by: 's avatarLinjie Fu <linjie.fu@intel.com>
      8b5ffaea
    • Xu Guangxin's avatar
      lavc/hevc: Add poc_msb_present filed in LongTermRPS · 939a4db2
      Xu Guangxin authored
      delta_poc_msb_present_flag is needed in find_ref_idx() to
      indicate whether MSB of POC should be taken into account.
      
      Details in 8.3.2.
      Signed-off-by: 's avatarXu Guangxin <guangxin.xu@intel.com>
      Signed-off-by: 's avatarLinjie Fu <linjie.fu@intel.com>
      939a4db2
  2. 26 May, 2020 17 commits
  3. 25 May, 2020 10 commits
  4. 24 May, 2020 1 commit
  5. 23 May, 2020 10 commits