mirror of
https://git.mirrors.martin98.com/https://github.com/google/draco
synced 2025-06-04 11:25:44 +08:00
Merge pull request #249 from google/spec_change_size
Spec: Update buffer size reading
This commit is contained in:
commit
b5bdbe7c82
@ -71,6 +71,9 @@ byte.
|
||||
|
||||
* All values of att_metadata_id must equal a value stored in att_dec_unique_id.
|
||||
|
||||
* When parsing a value, that value can be assigned to a variable after the value has been parsed.
|
||||
* E.g. sz = buffer_size varUI32
|
||||
* buffer UI8[sz]
|
||||
|
||||
### General Conventions
|
||||
|
||||
|
@ -5,8 +5,8 @@
|
||||
|
||||
~~~~~
|
||||
void ParseEdgebreakerTraversalStandardSymbolData() {
|
||||
eb_symbol_buffer_size varUI64
|
||||
eb_symbol_buffer size * UI8
|
||||
sz = eb_symbol_buffer_size varUI64
|
||||
eb_symbol_buffer UI8[sz]
|
||||
}
|
||||
~~~~~
|
||||
{:.draco-syntax }
|
||||
@ -17,8 +17,8 @@ void ParseEdgebreakerTraversalStandardSymbolData() {
|
||||
~~~~~
|
||||
void ParseEdgebreakerTraversalStandardFaceData() {
|
||||
eb_start_face_buffer_prob_zero UI8
|
||||
eb_start_face_buffer_size varUI32
|
||||
eb_start_face_buffer size * UI8
|
||||
sz = eb_start_face_buffer_size varUI32
|
||||
eb_start_face_buffer UI8[sz]
|
||||
}
|
||||
~~~~~
|
||||
{:.draco-syntax }
|
||||
@ -30,8 +30,8 @@ void ParseEdgebreakerTraversalStandardFaceData() {
|
||||
void ParseEdgebreakerTraversalStandardAttributeConnectivityData() {
|
||||
for (i = 0; i < num_attribute_data; ++i) {
|
||||
attribute_connectivity_decoders_prob_zero[i] UI8
|
||||
attribute_connectivity_decoders_size[i] varUI32
|
||||
attribute_connectivity_decoders_buffer[i] size * UI8
|
||||
sz = attribute_connectivity_decoders_size[i] varUI32
|
||||
attribute_connectivity_decoders_buffer[i] UI8[sz]
|
||||
}
|
||||
}
|
||||
~~~~~
|
||||
|
@ -42,10 +42,10 @@ void ParseAttributeMetadataId(index) {
|
||||
void ParseMetadataElement(metadata) {
|
||||
metadata.num_entries varUI32
|
||||
for (i = 0; i < metadata.num_entries; ++i) {
|
||||
metadata.key_size[i] UI8
|
||||
metadata.key[i] I8[size]
|
||||
metadata.value_size[i] UI8
|
||||
metadata.value[i] I8[size]
|
||||
sz = metadata.key_size[i] UI8
|
||||
metadata.key[i] I8[sz]
|
||||
sz = metadata.value_size[i] UI8
|
||||
metadata.value[i] I8[sz]
|
||||
}
|
||||
metadata.num_sub_metadata varUI32
|
||||
}
|
||||
@ -57,8 +57,8 @@ void ParseMetadataElement(metadata) {
|
||||
|
||||
~~~~~
|
||||
void ParseSubMetadataKey(metadata, index) {
|
||||
metadata.sub_metadata_key_size[index] UI8
|
||||
metadata.sub_metadata_key[index] I8[size]
|
||||
sz = metadata.sub_metadata_key_size[index] UI8
|
||||
metadata.sub_metadata_key[index] I8[sz]
|
||||
}
|
||||
~~~~~
|
||||
{:.draco-syntax}
|
||||
|
@ -51,15 +51,15 @@ void DecodeTaggedSymbols(num_values, num_components, out_values) {
|
||||
l_rans_base = rans_precision * 4;
|
||||
num_symbols_ varUI32
|
||||
BuildSymbolTables(num_symbols_, lut_table_, probability_table_);
|
||||
bytes_encoded varUI64
|
||||
size varUI64
|
||||
encoded_data UI8[size]
|
||||
|
||||
RansInitDecoder(ans_, &encoded_data[0], bytes_encoded, l_rans_base);
|
||||
RansInitDecoder(ans_, &encoded_data[0], size, l_rans_base);
|
||||
for (i = 0; i < num_values; i += num_components) {
|
||||
RansRead(ans_, l_rans_base, rans_precision,
|
||||
lut_table_, probability_table_, &bit_length);
|
||||
lut_table_, probability_table_, &size);
|
||||
for (j = 0; j < num_components; ++j) {
|
||||
val f[bit_length]
|
||||
val f[size]
|
||||
out_values.push_back(val);
|
||||
}
|
||||
}
|
||||
@ -82,9 +82,9 @@ void DecodeRawSymbols(num_values, out_values) {
|
||||
rans_precision = 1 << rans_precision_bits;
|
||||
l_rans_base = rans_precision * 4;
|
||||
BuildSymbolTables(num_symbols_, lut_table_, probability_table_);
|
||||
bytes_encoded varUI64
|
||||
size varUI64
|
||||
buffer UI8[size]
|
||||
RansInitDecoder(ans_, &buffer[0], bytes_encoded, l_rans_base);
|
||||
RansInitDecoder(ans_, &buffer[0], size, l_rans_base);
|
||||
for (i = 0; i < num_values; ++i) {
|
||||
RansRead(ans_, l_rans_base, rans_precision,
|
||||
lut_table_, probability_table_, &val);
|
||||
|
Loading…
x
Reference in New Issue
Block a user