The ST 2109 S-ADM Payload Value has a fixed header of 2 bytes (version, format) before the S-ADM XML metadata, but these 2 bytes don't appear to be included in the ST 2109 S-ADM Payload Length field.
The S-ADM Payload Length field is BER encoded in GetSadmST2127Header():
|
unsigned int berLengthSize = BERLengthEncode(payloadLength, &buff[6]); |
... where payloadLength is assumed to equal the compressed size max_payload_size as set in get_sadm_payload() without the 2-byte header, but I have not verified that.
Potential fix:
unsigned int berLengthSize = BERLengthEncode(2 + payloadLength, &buff[6]);
The ST 2109 S-ADM Payload Value has a fixed header of 2 bytes (version, format) before the S-ADM XML metadata, but these 2 bytes don't appear to be included in the ST 2109 S-ADM Payload Length field.
The S-ADM Payload Length field is BER encoded in
GetSadmST2127Header():pmd_tool/dlb_st2110/1.0/dlb_st2110/src/dlb_st2110_transmitter.cpp
Line 869 in ec7d25d
... where payloadLength is assumed to equal the compressed size
max_payload_sizeas set inget_sadm_payload()without the 2-byte header, but I have not verified that.Potential fix: