diff --git a/src/main/java/nl/digitalekabeltelevisie/data/mpeg/descriptors/AACDescriptor.java b/src/main/java/nl/digitalekabeltelevisie/data/mpeg/descriptors/AACDescriptor.java index ef00edc..b4026da 100644 --- a/src/main/java/nl/digitalekabeltelevisie/data/mpeg/descriptors/AACDescriptor.java +++ b/src/main/java/nl/digitalekabeltelevisie/data/mpeg/descriptors/AACDescriptor.java @@ -2,7 +2,7 @@ * * http://www.digitalekabeltelevisie.nl/dvb_inspector * - * This code is Copyright 2009-2012 by Eric Berendsen (e_berendsen@digitalekabeltelevisie.nl) + * This code is Copyright 2009-2024 by Eric Berendsen (e_berendsen@digitalekabeltelevisie.nl) * * This file is part of DVB Inspector. * @@ -38,36 +38,43 @@ public class AACDescriptor extends Descriptor { private final int profile_and_level; - private final int aac_type_flag; + private int aac_type_flag = 0; + private int saoc_de_flag = 0; private int aac_type; + private byte[] additional_info; - - public AACDescriptor(final byte[] b, final int offset, final TableSection parent) { - super(b, offset,parent); - profile_and_level = getInt(b, offset+2, 1, MASK_8BITS); - aac_type_flag = getInt(b, offset+3, 1, 0x80)>>7; - int t=offset+4; - if(aac_type_flag==1){ - aac_type = getInt(b, t++, 1, MASK_8BITS); - } - if(t 1){ + aac_type_flag = getInt(b, 3, 1, 0b1000_0000)>>7; + saoc_de_flag = getInt(b, 3, 1, 0b0100_0000)>>6; + + int t = 4; + if(aac_type_flag==1){ + aac_type = getInt(b, t++, 1, MASK_8BITS); + } + if(t 1){ + t.add(new KVP("AAC_type_flag",aac_type_flag)); + t.add(new KVP("SAOC_DE_flag",saoc_de_flag,saoc_de_flag == 1?"SAOC-DE parametric data shall be present":"SAOC-DE parametric data shall not be present")); + if(aac_type_flag==1){ + t.add(new KVP("aac_type",aac_type,getComponentType0x06String(aac_type))); + } + if(additional_info!=null){ + t.add(new KVP("additional_info",additional_info)); + } } return t; diff --git a/src/main/java/nl/digitalekabeltelevisie/data/mpeg/descriptors/DescriptorFactory.java b/src/main/java/nl/digitalekabeltelevisie/data/mpeg/descriptors/DescriptorFactory.java index 72edd0a..33ac7d1 100644 --- a/src/main/java/nl/digitalekabeltelevisie/data/mpeg/descriptors/DescriptorFactory.java +++ b/src/main/java/nl/digitalekabeltelevisie/data/mpeg/descriptors/DescriptorFactory.java @@ -509,7 +509,7 @@ private static Descriptor getDVBSIDescriptor(final byte[] data, final TableSecti case 0x7A: return new EnhancedAC3Descriptor(data, 0, tableSection); case 0x7C: - return new AACDescriptor(data, 0, tableSection); + return new AACDescriptor(data, tableSection); case 0x7E: return new FTAContentManagmentDescriptor(data, 0, tableSection); case 0x7F: