Spec: Fix handling of split symbol id during topology split.

- Addresses a comment in KhronosGroup/glTF#1114
This commit is contained in:
Frank Galligan 2017-10-24 14:08:21 -07:00
parent fa537c2fd5
commit e9fd3a8e0a
2 changed files with 9 additions and 4 deletions

View File

@ -180,9 +180,9 @@ void NewActiveCornerReached(new_corner, symbol_id) {
case TOPOLOGY_S:
{
corner_b = active_corner_stack.pop_back();
for (i = 0; i < split_active_corners.size(); ++i) {
if (split_active_corners[i].decoder_split_symbol_id == symbol_id) {
active_corner_stack.push_back(split_active_corners[i].corner);
for (i = 0; i < topology_split_id.size(); ++i) {
if (topology_split_id[i] == symbol_id) {
active_corner_stack.push_back(split_active_corners[i]);
}
}
corner_a = active_corner_stack.back();
@ -310,7 +310,8 @@ void NewActiveCornerReached(new_corner, symbol_id) {
}
// Convert the encoder split symbol id to decoder symbol id.
dec_split_id = num_encoded_symbols - enc_split_id - 1;
topology_edge_list[dec_split_id] = new_active_corner;
topology_split_id.push_back(dec_split_id);
split_active_corners.push_back(new_active_corner);
}
}
}

View File

@ -155,6 +155,10 @@
* 2: TOPOLOGY_L
* 3: TOPOLOGY_R
* 4: TOPOLOGY_E
* topology_split_id
* List of decoder split ids encountered during a topology split.
* split_active_corners
* List of corners encountered during a topology split.
#### EdgeBreaker Traversal
* eb_symbol_buffer_size