ISO/IEC 23008-3/DAmd 1
ISO/IEC 23008-3/DAmd 1
ISO/IEC 23008-3/DAmd 1: Information technology — High efficiency coding and media delivery in heterogeneous environments — Part 3: 3D audio — Amendment 1: Media authenticity

ISO/IEC 23008-3:XXXX/DAM 1:2026(en)

ISO/IEC JTC1/SC 29/WG 6

Secretariat: JISC

Date: 2025-11-21

Information technology — High efficiency coding and media delivery in heterogeneous environments — Part 3: 3D audio
Amendment 1: Media authenticity

© ISO/IEC 2026

All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of the requester.

ISO copyright office

CP 401 • Ch. de Blandonnet 8

CH-1214 Vernier, Geneva

Phone: +41 22 749 01 11

Email: copyright@iso.org

Website: www.iso.org

Published in Switzerland

Foreword

ISO (the International Organization for Standardization) is a worldwide federation of national standards bodies (ISO member bodies). The work of preparing International Standards is normally carried out through ISO technical committees. Each member body interested in a subject for which a technical committee has been established has the right to be represented on that committee. International organizations, governmental and non-governmental, in liaison with ISO, also take part in the work. ISO collaborates closely with the International Electrotechnical Commission (IEC) on all matters of electrotechnical standardization.

The procedures used to develop this document and those intended for its further maintenance are described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the different types of ISO documents should be noted. This document was drafted in accordance with the editorial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives).

ISO draws attention to the possibility that the implementation of this document may involve the use of (a) patent(s). ISO takes no position concerning the evidence, validity or applicability of any claimed patent rights in respect thereof. As of the date of publication of this document, ISO [had/had not] received notice of (a) patent(s) which may be required to implement this document. However, implementers are cautioned that this may not represent the latest information, which may be obtained from the patent database available at www.iso.org/patents. ISO shall not be held responsible for identifying any or all such patent rights.

Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement.

For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and expressions related to conformity assessment, as well as information about ISO's adherence to the World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT), see www.iso.org/iso/foreword.html.

This document was prepared by Technical Committee [or Project Committee] ISO/TC [or ISO/PC] ###, [name of committee], Subcommittee SC ##, [name of subcommittee].

This second/third/… edition cancels and replaces the first/second/… edition (ISO #####:####), which has been technically revised.

The main changes are as follows:

— xxx xxxxxxx xxx xxxx

A list of all parts in the ISO ##### series can be found on the ISO website.

Any feedback or questions on this document should be directed to the user’s national standards body. A complete listing of these bodies can be found at www.iso.org/members.html.

Information technology — High efficiency coding and media delivery in heterogeneous environments — Part 3: 3D audio
Amendment 1: Media authenticity

 

Add the following at the end of Section 2:

IETF RFC 3986, Uniform Resource Identifier (URI): Generic Syntax

 

Replace Table 223 with the following:

Syntax

No. of bits

Mnemonic

MHASPacketPayload(MHASPacketType)

{

switch (MHASPacketType) {

case PACTYP_SYNC:

0xA5; /* syncword*/

8

uimsbf

break;

case PACTYP_MPEGH3DACFG:

mpegh3daConfig();

break;

case PACTYP_MPEGH3DAFRAME:

mpegh3daFrame();

break;

case PACTYP_AUDIOSCENEINFO:

mae_AudioSceneInfo();

break;

case PACTYP_FILLDATA:

for (i=0; i< MHASPacketLength; i++) {

mhas_fill_data_byte(i);

8

bslbf

}

break;

case PACTYP_SYNCGAP:

syncSpacingLength = escapedValue(16,24,24);

16,40,64

uimsbf

break;

case PACTYP_MARKER:

for (i=0; i< MHASPacketLength; i++) {

marker_byte(i);

8

bslbf

}

break;

case PACTYP_CRC16:

mhasParity16Data;

16

bslbf

break;

case PACTYP_CRC32:

mhasParity32Data;

32

bslbf

break;

case PACTYP_GLOBAL_CRC16:

global_CRC_type;

2

bslbf

numProtectedPackets;

6

bslbf

mhasParity16Data;

16

bslbf

break;

case PACTYP_ GLOBAL_CRC32:

global_CRC_type;

2

bslbf

numProtectedPackets;

6

bslbf

mhasParity32Data;

32

bslbf

break;

case PACTYP_DESCRIPTOR:

for (i=0; i< MHASPacketLength; i++) {

mhas_descriptor_data_byte(i);

8

bslbf

}

break;

case PACTYP_USERINTERACTION:

mpegh3daElementInteraction();

break;

case PACTYP_LOUDNESS_DRC:

mpegh3daLoudnessDrcInterface();

break;

case PACTYP_BUFFERINFO:

mhas_buffer_fullness_present

1

uimsbf

if (mhas_buffer_fullness_present)

mhas_buffer_fullness = escapedValue(15,24,32);

15,39,71

uimsbf

}

break;

case PACTYP_AUDIOTRUNCATION:

audioTruncationInfo();

break;

case PACTYP_GENDATA:

GenDataPayload();

break;

case PACTYP_EARCON:

earconInfo();

break;

case PACTYP_PCMCONFIG:

pcmDataConfig();

break;

case PACTYP_PCMDATA:

pcmDataPayload();

break;

case PACTYP_LOUDNESS:

mpegh3daLoudnessInfoSet();

break;

case PACTYP_AUTH_START:

mpegh3daAuthStart();

break;

case PACTYP_AUTH_SIG:

mpegh3daAuthSig();

break;

case PACTYP_UUID:

authUUID();

break;

case PACTYP_TIMESTAMP:

authTimestamp();

break;

}

ByteAlign();

}

 

Replace Table 226 with the following:

Table 1 — MHASPacketType

Table 2 — Value

PACTYP_FILLDATA

0

PACTYP_MPEGH3DACFG

1

PACTYP_MPEGH3DAFRAME

2

PACTYP_AUDIOSCENEINFO

3

/* reserved for ISO use */

4-5

PACTYP_SYNC

6

PACTYP_SYNCGAP

7

PACTYP_MARKER

8

PACTYP_CRC16

9

PACTYP_CRC32

10

PACTYP_DESCRIPTOR

11

PACTYP_USERINTERACTION

12

PACTYP_LOUDNESS_DRC

13

PACTYP_BUFFERINFO

14

PACTYP_GLOBAL_CRC16

15

PACTYP_GLOBAL_CRC32

16

PACTYP_AUDIOTRUNCATION

17

PACTYP_GENDATA

18

PACTYP_EARCON

19

PACTYP_PCMCONFIG

20

PACTYP_PCMDATA

21

PACTYP_LOUDNESS

22

PACTYP_AUTH_START

23

PACTYP_AUTH_SIG

24

PACTYP_UUID

25

PACTYP_TIMESTAMP

26

/* reserved for ISO use */

27-127

/* reserved for use outside of ISO scope */

128-261

/* reserved for ISO use */

262-389

/* reserved for use outside of ISO scope */

390-517

Application-specific MHASPacketType values are mandated to be in the space reserved for use outside of ISO scope. These shall be skipped by a decoder as a minimum of structure is required by the decoder to skip these extensions.

 

After 14.4.18, add the following:

 

14.4.19   PACTYP_AUTH_START

The MHASPacketType PACTYP_AUTH_START shall be used embed information for media authentication into the bitstream.

 

For this packet type, MHASPacketLabel has the same value as the related packets to which this authentication information refers to.

 

14.4.20   PACTYP_AUTH_SIG

The MHASPacketType PACTYP_AUTH_SIG shall be used embed information for media authentication into the bitstream.

 

For this packet type, MHASPacketLabel has the same value as the related packets to which this authentication information refers to.

 

14.4.21   PACTYP_AUTH_UUID

The MHASPacketType PACTYP_UUID shall be used embed UUID information into the bitstream, for instance in support of media authentication.

 

For this packet type, MHASPacketLabel has the same value as the related packets to which this UUID refers to.

 

14.4.22   PACTYP_TIMESTAMP

The MHASPacketType PACTYP_TIMESTAMP shall be used embed timestamp information into the bitstream, for instance in support of media authentication.

 

For this packet type, MHASPacketLabel has the same value as the related packets to which this timestamp information refers to.

 

Replace Table 229 with the following:

MHASPacketType

Value

Value of MHASPacketLabel

0

0x01 – 0x10 (main stream)

0x11 and larger
(sub-streams)

PACTYP_FILLDATA

0

required

not allowed

not allowed

PACTYP_MPEGH3DACFG

1

not allowed

no restriction

no restriction

PACTYP_MPEGH3DAFRAME

2

not allowed

no restriction

no restriction

PACTYP_AUDIOSCENEINFO

3

not allowed

no restriction

no restriction

/* reserved for ISO use */

4-5

PACTYP_SYNC

6

required

not allowed

not allowed

PACTYP_SYNCGAP

7

required

not allowed

not allowed

PACTYP_MARKER

8

no restriction

no restriction

no restriction

PACTYP_CRC16

9

shall be identical to MHASPacketLabel of MHAS packet immediately following the present MHAS packet

PACTYP_CRC32

10

PACTYP_DESCRIPTOR

11

required

not allowed

not allowed

PACTYP_USERINTERACTION

12

not allowed

required

not allowed

PACTYP_LOUDNESS_DRC

13

not allowed

required

not allowed

PACTYP_BUFFERINFO

14

no restriction

no restriction

no restriction

PACTYP_GLOBAL_CRC16

15

required

not allowed

not allowed

PACTYP_GLOBAL_CRC32

16

required

not allowed

not allowed

PACTYP_AUDIOTRUNCATION

17

not allowed

no restriction

no restriction

PACTYP_GENDATA

18

no restriction

no restriction

no restriction

PACTYP_ EARCON

19

shall be identical to MHASPacketLabel of MHAS packets containing the audio addressed by the earcon

PACTYP_ PCMCONFIG

20

not allowed

not allowed

> 2048

PACTYP_ PCMDATA

21

not allowed

not allowed

> 2048

PACTYP_ LOUDNESS

22

not allowed

no restriction

no restriction

PACTYP_ AUTH_START

23

no restriction

no restriction

no restriction

PACTYP_ AUTH_SIG

24

no restriction

no restriction

no restriction

PACTYP_ UUID

25

no restriction

no restriction

no restriction

PACTYP_ TIMESTAMP

26

no restriction

no restriction

no restriction

/* reserved for ISO use */

27-127

/* reserved for use outside of ISO scope */

128-261

/* reserved for ISO use */

262-389

/* reserved for use outside of ISO scope */

390-517

Key:

—: undefined

required: MHASPacketLabel shall have (one of) the value(s) listed in the title row of this column if packet is present

no restriction: MHASPacketLabel may have (one of) the value(s) listed in the title row of this column if packet is present

not allowed: MHASPacketLabel shall not have (any of) the value(s) listed in the title row of this column

 

After 14.7, add:

14.8   Media Authentication

The media authentication data is encapsulated in multiple MHAS Packets as part of a MHAS audio data stream.

14.8.1   Syntax

For the MHAS packet with MHASPacketType of PACTYP_AUTH_START, mpegh3daAuthStart() is defined as shown in Table 1.

For the MHAS packet with MHASPacketType of PACTYP_AUTH_SIG, mpegh3daAuthSig() is defined as shown in Table 2.

For the MHAS packet with MHASPacketType of PACTYP_UUID, authUUID() is defined as shown in Table 3.

For the MHAS packet with MHASPacketType of PACTYP_TIMESTAMP, authTimestamp() is defined as shown in Table 4.

Table 1 — Syntax of mpegh3daAuthStart

Syntax

No. of bits

Mnemonic

mpegh3daAuthStart()

{

authID

8

uimsbf

authSequence

1

uimsbf

authHashType = escapedValue(4,8,8);

4, 12, 20

uimsbf

authKeyID = escapedValue(3,8,8);

3, 11, 19

uimsbf

authProvID = escapedValue(8,8,16);

8, 16, 32

uimsbf

if (authProvID == 0x00) {

authSourceURILengthMinus1 = escapedValue(8,8,8);

8, 16, 24

uimsbf

for (i=0; i<= authSourceURILengthMinus1; i++) {

authSourceURI[i]

8

bslbf

}

}

isAuthCRC

1

uimsbf

authFrameTypes

1

uimsbf

if (authFrameTypes){

authPactypInclusion

1

uimsbf

authPactypListLengthMinus1

6

uimsbf

for (i=0; i <= authPactypListLengthMinus1; i++) {

authPacketType[i] = escapedValue(8,8,8);

8, 16, 24

uimsbf

}

}

authMultiStreams

1

uimsbf

if (authMultiStreams) {

authMSInclusion

1

uimsbf

authMSLabelsListLengthMinus1

6

uimsbf

for(i=0; i <= authMSLabelsListLengthMinus1; i++) {

authPacketLabel[i]

8, 16, 48

uimsbf

= escapedValue(8,8,32);

}

}

}

 

Table 2 — Syntax of mpegh3daAuthSig

Syntax

No. of bits

Mnemonic

mpegh3daAuthSig()

{

authID

8

uimsbf

authSequence

1

uimsbf

authPartialSig

1

uimsbf

authABREnable

2

uimsbf

numSig = 1;

if (authABREnable) {

authABRBitrateAtMinMax

2

uimsbf

if (authABREnable==1) {

if(authABRBitrateAtMinMax==1) {

numSig = 2;

} else {

numSig = 3;

}

}

if (authABREnable==2) {

if(authABRBitrateAtMinMax==1) {

numSig = 3;

} else if(authABRBitrateAtMinMax==2) {

numSig = 4;

} else {

numSig = 5;

}

}

}

for (n=0; n<numSig; n++) {

if (authPartialSig){

sigSegmentStart

1

uimsbf

sigSegmentStop

1

uimsbf

sigSegmentLengthMinus1

4

uimsbf

sigPartial

(sigSegmentLengthMinus1+1)*8

uimsbf

} else {

sigLengthMinus1

6

uimsbf

sigComplete

(sigLengthMinus1+1)*8

uimsbf

}

}

}

 

Table 3 — Syntax of authUUID

Syntax

No. of bits

Mnemonic

authUUID()

{

uuidSegmentStart

1

uimsbf

uuidSegmentStop

1

uimsbf

uuidSegmentLengthMinus1

4

uimsbf

uuid

(uuidSegmentLengthMinus1+1)*8

uimsbf

}

 

Table 4 — Syntax of authTimestamp

Syntax

No. of bits

Mnemonic

authTimestamp()

{

authID

8

uimsbf

authTimeType

7

uimsbf

authTimeOffsetType

1

uimsbf

switch (authTimeType ) {

case authTimeLong:

authTime = escapedValue(12,16,32);

12, 28, 60

uimsbf

authTimeOffset

12

uimsbf

break;

case authTimeShort:

authTimeS = escapedValue(4,8,8);

4, 12, 20

uimsbf

authTimeOffsetS = escapedValue(4,8,8);

4, 12, 20

uimsbf

break;

case authTimeTAI: { /* acc. ISO/IEC 23001-17 */

TAI_timestamp;

64

uimsbf

status_bits;

8

uimsbf

break;

default:

break;

}

}

 

14.8.2   Semantics

authID

Shall be used to identify the combination of authHashType, authProvID and authKeyID to which the related authentication information belongs to. This may be used to enable authentication of one authentication sequence with different authentication configurations.

authSequence

Indicates the authentication sequence to which the related authentication information belongs to.

authHashType

Indicates the hashing algorithm used according to Table XYZ.

 

Table XYZ — Value and meaning of authHashType

authHashType Value

Hashing algorithm

0

SHA-1

1

SHA-224

2

SHA-256

3

SHA-384

4

SHA-512

All other values

/* reserved for ISO use */

 

authProvID

Identifies the provider of the authentication system according to Table XYZ. In case authProvID equals to 1, there is no provider. This mode can be used to create a message digest only by using the method identified by authHashType.

 

Table XYZ — Value and meaning of authProvID

authProvID Value

Authentication Provider URI

0

See authSourceURI.

1

Message Digest only

2-…

/* Registration Authority */

 

authKeyID

Identifies the authentication key used to calculate the value of the signature in mpegh3daAuthSig() according to Table XYZ. The values of authKeyID are dependent on the authentication provider and are not defined in the present document. This value shall be set to 0 in case there is no key needed for the underlying hashing function.

 

Table XYZ — Value and meaning of authKeyID

authKeyID Value

Key

0

No key

All values

/* Authentication Provider key ID */

 

authSourceURILengthMinus1

Plus 1 indicates the length of the authSourceURI-field in bytes.

authSourceURI

Contains a URI with syntax and semantics as defined in as defined in IETF RFC 3986.

 

isAuthCRC

Indicates if an CRC-based authentication method is used. If set to 1, the used verification mechanism shall generate the signature (sigPartial or sigComplete) utilizing the data resulting from calculating a CRC as defined in 1.8.4.5 (CRC16) of ISO/IEC 14496-3, using the syntax elements according to 17.12.4 as input.

 

 

authFrameTypes

Indicates if authentication information for additional MHAS packet types is signalled.

 

authPactypInclusion

If set to 1, all packet types signalled in authPacketType shall be included into the calculation of the authentication information, according to 17.12.4. If set to 0, all packet types signalled in authPacketType shall be excluded from the calculation of the authentication information, according to 17.12.4.

 

authPactypListLengthMinus1

Plus 1 indicates the length of the list of authPacketType.

 

authPacketType

Indicates the MHAS packet type to be included or excluded for the calculation of the authentication information.

 

authMultiStreams

Indicates if authentication information for multi-stream scenarios is signalled.

 

authMSInclusion

If set to 1, all packets with the labels signalled in authPacketLabel shall be included into the calculation of the authentication information, according to according to 17.12.4. If set to 0, all packet types signalled in authPacketLabel shall be excluded from the calculation of the authentication information, according to according to 17.12.4.

 

authMSLabelsListLengthMinus1

Plus 1 indicates the length of the list of authPacketLabel.

 

authPacketLabel

Indicates the MHASPacketLabel to be included or excluded for the calculation of the authentication information. If authMSInclusion is equal to ‘1’, the value of authPacketLabel indicates that the sub-stream with this packet label shall be included in the calculation of the authentication information, according to 17.12.4.

If authMSInclusion is equal to ‘0’, the value of authPacketLabel indicates that the sub-stream with this packet label shall be excluded from the calculation of the authentication information, according to according to 17.12.4.

 

authPartialSig

If set to ‘1’, indicates that the signature is transmitted partially.

 

authABREnable

Indicates the type of the adaptive bitrate (ABR) scheme and the respective number of signature values according to Table XYZ.

In the case that authABREnable equals 1 (upDownABR), the order of encapsulation is as follows: signatures for the streams at the current bitrate, the bitrate one above, the bitrate one below.

In the case that authABREnable equals 2 (upDownMinMaxABR), the order of encapsulation is as follows: signatures for the streams at the current bitrate, the bitrate one above, the bitrate one below, the maximum bitrate, the minimum bitrate.

Table XYZ — Value and meaning of authABREnable

authABREnable Value

ABR Scheme

0

noABR

1

upDownABR

2

upDownMinMaxABR

3

/* reserved */

 

authABRBitrateAtMinMax

Indicates whether the current bitrate fulfils one of the conditions according to Table XYZ, that are related to the minimum and maximum bitrates in the adaptation set. In either case, the number of signature values is reduced.

 

Table XYZ — Value and meaning of authABRBitrateMinMax

authABRBitrateMinMax Value

ABR Bitrate Status

0

Default value

1

The current bitrate is equal to the maximum or minimum bitrate in the adaptation set

2

The current bitrate is one level below the maximum or one level above the minimum bitrate in the adaptation set

3

/* reserved */

 

sigSegmentStart

Indicates that the following sigPartial is the first segment of a signature.

 

sigSegmentStop

Indicates that the following sigPartial is the last segment of a signature.

NOTE: If both sigSegmentStartand and sigSegmentStop are equal to ‘1’, sigPartial contains a signature which is complete, but shorter than a full signature resulting from the related hashing algorithm.

 

sigSegmentLengthMinus1

Plus 1 indicates the length of the sigPartial field.

 

sigPartial

This field carries a segment of the signature resulting from the used verification mechanism. sigPartial shall be calculated in the same way as sigComplete. sigPartial may be created by truncating sigComplete.

Note: Verification may happen comparing only a subset of the bits resulting from the hashing algorithm.

 

sigLengthMinus1

Plus 1 indicates the length of the sigComplete field in bytes.

 

sigComplete

This field carries the signature resulting from the used verification mechanism. sigComplete shall be calculated by applying the hashing algorithm and configuration as signalled in the mpegh3daAuthStart() syntax element. The input data to the hashing algorithm shall be created in alignment with 17.12.4.

Note: Verification may happen comparing only a subset of the bits resulting from the hashing algorithm.

 

uuidSegmentStart

If set to ‘1’, indicates if the bytes in the uuid field are the first bytes of a UUID-segment.

 

uuidSegmentStop

If set to ‘1’, indicates if the bytes in the uuid field are the last bytes of a UUID-segment.

Note: If both uuidSegmentStart and uuidSegmentStop are set to ‘1’ the uuid field contains the full UUID.

 

uuidSegmentLengthMinus1

Plus 1 indicates the length of the uuid-field in bytes.

 

uuid

This field contains the UUID of the related (sub-)stream of MHAS packets. It may be used to map the MHAS stream to other media types, such as a related video stream.

 

authTimeType

Indicates the type of the time-signalling according to Table XYZ.

 

Table XYZ — Value and meaning of authTimeType

authTimeType Value

Timing Scheme

0

authTimeLong

1

authTimeShort

2

authTimeTAI

3-127

/* reserved */

 

authTimeOffestType

Indicates the unit of authTimeOffset value. This shall be set to ‘0’ if the unit is milliseconds, and shall be set to ‘1’ for using the sampling rate configured for the underlying signal type as base time.

 

authTime

Indicates the base time. This is counted in seconds and the count starts on January 1st, 2025 at 00.00.01 UTC.

 

authTimeOffset

Indicates the time offset compared to the value indicated in authTime. The time shall be set in a way that authTime + authTimeOffset indicates the time when the first sample of following related mpegh3daFrame() has been recorded.

 

authTimeS

Indicates the base time elapsed in seconds since the last time update of type ‘authTimeLong’.

 

authTimeOffsetS

Indicates the time offset compared to the value indicated in authTimeS. The time shall be set in a way that authTime + authTimeOffset + authTimeS + authTimeOffsetS indicates the time when the first sample of following related mpegh3daFrame() has been recorded.

 

TAI_timestamp

Indicates the TAI_timestamp according to ISO/IEC 23001-17.

 

status_bits

Indicates the bits synchronization_state, timestamp_generation_failure, timestamp_is_modified and reserved according to ISO/IEC 23001-17.

 

After 17.11, add the following:

 

17.12   Interface for media authentication data

17.12.1   General

For applications which require media authentication, related data for verification of the authenticity of a bitstream and mapping to other media types shall be provided to the system by using the syntax element mpegh3da_GetAuthData().

 

17.12.2   Syntax

Table 5 — Syntax of mpegh3da_GetAuthData

Syntax

No. of bits

Mnemonic

mpegh3da_GetAuthData()

 

 

{

 

 

mpegh3daAuthStart()

 

 

mpegh3daAuthSig()

 

 

authUUID()

 

 

authTimestamp()

 

 

gad_bytesLengthMinus1

64

uimsbf

gad_bytes

(gad_bytesLengthMinus1+1)*8

uimsbf

}

 

 

 

17.12.3   Semantics

gad_bytesLengthMinus1

Plus 1 indicates the length of the gad_bytes field.

 

gad_bytes

Includes all bytes relevant for the creation of the authentication information according to the configuration described in mpegh3daAuthStart().

 

17.12.4   Processing

17.12.4.1   General

The MPEG-H 3D audio decoder shall extract the MHAS packets related to media authentication for every authentication sequence as indicated by authID and authSequence, and populate the respective fields in mpegh3da_GetAuthData().

mpegh3daAuthStart() and mpegh3daAuthSig(),for the related authentication sequence (as indicated by the respective authID and authSequence) shall be copied from the respective bitstream elements. authTimestamp() having the same authID as the current authentication sequence and authUUID() syntax elements shall always be copied from the latest occurrences in bitstream. The gad_bytes field shall be populated by concatenating all bytes of all packets starting from the packet with MHASPacketType equal to ‘PACTYP_ AUTH_START’ for the related authentication sequence and having the same MHASPacketLabel up until but excludingthe packet with MHASPacketType equal to ‘PACTYP_AUTH_SIG’ in which either sigSegmentStop equals ‘1’ or authPartialSig equals ‘0’, unless the MHASPacketType of the related packet is excluded by default or signalled to be excluded (see 17.12.4.2 for additional information). Packets with MHASPacketType equal to ‘PACTYP_AUTH_SIG’ belonging to the respective authentication sequence shall not be populated into gad_bytes. Packets with MHASPacketType equal to ‘PACTYP_ AUTH_START’ or ‘PACTYP_AUTH_SIG’ with the same authID value as the current authentication sequence and a different authSequence value shall be populated into gad_bytes. Packets with MHASPacketType equal to ‘PACTYP_ AUTH_START’ or ‘PACTYP_AUTH_SIG’ with a different authID value than the current authentication sequence shall not be populated into gad_bytes.In addition to the above, packets with the following packet types shall be excluded by default and not be populated into gad_bytes:

 

PACTYP_SYNCGAP

 

PACTYP_MARKER

 

PACTYP_CRC16

 

PACTYP_CRC32

 

PACTYP_GLOBAL_CRC16

 

PACTYP_GLOBAL_CRC32

 

PACTYP_USERINTERACTION

 

PACTYP_AUDIOTRUNCATION

 

PACTYP_GENDATA

 

PACTYP_EARCON

 

PACTYP_PCMCONFIG

 

PACTYP_PCMDATA

If the related packet with the MHASPacketType equal to ‘PACTYP_AUTH_START’ contains a MHASPacketLabel equal to ‘0’, all bytes of all packets shall be concatenated as described above, independent of their MHASPacketLabel (all sub streams).

The input data for the hashing algorithm shall be created by concatenating gad_bytes with the bytes contained in the uuid field, if existing.

 

17.12.4.2   Inclusion and exclusion

Per default, all bytes of all packets other than the packets carrying a MHASPacketType which is listed to be excluded by default shall be concatenated for populating the gad_bytes field. In addition, all bytes of all packets having a MHASPacketType listed in the authPacketType field shall be included, if authPactypInclusion is equal to ‘1’. If authPactypInclusion is equal to ‘0’, all bytes of all packets having a MHASPacketType listed in the authPacketType field shall be excluded (in addition to the packets which are excluded by default).

In addition to the bytes of all packets belonging to the same sub stream as indicated by the MHASPacketLabel field (or all sub streams in case MHASPacketLabel is equal to ‘0’), all bytes of all relevant packets for each sub streams as indicated in the authPacketLabel field shall be included, if authMSInclusion is equal to ‘1’. If authMSInclusion is equal to ‘0’, all bytes of all relevant packets for each sub streams having a MHASPacketLabel listed in the authPacketLabel field shall be excluded.

 

Add the following paragraph to the end of the clause 20.1:

If a SwitchingGroupBox as defined in ISO/IEC 14496-12 is present, the values of the mae_groupIDs (defined in subclause 15) of the corresponding stream(s) shall be carried in the tag field of the SwitchingGroupBox as a whitespace separated list.

espa-banner