mirror of
https://github.com/librempeg/librempeg
synced 2024-11-22 18:49:58 +00:00
2ff687c17f
When a Matroska Block is only stored in compressed form, the size of
the uncompressed block is not explicitly coded and therefore not known
before decompressing it. Therefore the demuxer uses a guess for the
uncompressed size: The first guess is three times the compressed size
and if this is not enough, it is repeatedly incremented by a factor of
three. But when this happens with lzo, the decompression is neither
resumed nor started again. Instead when av_lzo1x_decode indicates that x
bytes of input data could not be decoded, because the output buffer is
already full, the first (not the last) x bytes of the input buffer are
resent for decoding in the next try; they overwrite already decoded
data.
This commit fixes this by instead restarting the decompression anew,
just with a bigger buffer.
This seems to be a regression since
|
||
---|---|---|
.. | ||
api | ||
checkasm | ||
dnn | ||
fate | ||
filtergraphs | ||
ref | ||
.gitignore | ||
audiogen.c | ||
audiomatch.c | ||
base64.c | ||
copycooker.sh | ||
extended.ffconcat | ||
fate-run.sh | ||
fate-valgrind.supp | ||
fate.sh | ||
Makefile | ||
md5.sh | ||
refcmp-metadata.awk | ||
reference.pnm | ||
rotozoom.c | ||
simple1.ffconcat | ||
simple2.ffconcat | ||
test.ffmeta | ||
tiny_psnr.c | ||
tiny_ssim.c | ||
utils.c | ||
videogen.c |