@@ -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