@@ -1795,26 +1795,26 @@ static void hls_decode_neighbour(HEVCContext *s, int x_ctb, int y_ctb,
17951795 lc -> end_of_tiles_y = FFMIN (y_ctb + ctb_size , s -> sps -> height );
17961796
17971797 if (s -> pps -> tiles_enabled_flag ) {
1798- tile_left_boundary = x_ctb > 0 &&
1799- s -> pps -> tile_id [ctb_addr_ts ] == s -> pps -> tile_id [s -> pps -> ctb_addr_rs_to_ts [ctb_addr_rs - 1 ]];
1798+ tile_left_boundary = x_ctb > 0 &&
1799+ s -> pps -> tile_id [ctb_addr_ts ] != s -> pps -> tile_id [s -> pps -> ctb_addr_rs_to_ts [ctb_addr_rs - 1 ]];
18001800 slice_left_boundary = x_ctb > 0 &&
1801- s -> tab_slice_address [ctb_addr_rs ] = = s -> tab_slice_address [ctb_addr_rs - 1 ];
1801+ s -> tab_slice_address [ctb_addr_rs ] ! = s -> tab_slice_address [ctb_addr_rs - 1 ];
18021802 tile_up_boundary = y_ctb > 0 &&
1803- 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 ]];
1803+ 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 ]];
18041804 slice_up_boundary = y_ctb > 0 &&
1805- s -> tab_slice_address [ctb_addr_rs ] = = s -> tab_slice_address [ctb_addr_rs - s -> sps -> ctb_width ];
1805+ s -> tab_slice_address [ctb_addr_rs ] ! = s -> tab_slice_address [ctb_addr_rs - s -> sps -> ctb_width ];
18061806 } else {
1807- tile_left_boundary =
1808- tile_up_boundary = 1 ;
1809- slice_left_boundary = ctb_addr_in_slice > 0 ;
1810- slice_up_boundary = ctb_addr_in_slice >= s -> sps -> ctb_width ;
1811- }
1812- lc -> slice_or_tiles_left_boundary = (! slice_left_boundary ) + (! tile_left_boundary << 1 );
1813- lc -> slice_or_tiles_up_boundary = (! slice_up_boundary + (! tile_up_boundary << 1 ) );
1814- lc -> ctb_left_flag = ((x_ctb > 0 ) && (ctb_addr_in_slice > 0 ) && tile_left_boundary );
1815- lc -> ctb_up_flag = ((y_ctb > 0 ) && (ctb_addr_in_slice >= s -> sps -> ctb_width ) && tile_up_boundary );
1816- 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 ]]));
1817- 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 ]]));
1807+ tile_left_boundary =
1808+ tile_up_boundary = 0 ;
1809+ slice_left_boundary = ctb_addr_in_slice <= 0 ;
1810+ slice_up_boundary = ctb_addr_in_slice < s -> sps -> ctb_width ;
1811+ }
1812+ lc -> slice_or_tiles_left_boundary = slice_left_boundary + (tile_left_boundary << 1 );
1813+ lc -> slice_or_tiles_up_boundary = slice_up_boundary + (tile_up_boundary << 1 );
1814+ lc -> ctb_left_flag = ((x_ctb > 0 ) && (ctb_addr_in_slice > 0 ) && ! tile_left_boundary );
1815+ lc -> ctb_up_flag = ((y_ctb > 0 ) && (ctb_addr_in_slice >= s -> sps -> ctb_width ) && ! tile_up_boundary );
1816+ 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 ]]));
1817+ 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 ]]));
18181818}
18191819
18201820static int hls_decode_entry (AVCodecContext * avctxt , void * isFilterThread )
0 commit comments