Update to use iamf_tools 2.0 and bug fixes
In 2.0, iamf_tools has been updated with changes to the interface. It now uses IamfDecoderFactory and IamfDecoderInterface. This CL uses those new changes. Also, there were some bugs around setting a layout: - If the channel count was used to change the output layout more than once, the wrapper would ignore the value the second time because the first time updated the channel mask param, and on the second call the channel mask value was used over the channel count, even if it wasn't updated. - The max output channels (used to control the layout) was accidentally limited to 2 to 8. Values given outside of the range specified are rejected by the framework. Now it accepts any uint32 (the type of the param) and uses 1 to 24 to set an output layout and defaults to the decoder default otherwise. This is important because 99 is often set in code and documentation to request the 'native' channel count of the content. Though IAMF does not have one native channel count, the closest analog would be the default layout chosen by the decoder (first mix, first layout). - Similarly, when neither count nor mask were set, it was defaulting to stereo. Again, it will defer to the decoder for default (which will be first Mix, first submix, first layout). - It will now only create the decoder instance when bytes are passed for the first time. Previously it was creating a decoder instance in `onInit` with `IamfDecoder::Create()` and then creating a new one with `IamfDecoder::CreateWithDescriptors()` when we got the first byte buffer and it was descriptors. This is just less wasteful. Bug: 415108292 Change-Id: Ifd1240fa77abd1495dceda88e2f3ad4ae55f263e Flag: EXEMPT updating deps and bug fixes
Loading
Please register or sign in to comment