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);
+        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".

Reply via email to