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