mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-01 05:39:11 +00:00
LibCompress: Rename LZWDecoder => LzwDecompressor
This is more idiomatic for LibCompress' decoders.
This commit is contained in:
parent
11f53ba9cc
commit
70a3f1f02b
Notes:
sideshowbarker
2024-07-17 16:23:55 +09:00
Author: https://github.com/LucasChollet
Commit: 70a3f1f02b
Pull-request: https://github.com/SerenityOS/serenity/pull/24191
Reviewed-by: https://github.com/nico ✅
Reviewed-by: https://github.com/timschumi
4 changed files with 15 additions and 15 deletions
|
@ -18,12 +18,12 @@
|
|||
namespace Compress {
|
||||
|
||||
template<InputBitStream InputStream>
|
||||
class LZWDecoder {
|
||||
class LzwDecompressor {
|
||||
private:
|
||||
static constexpr int max_code_size = 12;
|
||||
|
||||
public:
|
||||
explicit LZWDecoder(MaybeOwned<InputStream> lzw_stream, u8 min_code_size, i32 offset_for_size_change = 0)
|
||||
explicit LzwDecompressor(MaybeOwned<InputStream> lzw_stream, u8 min_code_size, i32 offset_for_size_change = 0)
|
||||
: m_bit_stream(move(lzw_stream))
|
||||
, m_code_size(min_code_size)
|
||||
, m_original_code_size(min_code_size)
|
||||
|
@ -34,32 +34,32 @@ public:
|
|||
init_code_table();
|
||||
}
|
||||
|
||||
static ErrorOr<ByteBuffer> decode_all(ReadonlyBytes bytes, u8 initial_code_size, i32 offset_for_size_change = 0)
|
||||
static ErrorOr<ByteBuffer> decompress_all(ReadonlyBytes bytes, u8 initial_code_size, i32 offset_for_size_change = 0)
|
||||
{
|
||||
auto memory_stream = make<FixedMemoryStream>(bytes);
|
||||
auto lzw_stream = make<InputStream>(MaybeOwned<Stream>(move(memory_stream)));
|
||||
Compress::LZWDecoder lzw_decoder { MaybeOwned<InputStream> { move(lzw_stream) }, initial_code_size, offset_for_size_change };
|
||||
LzwDecompressor lzw_decompressor { MaybeOwned<InputStream> { move(lzw_stream) }, initial_code_size, offset_for_size_change };
|
||||
|
||||
ByteBuffer decoded;
|
||||
ByteBuffer decompressed;
|
||||
|
||||
u16 const clear_code = lzw_decoder.add_control_code();
|
||||
u16 const end_of_data_code = lzw_decoder.add_control_code();
|
||||
u16 const clear_code = lzw_decompressor.add_control_code();
|
||||
u16 const end_of_data_code = lzw_decompressor.add_control_code();
|
||||
|
||||
while (true) {
|
||||
auto const code = TRY(lzw_decoder.next_code());
|
||||
auto const code = TRY(lzw_decompressor.next_code());
|
||||
|
||||
if (code == clear_code) {
|
||||
lzw_decoder.reset();
|
||||
lzw_decompressor.reset();
|
||||
continue;
|
||||
}
|
||||
|
||||
if (code == end_of_data_code)
|
||||
break;
|
||||
|
||||
TRY(decoded.try_append(lzw_decoder.get_output()));
|
||||
TRY(decompressed.try_append(lzw_decompressor.get_output()));
|
||||
}
|
||||
|
||||
return decoded;
|
||||
return decompressed;
|
||||
}
|
||||
|
||||
u16 add_control_code()
|
||||
|
|
|
@ -184,7 +184,7 @@ static ErrorOr<void> decode_frame(GIFLoadingContext& context, size_t frame_index
|
|||
if (image->lzw_min_code_size > 8)
|
||||
return Error::from_string_literal("LZW minimum code size is greater than 8");
|
||||
|
||||
auto decoded_stream = TRY(Compress::LZWDecoder<LittleEndianInputBitStream>::decode_all(image->lzw_encoded_bytes, image->lzw_min_code_size));
|
||||
auto decoded_stream = TRY(Compress::LzwDecompressor<LittleEndianInputBitStream>::decompress_all(image->lzw_encoded_bytes, image->lzw_min_code_size));
|
||||
|
||||
auto const& color_map = image->use_global_color_map ? context.logical_screen.color_map : image->color_map;
|
||||
|
||||
|
|
|
@ -490,9 +490,9 @@ private:
|
|||
// Fortunately, as the first byte of a LZW stream is a constant we can guess the endianess
|
||||
// and deduce the version from it. The first code is 0x100 (9-bits).
|
||||
if (encoded_bytes[0] == 0x00)
|
||||
decoded_bytes = TRY(Compress::LZWDecoder<LittleEndianInputBitStream>::decode_all(encoded_bytes, 8, 0));
|
||||
decoded_bytes = TRY(Compress::LzwDecompressor<LittleEndianInputBitStream>::decompress_all(encoded_bytes, 8, 0));
|
||||
else
|
||||
decoded_bytes = TRY(Compress::LZWDecoder<BigEndianInputBitStream>::decode_all(encoded_bytes, 8, -1));
|
||||
decoded_bytes = TRY(Compress::LzwDecompressor<BigEndianInputBitStream>::decompress_all(encoded_bytes, 8, -1));
|
||||
|
||||
return decoded_bytes;
|
||||
};
|
||||
|
|
|
@ -262,7 +262,7 @@ PDFErrorOr<ByteBuffer> Filter::decode_lzw(ReadonlyBytes bytes, RefPtr<DictObject
|
|||
if (decode_parms && decode_parms->contains(CommonNames::EarlyChange))
|
||||
early_change = decode_parms->get_value(CommonNames::EarlyChange).get<int>();
|
||||
|
||||
auto decoded = TRY(Compress::LZWDecoder<BigEndianInputBitStream>::decode_all(bytes, 8, -early_change));
|
||||
auto decoded = TRY(Compress::LzwDecompressor<BigEndianInputBitStream>::decompress_all(bytes, 8, -early_change));
|
||||
return handle_lzw_and_flate_parameters(move(decoded), decode_parms);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue