summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-08-09 21:01:06 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-08-09 21:01:55 +0200
commit3f2495d98c260e6ea836d2f8e0b8e093983e8337 (patch)
treeb97928b22b254cd742bb15ef6cc7d26aa008679f /libavcodec
parent73e9d4cd6fa6fb627f0cf0affb91fa7dac7f9c68 (diff)
parent70211539a39ca3854f8a9e97d51dc27caa079943 (diff)
Merge commit '70211539a39ca3854f8a9e97d51dc27caa079943'
* commit '70211539a39ca3854f8a9e97d51dc27caa079943': hevc: deobfuscate slice/tile boundary handling for DBF Conflicts: libavcodec/hevc.c libavcodec/hevc_filter.c See: a5c621aa852522c79146035b2db4b89d2e096d3c Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/hevc.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index 389f3ec837..1972a5b19a 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -2224,7 +2224,7 @@ static void hls_decode_neighbour(HEVCContext *s, int x_ctb, int y_ctb,
lc->boundary_flags = 0;
if (s->pps->tiles_enabled_flag) {
- if (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]])
+ if (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]])
lc->boundary_flags |= BOUNDARY_LEFT_TILE;
if (x_ctb > 0 && s->tab_slice_address[ctb_addr_rs] != s->tab_slice_address[ctb_addr_rs - 1])
lc->boundary_flags |= BOUNDARY_LEFT_SLICE;
@@ -2238,10 +2238,11 @@ static void hls_decode_neighbour(HEVCContext *s, int x_ctb, int y_ctb,
if (ctb_addr_in_slice < s->sps->ctb_width)
lc->boundary_flags |= BOUNDARY_UPPER_SLICE;
}
- lc->ctb_left_flag = ((x_ctb > 0) && (ctb_addr_in_slice > 0) && !(lc->boundary_flags & BOUNDARY_LEFT_TILE));
+
+ lc->ctb_left_flag = ((x_ctb > 0) && (ctb_addr_in_slice > 0) && !(lc->boundary_flags & BOUNDARY_LEFT_TILE));
lc->ctb_up_flag = ((y_ctb > 0) && (ctb_addr_in_slice >= s->sps->ctb_width) && !(lc->boundary_flags & BOUNDARY_UPPER_TILE));
- 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_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]]));
}
static int hls_decode_entry(AVCodecContext *avctxt, void *isFilterThread)