Showing the changes to libavcodec (2 of 2 files). Show all
Unified · Split
| @@ -593,6 +593,7 @@ typedef struct H266RawPPS { · 592 unmodified lines | ||
| 593 | 593 | uint16_t sub_pic_id_val[VVC_MAX_SLICES]; ///< SubpicIdVal |
| 594 | 594 | uint16_t col_width_val[VVC_MAX_TILE_COLUMNS]; ///< ColWidthVal |
| 595 | 595 | uint16_t row_height_val[VVC_MAX_TILE_ROWS]; ///< RowHeightVal |
| 596 | + uint16_t slice_top_left_tile_idx[VVC_MAX_SLICES]; | |
| 596 | 597 | } H266RawPPS; |
| 597 | 598 | |
| 598 | 599 | typedef struct H266RawAPS { |
| @@ -1976,6 +1976,7 @@ static int FUNC(pps) (CodedBitstreamContext *ctx, RWContext *rw, · 1975 unmodified lines | ||
| 1976 | 1976 | else |
| 1977 | 1977 | infer(pps_tile_idx_delta_present_flag, 0); |
| 1978 | 1978 | for (i = 0; i < current->pps_num_slices_in_pic_minus1; i++) { |
| 1979 | + current->slice_top_left_tile_idx[i] = tile_idx; | |
| 1979 | 1980 | tile_x = tile_idx % current->num_tile_columns; |
| 1980 | 1981 | tile_y = tile_idx / current->num_tile_columns; |
| 1981 | 1982 | if (tile_x != current->num_tile_columns - 1) { |
| @@ -2058,6 +2059,8 @@ static int FUNC(pps) (CodedBitstreamContext *ctx, RWContext *rw, · 76 unmodified lines | ||
| 2058 | 2059 | } |
| 2059 | 2060 | num_slices_in_tile = j; |
| 2060 | 2061 | } |
| 2062 | + for (int k = 0; k < num_slices_in_tile; k++) | |
| 2063 | + current->slice_top_left_tile_idx[i + k] = tile_idx; | |
| 2061 | 2064 | i += num_slices_in_tile - 1; |
| 2062 | 2065 | } else { |
| 2063 | 2066 | uint16_t height = 0; |
| @@ -2101,6 +2104,7 @@ static int FUNC(pps) (CodedBitstreamContext *ctx, RWContext *rw, · 37 unmodified lines | ||
| 2101 | 2104 | if (i == current->pps_num_slices_in_pic_minus1) { |
| 2102 | 2105 | uint16_t height = 0; |
| 2103 | 2106 | |
| 2107 | + current->slice_top_left_tile_idx[i] = tile_idx; | |
| 2104 | 2108 | tile_x = tile_idx % current->num_tile_columns; |
| 2105 | 2109 | tile_y = tile_idx / current->num_tile_columns; |
| 2106 | 2110 | if (tile_y >= current->num_tile_rows) |