util/bitstream.h: Adjust m_doffset based on m_dbitoffs when flushing. (#12060)

Fixes issues exposed when reading LaserDisc CHDs.
This commit is contained in:
987123879113 2024-02-25 03:38:15 +09:00 committed by GitHub
parent 9827b7f547
commit 657c28b985
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -175,6 +175,10 @@ inline uint32_t bitstream_in::read_offset() const
result--;
bits -= 8;
}
if (m_dbitoffs > bits)
result++;
return result;
}
@ -190,7 +194,11 @@ inline uint32_t bitstream_in::flush()
m_doffset--;
m_bits -= 8;
}
m_bits = m_buffer = 0;
if (m_dbitoffs > m_bits)
m_doffset++;
m_bits = m_buffer = m_dbitoffs = 0;
return m_doffset;
}