1. 15 Nov, 2018 2 commits
  2. 14 Nov, 2018 5 commits
    • Rupert Swarbrick's avatar
      Fix operator order in obu.c · ca33a9b7
      Rupert Swarbrick authored
      This code originally looked like "assert (init_bit_pos % 8 == 0)" and
      I changed it to use "& 7" to match the prevaling style. Unfortunately,
      "&" binds more weakly than "==". Oops!
      ca33a9b7
    • Rupert Swarbrick's avatar
      Correctly flush at the end of OBUs · c59f1940
      Rupert Swarbrick authored and Ronald S. Bultje's avatar Ronald S. Bultje committed
      This fixes failures when an OBU has more than a byte's worth of
      trailing zeros.
      
      As part of this work, it also rejigs the dav1d_flush_get_bits function
      slightly. This worked before, but it wasn't very obvious why (it
      worked because bits_left was never more than 7). This patch renames it
      to dav1d_bytealign_get_bits, which makes it clearer what it does and
      adds a comment explaining why it works properly.
      
      The new dav1d_bytealign_get_bits is also now void (rather than
      returning the next byte to read). The patch defines
      dav1d_get_bits_pos, which returns the current bit position. This feels
      a little easier to reason about.
      
      We also add a new check to make sure that we haven't fallen off the
      end of the OBU. This can happen when a byte buffer contains more than
      one OBU: the GetBits might not have got to EOF, but we might now be
      half-way through the next OBU.
      c59f1940
    • Rupert Swarbrick's avatar
      Fix how we read the UV quantization level · 2532642b
      Rupert Swarbrick authored and Ronald S. Bultje's avatar Ronald S. Bultje committed
      See section 5.9.12 of the AV1 spec. The flag controlling U and V share
      a quantization level wasn't being read.
      2532642b
    • boyuanxiao-argondesign's avatar
      Fix parsing segmentation data in parse_frame_hdr · 2f7eb1e9
      boyuanxiao-argondesign authored and Ronald S. Bultje's avatar Ronald S. Bultje committed
      The first memset is dead code: if primary_ref_frame is
      PRIMARY_REF_NONE then segmentation.update_data is always true. The
      patch removes this memset and explains why the copy in the other
      branch is correct.
      
      The second memset should always fire: if segmentation is not enabled
      for this frame, the seg_data structure should be set to zero rather
      than copied from a reference frame (see section 5.9.14 of the AV1
      spec).
      2f7eb1e9
    • Ronald S. Bultje's avatar
      3fdb6cc9
  3. 13 Nov, 2018 1 commit
  4. 12 Nov, 2018 1 commit
  5. 09 Nov, 2018 1 commit
  6. 08 Nov, 2018 1 commit
    • Ronald S. Bultje's avatar
      Always free references upon sequence header refresh · 1ddd4cb8
      Ronald S. Bultje authored
      Also clear refpoc[] for intrabc frames. Fixes #146.
      
      This changes sequence header parsing so that we no longer reset
      c->have_seq_hdr to 0 if parsing of the most recent sequence header
      failed. Rather, we will just continue with the old sequence header
      and test any future sequence headers against this. This may help
      error resilience in streams that periodically re-send their sequence
      header.
      1ddd4cb8
  7. 01 Nov, 2018 2 commits
  8. 31 Oct, 2018 2 commits
  9. 29 Oct, 2018 1 commit
  10. 28 Oct, 2018 2 commits
  11. 24 Oct, 2018 4 commits
  12. 23 Oct, 2018 4 commits
  13. 21 Oct, 2018 1 commit
  14. 20 Oct, 2018 1 commit
  15. 18 Oct, 2018 2 commits
    • Janne Grunau's avatar
      fix skip_mode_params parsing if enable_order_hint == 0 · 6ac49461
      Janne Grunau authored and Ronald S. Bultje's avatar Ronald S. Bultje committed
      Fix following ubsan error in #68:
      ../src/env.h:296:24: runtime error: shift exponent -1 is negative
      [Detaching after fork from child process 22253]
          #0 0x7ffff76ad6f9 in get_poc_diff /home/janne/src/dav1d/build-usan/../src/env.h:296:24
          #1 0x7ffff76ad6f9 in parse_frame_hdr /home/janne/src/dav1d/build-usan/../src/obu.c:757
          #2 0x7ffff7696491 in dav1d_parse_obus /home/janne/src/dav1d/build-usan/../src/obu.c:1023:20
          #3 0x7ffff7921c7d in dav1d_decode /home/janne/src/dav1d/build-usan/../src/lib.c:193:20
          #4 0x424869 in main /home/janne/src/dav1d/build-usan/../tools/dav1d.c:108:20
          #5 0x7ffff63dfae6 in __libc_start_main (/lib64/libc.so.6+0x21ae6)
          #6 0x403489 in _start (/home/janne/src/dav1d/build-usan/tools/dav1d+0x403489)
      
      I can't reproduce the ubsan error in the issue.
      6ac49461
    • Janne Grunau's avatar
      parse obu_size/leb128 as unsigned 32-bit integer · 5b67e1a2
      Janne Grunau authored and Ronald S. Bultje's avatar Ronald S. Bultje committed
      Reject out of range values as errors and avoid undefined shifts. Fixes #67.
      5b67e1a2
  16. 13 Oct, 2018 1 commit
  17. 11 Oct, 2018 1 commit
  18. 08 Oct, 2018 1 commit
  19. 07 Oct, 2018 1 commit
  20. 05 Oct, 2018 2 commits
  21. 04 Oct, 2018 3 commits
  22. 03 Oct, 2018 1 commit