Merge pull request #249 from google/spec_change_size

Spec: Update buffer size reading
This commit is contained in:
FrankGalligan 2017-10-20 10:50:35 -07:00 committed by GitHub
commit b5bdbe7c82
4 changed files with 21 additions and 18 deletions

View File

@ -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

View File

@ -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]
}
}
~~~~~

View File

@ -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}

View File

@ -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);