Commit 81d0252d authored by gcocherel's avatar gcocherel Committed by Michael Niedermayer

hevc : update hls_decode_neighbour(cherry picked from commit...

hevc : update hls_decode_neighbour(cherry picked from commit 14341c6d9a6885657ba365807223e96a67d6c0ed)
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 0afa254d
...@@ -1794,23 +1794,23 @@ static void hls_decode_neighbour(HEVCContext *s, int x_ctb, int y_ctb, ...@@ -1794,23 +1794,23 @@ static void hls_decode_neighbour(HEVCContext *s, int x_ctb, int y_ctb,
if (s->pps->tiles_enabled_flag) { if (s->pps->tiles_enabled_flag) {
tile_left_boundary = x_ctb > 0 && tile_left_boundary = x_ctb > 0 &&
s->pps->tile_id[ctb_addr_ts] == s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs - 1]]; s->pps->tile_id[ctb_addr_ts] != s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs-1]];
slice_left_boundary = x_ctb > 0 && slice_left_boundary = x_ctb > 0 &&
s->tab_slice_address[ctb_addr_rs] == s->tab_slice_address[ctb_addr_rs - 1]; s->tab_slice_address[ctb_addr_rs] != s->tab_slice_address[ctb_addr_rs - 1];
tile_up_boundary = y_ctb > 0 && tile_up_boundary = y_ctb > 0 &&
s->pps->tile_id[ctb_addr_ts] == s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs - s->sps->ctb_width]]; s->pps->tile_id[ctb_addr_ts] != s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs - s->sps->ctb_width]];
slice_up_boundary = y_ctb > 0 && slice_up_boundary = y_ctb > 0 &&
s->tab_slice_address[ctb_addr_rs] == s->tab_slice_address[ctb_addr_rs - s->sps->ctb_width]; s->tab_slice_address[ctb_addr_rs] != s->tab_slice_address[ctb_addr_rs - s->sps->ctb_width];
} else { } else {
tile_left_boundary = tile_left_boundary =
tile_up_boundary = 1; tile_up_boundary = 0;
slice_left_boundary = ctb_addr_in_slice > 0; slice_left_boundary = ctb_addr_in_slice <= 0;
slice_up_boundary = ctb_addr_in_slice >= s->sps->ctb_width; slice_up_boundary = ctb_addr_in_slice < s->sps->ctb_width;
} }
lc->slice_or_tiles_left_boundary = (!slice_left_boundary) + (!tile_left_boundary << 1); lc->slice_or_tiles_left_boundary = slice_left_boundary + (tile_left_boundary << 1);
lc->slice_or_tiles_up_boundary = (!slice_up_boundary + (!tile_up_boundary << 1)); lc->slice_or_tiles_up_boundary = slice_up_boundary + (tile_up_boundary << 1);
lc->ctb_left_flag = ((x_ctb > 0) && (ctb_addr_in_slice > 0) && tile_left_boundary); lc->ctb_left_flag = ((x_ctb > 0) && (ctb_addr_in_slice > 0) && !tile_left_boundary);
lc->ctb_up_flag = ((y_ctb > 0) && (ctb_addr_in_slice >= s->sps->ctb_width) && tile_up_boundary); lc->ctb_up_flag = ((y_ctb > 0) && (ctb_addr_in_slice >= s->sps->ctb_width) && !tile_up_boundary);
lc->ctb_up_right_flag = ((y_ctb > 0) && (ctb_addr_in_slice+1 >= s->sps->ctb_width) && (s->pps->tile_id[ctb_addr_ts] == s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs+1 - s->sps->ctb_width]])); lc->ctb_up_right_flag = ((y_ctb > 0) && (ctb_addr_in_slice+1 >= s->sps->ctb_width) && (s->pps->tile_id[ctb_addr_ts] == s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs+1 - s->sps->ctb_width]]));
lc->ctb_up_left_flag = ((x_ctb > 0) && (y_ctb > 0) && (ctb_addr_in_slice-1 >= s->sps->ctb_width) && (s->pps->tile_id[ctb_addr_ts] == s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs-1 - s->sps->ctb_width]])); lc->ctb_up_left_flag = ((x_ctb > 0) && (y_ctb > 0) && (ctb_addr_in_slice-1 >= s->sps->ctb_width) && (s->pps->tile_id[ctb_addr_ts] == s->pps->tile_id[s->pps->ctb_addr_rs_to_ts[ctb_addr_rs-1 - s->sps->ctb_width]]));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment