Skip to content

Fix hang when MRP is on; fix out of order buffer release

PhoenixWorth requested to merge PhoenixWorth/SVT-AV1:bug-fixes into master

Description

Fix a hang in low presets (<= M3). The issue occurs when using GOP lengths that are not a multiple of the minigops. Reason for the hang: There is a shortage of PA REF frames due to an issue in the release of the PA reference frame in the 4L MG preceding the I frame. There is a discrepancy between dependent count and ref list counters.

The last MG in the GOP has 15 pictures instead of 16 (since total closed-GOP size is 64). Therefore, the last 15 pictures are split into two MGs: one 4L random-access (i.e. regular 4L) and another 4L LDP (with 7 frames). The dependent count of the second MG is set assuming random-access pred structure, while the actual references are assuming LDP pred structure (they are not the same, hence the discrepancy between the dependent count and the ref count). The issue is that when building the MG structures (in prediction_structure_ctor()) we limit the number of references for LDP to 3 (instead of the usual MAX of 4 for random-access, see comment below).

Issue

Closes #1708 (closed), #1715 (closed) ; possibly related to #1705 (closed)

Author(s)

@PhoenixWorth

Performance impact

  • quality
  • memory
  • speed
  • 8 bit
  • 10 bit
  • N/A

Test set

  • obj-1-fast can be found here
  • other
  • N/A

Merge method

  • Allow the maintainer to squash and merge when PR is ready to create a 1-commit to the master branch. The maintainer will be able to fix typos / combine commit messages to create a more readable 1-commit message or use whatever is stated in the 'Description' section
  • I will clean up my commits and the maintainer shall use 'rebase and merge' to the master branch

Merge request reports