From 1e893d4d86534407652a236566f1d01788f75ec6 Mon Sep 17 00:00:00 2001 From: Cyril Concolato Date: Fri, 22 Sep 2023 16:05:18 +0000 Subject: [PATCH] Merge pull request #175 from AOMediaCodec/shorten_long_lines SHA: 9c6db67058e2c5788637aad1832ab472240f9069 Reason: push, by cconcolato Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- index.html | 240 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 189 insertions(+), 51 deletions(-) diff --git a/index.html b/index.html index 55bb0b3..f845bf3 100644 --- a/index.html +++ b/index.html @@ -1488,9 +1488,9 @@ } } - + - + +
@@ -2145,16 +2268,18 @@

2.2.2. Description

The AV1SampleEntry sample entry identifies that the track contains AV1 Samples, and uses an AV1CodecConfigurationBox.

2.2.3. Syntax

-
class AV1SampleEntry extends VisualSampleEntry('av01') {
-  AV1CodecConfigurationBox config;
-}
+
class AV1SampleEntry
+extends VisualSampleEntry('av01')
+{
+  AV1CodecConfigurationBox config;
+}
 

2.2.4. Semantics

The width and height fields of the VisualSampleEntry SHALL equal the values of max_frame_width_minus_1 + 1 and max_frame_height_minus_1 + 1 of the Sequence Header OBU applying to the samples associated with this sample entry.

Let MaxRenderWidth be the maximum RenderWidth and MaxRenderHeight be the maximum RenderHeight of all the frames in the track.

The width and height in the TrackHeaderBox SHOULD be equal to MaxRenderWidth and MaxRenderHeight, respectively. Additionally, if MaxRenderWidth and MaxRenderHeight values do not equal respectively the max_frame_width_minus_1 + 1 and max_frame_height_minus_1 + 1 values of the Sequence Header OBU, a PixelAspectRatioBox box SHALL be present in the sample entry and set such that: -
hSpacing / vSpacing = MaxRenderWidth * (max_frame_height_minus_1 + 1) /
-                              ((max_frame_width_minus_1 + 1) * MaxRenderHeight)
+
hSpacing / vSpacing = MaxRenderWidth * (max_frame_height_minus_1 + 1) /
+                        ((max_frame_width_minus_1 + 1) * MaxRenderHeight)
 

The compressorname field of the VisualSampleEntry is an informative name. It is formatted in a fixed 32-byte field, with the first byte set to the number of bytes to be displayed, followed by that number of bytes of displayable data, followed by padding to complete 32 bytes total (including the size byte). The value "\012AOM Coding" is RECOMMENDED; the first byte is a count of the remaining bytes, here represented by \012, which (being octal 12) is decimal 10, the number of bytes in the rest of the string.

NOTE: Parsers may ignore the value of the compressorname field. It is specified in this document simply for legacy and backwards compatibility reasons.

@@ -2171,33 +2296,36 @@

2.3.2. Description

The AV1CodecConfigurationBox contains decoder configuration information that SHALL be valid for every sample that references the sample entry.

2.3.3. Syntax

-
class AV1CodecConfigurationBox extends Box('av1C'){
-  AV1CodecConfigurationRecord av1Config;
-}
-
-aligned (8) class AV1CodecConfigurationRecord {
-  unsigned int (1) marker = 1;
-  unsigned int (7) version = 1;
-  unsigned int (3) seq_profile;
-  unsigned int (5) seq_level_idx_0;
-  unsigned int (1) seq_tier_0;
-  unsigned int (1) high_bitdepth;
-  unsigned int (1) twelve_bit;
-  unsigned int (1) monochrome;
-  unsigned int (1) chroma_subsampling_x;
-  unsigned int (1) chroma_subsampling_y;
-  unsigned int (2) chroma_sample_position;
-  unsigned int (3) reserved = 0;
-
-  unsigned int (1) initial_presentation_delay_present;
-  if (initial_presentation_delay_present) {
-    unsigned int (4) initial_presentation_delay_minus_one;
-  } else {
-    unsigned int (4) reserved = 0;
-  }
-
-  unsigned int (8) configOBUs[];
-}
+
class AV1CodecConfigurationBox
+extends Box('av1C')
+{
+  AV1CodecConfigurationRecord av1Config;
+}
+
+aligned(8) class AV1CodecConfigurationRecord
+{
+  unsigned int(1) marker = 1;
+  unsigned int(7) version = 1;
+  unsigned int(3) seq_profile;
+  unsigned int(5) seq_level_idx_0;
+  unsigned int(1) seq_tier_0;
+  unsigned int(1) high_bitdepth;
+  unsigned int(1) twelve_bit;
+  unsigned int(1) monochrome;
+  unsigned int(1) chroma_subsampling_x;
+  unsigned int(1) chroma_subsampling_y;
+  unsigned int(2) chroma_sample_position;
+  unsigned int(3) reserved = 0;
+
+  unsigned int(1) initial_presentation_delay_present;
+  if(initial_presentation_delay_present) {
+    unsigned int(4) initial_presentation_delay_minus_one;
+  } else {
+    unsigned int(4) reserved = 0;
+  }
+
+  unsigned int(8) configOBUs[];
+}
 

2.3.4. Semantics

The marker field SHALL be set to 1. @@ -2229,14 +2357,14 @@

The difference between initial_presentation_delay_minus_one and initial_display_delay_minus_1 can be illustrated by considering the following example:
a b c d e f g h
 
- where letters correspond to frames. Assume that initial_display_delay_minus_1 is 2, i.e. that once frame c has been decoded, all other frames in the bitstream can be presented on time. If those frames were grouped into temporal units and samples as follows: +

where letters correspond to frames. Assume that initial_display_delay_minus_1 is 2, i.e. that once frame c has been decoded, all other frames in the bitstream can be presented on time. If those frames were grouped into temporal units and samples as follows:

[a] [b c d] [e] [f] [g] [h]
 
- initial_presentation_delay_minus_one would be 1 because it takes presentation of 2 samples to ensure that c is decoded. -But if the frames were grouped as follows: +

initial_presentation_delay_minus_one would be 1 because it takes presentation of 2 samples to ensure that c is decoded. +But if the frames were grouped as follows:

[a] [b] [c] [d e f] [g] [h]
 
- initial_presentation_delay_minus_one would be 2 because it takes presentation of 3 samples to ensure that c is decoded. +

initial_presentation_delay_minus_one would be 2 because it takes presentation of 3 samples to ensure that c is decoded.

The configOBUs field contains zero or more OBUs. Any OBU may be present provided that the following procedures produce compliant AV1 bitstreams: