diff --git a/index.bs b/index.bs index ecda46a..ed5590b 100644 --- a/index.bs +++ b/index.bs @@ -318,21 +318,21 @@ The version field indicates the version of the AV1CodecConfi The seq_profile field indicates the AV1 profile and SHALL be equal to the seq_profile value from the [=Sequence Header OBU=]. -The seq_level_idx_0 field indicates the value of seq_level_idx[0] found in the [=Sequence Header OBU=] and SHALL be equal to the value of seq_level_idx[0] in the [=Sequence Header OBU=]. +The seq_level_idx_0 field SHALL be equal to the value of seq_level_idx[0] from the [=Sequence Header OBU=]. -The seq_tier_0 field indicates the value of seq_tier[0] found in the [=Sequence Header OBU=] and SHALL be equal to the value of seq_tier[0] in the [=Sequence Header OBU=]. +The seq_tier_0 field SHALL be equal to the value of seq_tier[0] from the [=Sequence Header OBU=]. -The high_bitdepth field indicates the value of the [=high_bitdepth=] flag from the [=Sequence Header OBU=]. +The high_bitdepth field SHALL be equal to the value of high_bitdepth flag from the [=Sequence Header OBU=]. -The twelve_bit field indicates the value of the [=twelve_bit=] flag from the [=Sequence Header OBU=]. When twelve_bit is not present in the [=Sequence Header OBU=] the AV1CodecConfigurationRecord twelve_bit value SHALL be 0. +The twelve_bit field SHALL be equal to the value of the twelve_bit flag from the [=Sequence Header OBU=]. When twelve_bit is not present in the [=Sequence Header OBU=] the AV1CodecConfigurationRecord twelve_bit value SHALL be 0. -The monochrome field indicates the value of the [=mono_chrome=] flag from the [=Sequence Header OBU=]. +The monochrome field SHALL be equal to the value of the [=mono_chrome=] flag from the [=Sequence Header OBU=]. -The chroma_subsampling_x field indicates the [=subsampling_x=] value from the [=Sequence Header OBU=]. +The chroma_subsampling_x field SHALL be equal to the value of the [=subsampling_x=] value from the [=Sequence Header OBU=]. -The chroma_subsampling_y field indicates the [=subsampling_y=] value from the [=Sequence Header OBU=]. +The chroma_subsampling_y field SHALL be equal to the value of the [=subsampling_y=] value from the [=Sequence Header OBU=]. -The chroma_sample_position field indicates the [=chroma_sample_position=] value from the [=Sequence Header OBU=]. +The chroma_sample_position field SHALL be equal to the value of the [=chroma_sample_position=] value from the [=Sequence Header OBU=]. When not specified in the [=Sequence Header OBU=], and not defined by the conditions specified in the [[!AV1]] [=color_config=], the values of [=chroma_subsampling_x=], [=chroma_subsampling_y=], and [=chroma_sample_position=] SHALL be 0. @@ -367,6 +367,9 @@ But if the frames were grouped as follows: The configOBUs field contains zero or more OBUs. Any OBU may be present provided that the following procedures produce compliant AV1 bitstreams: - From any sync sample, an AV1 bitstream is formed by first outputting the OBUs contained in the [=AV1CodecConfigurationBox=] and then by outputing all OBUs in the samples themselves, in order, starting from the sync sample. + +NOTE: If a [=Sequence Header OBU=] is stored in the [=configOBUs=] field, because a sync sample also stores the [=Sequence Header OBU=], this procedure will produce 2 consecutive and identical [=Sequence Header OBUs=]. Compliant [[AV1]] decoders are expected to handle that. + - From any sample marked with the [=AV1ForwardKeyFrameSampleGroupEntry=], an AV1 bitstream is formed by first outputting the OBUs contained in the [=AV1CodecConfigurationBox=] and then by outputing all OBUs in the sample itself, then by outputting all OBUs in the samples, in order, starting from the sample at the distance indicated by the sample group. Additionally, the configOBUs field SHALL contain at most one [=Sequence Header OBU=] and if present, it SHALL be the first OBU. @@ -377,6 +380,8 @@ OBUs stored in the configOBUs field follow the [=open_bitstream_unit=] [=Low Ove When a [=Sequence Header OBU=] is contained within the configOBUs of the AV1CodecConfigurationRecord, the values present in the [=Sequence Header OBU=] contained within configOBUs SHALL match the values of the AV1CodecConfigurationRecord. +When the samples associated with a sample entry do not contain any sync sample, a [=Sequence Header OBU=] SHALL be present in the [=configOBUs=] field of the AV1CodecConfigurationRecord of that sample entry. + The presentation times of AV1 samples are given by the ISOBMFF structures. The [=timing_info_present_flag=] in the [=Sequence Header OBU=] (in the configOBUs field or in the associated samples) SHOULD be set to 0. If set to 1, the [=timing_info=] structure of the [=Sequence Header OBU=], the [=frame_presentation_time=] and [=buffer_removal_time=] fields of the [=Frame Header OBUs=], if present, SHALL be ignored for the purpose of timed processing of the ISOBMFF file. The sample entry SHOULD contain a 'colr' box with a colour_type set to 'nclx'. If a 'colr' box with a colour_type set to 'nclx' is present, the following applies: @@ -715,8 +720,8 @@ Changes since v1.2.0 release {#changelist} - Shorten long lines - Update the CMAF section to mention the cmf2 brand. - Clarify the color info in the codecs string. +- Clarify storage of Sequence Header OBU. - Make assert-id's unique and add them to the previous version. - Add a note on the identification of the T.35 message. - Use undated reference for ISOBMFF. - Add note for encryption description limit. -