Differential D9642 Diff 31337 extern/draco/draco/src/draco/compression/bit_coders/symbol_bit_decoder.cc
Changeset View
Changeset View
Standalone View
Standalone View
extern/draco/draco/src/draco/compression/bit_coders/symbol_bit_decoder.cc
- This file was moved from extern/draco/dracoenc/src/draco/compression/bit_coders/symbol_bit_decoder.cc.
| #include "draco/compression/bit_coders/symbol_bit_decoder.h" | #include "draco/compression/bit_coders/symbol_bit_decoder.h" | ||||
| #include "draco/compression/entropy/symbol_decoding.h" | #include "draco/compression/entropy/symbol_decoding.h" | ||||
| namespace draco { | namespace draco { | ||||
| bool SymbolBitDecoder::StartDecoding(DecoderBuffer *source_buffer) { | bool SymbolBitDecoder::StartDecoding(DecoderBuffer *source_buffer) { | ||||
| uint32_t size; | uint32_t size; | ||||
| if (!source_buffer->Decode(&size)) | if (!source_buffer->Decode(&size)) { | ||||
| return false; | return false; | ||||
| } | |||||
| symbols_.resize(size); | symbols_.resize(size); | ||||
| if (!DecodeSymbols(size, 1, source_buffer, symbols_.data())) | if (!DecodeSymbols(size, 1, source_buffer, symbols_.data())) { | ||||
| return false; | return false; | ||||
| } | |||||
| std::reverse(symbols_.begin(), symbols_.end()); | std::reverse(symbols_.begin(), symbols_.end()); | ||||
| return true; | return true; | ||||
| } | } | ||||
| bool SymbolBitDecoder::DecodeNextBit() { | bool SymbolBitDecoder::DecodeNextBit() { | ||||
| uint32_t symbol; | uint32_t symbol; | ||||
| DecodeLeastSignificantBits32(1, &symbol); | DecodeLeastSignificantBits32(1, &symbol); | ||||
| DRACO_DCHECK(symbol == 0 || symbol == 1); | DRACO_DCHECK(symbol == 0 || symbol == 1); | ||||
| Show All 25 Lines | |||||