Skip to content

Commit c34b468

Browse files
committed
Additional AudioObjects from a plugin are placed in pluginMap
1 parent e717b25 commit c34b468

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

ear-production-suite-plugins/lib/src/programme_store_adm_serializer.cpp

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,19 +287,27 @@ void ProgrammeStoreAdmSerializer::createTopLevelObject(
287287
content.addReference(serializedObjects[connectionId]);
288288
} else if (isSerializedWithDifferentObjectSettings(object)) {
289289
// Have serialized this input but have different object level settings
290-
auto& otherAdmObject =
291-
*serializedObjects.find(object.connection_id())->second;
290+
auto otherAdmObject =
291+
serializedObjects.find(object.connection_id())->second;
292292
auto admObject =
293293
adm::AudioObject::create(adm::AudioObjectName(metadata.name()));
294294
content.addReference(admObject);
295-
for (auto& id : otherAdmObject.getReferences<adm::AudioTrackUid>()) {
296-
admObject->addReference(id);
295+
for (auto& atuid : otherAdmObject->getReferences<adm::AudioTrackUid>()) {
296+
admObject->addReference(atuid);
297297
}
298-
for (auto& pack : otherAdmObject.getReferences<adm::AudioPackFormat>()) {
298+
for (auto& pack : otherAdmObject->getReferences<adm::AudioPackFormat>()) {
299299
admObject->addReference(pack);
300300
}
301301
setInteractivity(*admObject, object);
302302

303+
// Create plugin map entries for new AudioObject (copy other params from existing)
304+
int existingPluginMapEntryCount = pluginMap.size();
305+
for(int i = 0; i < existingPluginMapEntryCount; ++i) {
306+
if(pluginMap[i].audioObject == otherAdmObject) {
307+
pluginMap.push_back({ pluginMap[i].inputInstanceId, pluginMap[i].routing, admObject, pluginMap[i].audioTrackUid });
308+
}
309+
}
310+
303311
} else {
304312
// First time we've seen the input
305313
if (metadata.has_obj_metadata()) {

0 commit comments

Comments
 (0)