|
|
|
@ -677,7 +677,6 @@ VpxBitStreamWriter VP9::ComposeUncompressedHeader() { |
|
|
|
current_frame_info.intra_only = true; |
|
|
|
|
|
|
|
} else { |
|
|
|
std::array<s32, 3> ref_frame_index; |
|
|
|
|
|
|
|
if (!current_frame_info.show_frame) { |
|
|
|
uncomp_writer.WriteBit(current_frame_info.intra_only); |
|
|
|
@ -692,9 +691,9 @@ VpxBitStreamWriter VP9::ComposeUncompressedHeader() { |
|
|
|
} |
|
|
|
|
|
|
|
// Last, Golden, Altref frames
|
|
|
|
ref_frame_index = std::array<s32, 3>{0, 1, 2}; |
|
|
|
std::array<s32, 3> ref_frame_index{0, 1, 2}; |
|
|
|
|
|
|
|
// set when next frame is hidden
|
|
|
|
// Set when next frame is hidden
|
|
|
|
// altref and golden references are swapped
|
|
|
|
if (swap_next_golden) { |
|
|
|
ref_frame_index = std::array<s32, 3>{0, 2, 1}; |
|
|
|
@ -783,17 +782,19 @@ VpxBitStreamWriter VP9::ComposeUncompressedHeader() { |
|
|
|
for (std::size_t index = 0; index < current_frame_info.ref_deltas.size(); index++) { |
|
|
|
const s8 old_deltas = loop_filter_ref_deltas[index]; |
|
|
|
const s8 new_deltas = current_frame_info.ref_deltas[index]; |
|
|
|
const bool differing_delta = old_deltas != new_deltas; |
|
|
|
|
|
|
|
loop_filter_delta_update |= |
|
|
|
(update_loop_filter_ref_deltas[index] = old_deltas != new_deltas); |
|
|
|
update_loop_filter_ref_deltas[index] = differing_delta; |
|
|
|
loop_filter_delta_update |= differing_delta; |
|
|
|
} |
|
|
|
|
|
|
|
for (std::size_t index = 0; index < current_frame_info.mode_deltas.size(); index++) { |
|
|
|
const s8 old_deltas = loop_filter_mode_deltas[index]; |
|
|
|
const s8 new_deltas = current_frame_info.mode_deltas[index]; |
|
|
|
const bool differing_delta = old_deltas != new_deltas; |
|
|
|
|
|
|
|
loop_filter_delta_update |= |
|
|
|
(update_loop_filter_mode_deltas[index] = old_deltas != new_deltas); |
|
|
|
update_loop_filter_mode_deltas[index] = differing_delta; |
|
|
|
loop_filter_delta_update |= differing_delta; |
|
|
|
} |
|
|
|
|
|
|
|
uncomp_writer.WriteBit(loop_filter_delta_update); |
|
|
|
|