> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of Mark > Thompson > Sent: Sunday, August 23, 2020 6:26 AM > To: ffmpeg-devel@ffmpeg.org > Subject: [FFmpeg-devel] [PATCH] cbs_av1: Fill tile width/height values when > uniform_tile_spacing_flag is set > > They are not explicitly in the bitstream in this case, but it is helpful to > be able to > use these values without always needing to check the flag beforehand. > --- > On 22/08/2020 23:01, Mark Thompson wrote: > > On 21/08/2020 06:29, Fei Wang wrote: > >> ... > >> + > >> + if (s->raw_frame_header.uniform_tile_spacing_flag) { > >> + mi_cols = 2 * ((s->raw_seq.max_frame_width_minus_1 + 8) >> > >> +3); > >> + mi_rows = 2 * ((s->raw_seq.max_frame_height_minus_1 + 8) >> > >> +3); > >> + sb_cols = s->raw_seq.use_128x128_superblock ? ((mi_cols + > >> +31) >> 5) > >> + : ((mi_cols + > >> +15) >> 4); > >> + sb_rows = s->raw_seq.use_128x128_superblock ? ((mi_rows + > >> +31) >> 5) > >> + : ((mi_rows + > >> +15) >> 4); > >> + tile_width_sb = (sb_cols + (1 << > >> +s->raw_frame_header.tile_cols_log2) > >> + -1) >> s->raw_frame_header.tile_cols_log2; > >> + tile_height_sb = (sb_rows + (1 << > >> +s->raw_frame_header.tile_rows_log2) > >> + -1) >> s->raw_frame_header.tile_rows_log2; > > > > Maybe cbs read should always fill the width/height_in_sbs arrays so that all > the special casing for uniform_spacing_flag in this function isn't needed? It > would be trivial to add it there. > > Like this. > > libavcodec/cbs_av1_syntax_template.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/libavcodec/cbs_av1_syntax_template.c > b/libavcodec/cbs_av1_syntax_template.c > index a315e8868a..2c976a9574 100644 > --- a/libavcodec/cbs_av1_syntax_template.c > +++ b/libavcodec/cbs_av1_syntax_template.c > @@ -624,6 +624,15 @@ static int FUNC(tile_info)(CodedBitstreamContext *ctx, > RWContext *rw, > current->tile_rows_log2; > current->tile_rows = (sb_rows + tile_height_sb - 1) / > tile_height_sb; > > + for (i = 0; i < current->tile_cols - 1; i++) > + infer(width_in_sbs_minus_1[i], tile_width_sb); > + infer(width_in_sbs_minus_1[i], > + sb_cols - (current->tile_cols - 1) * tile_width_sb); Should this by using "tile_width_sb -1" and "sb_cols - (current->tile_cols - 1) * tile_width_sb - 1" ? And same for height_in_sbs_minus_1.
> + for (i = 0; i < current->tile_rows - 1; i++) > + infer(height_in_sbs_minus_1[i], tile_height_sb); > + infer(height_in_sbs_minus_1[i], > + sb_rows - (current->tile_rows - 1) * tile_height_sb); > + > } else { > int widest_tile_sb, start_sb, size_sb, max_width, max_height; > > -- > 2.28.0 > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org > with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".