• Rupert Swarbrick's avatar
    Correctly flush at the end of OBUs · c59f1940
    Rupert Swarbrick authored
    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
Name
Last commit
Last update
doc Loading commit data...
include Loading commit data...
src Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING Loading commit data...
NEWS Loading commit data...
README.md Loading commit data...
THANKS.md Loading commit data...
meson.build Loading commit data...
meson_options.txt Loading commit data...