Source:
<code>public Endpoint( String id, Conference conference, Logger parentLogger, boolean iceControlling, Clock clock) throws IOException { super(conference, id, parentLogger); this.clock = clock; creationTime = clock.instant(); super.addPropertyChangeListener(this); diagnosticContext = conference.newDiagnosticContext(); transceiver = new Transceiver( id, TaskPools.CPU_POOL, TaskPools.CPU_POOL, TaskPools.SCHEDULED_POOL, diagnosticContext, logger, clock ); transceiver.setIncomingPacketHandler( new ConsumerNode("receiver chain handler") { @Override protected void consume(@NotNull PacketInfo packetInfo) { handleIncomingPacket(packetInfo); } }); bitrateController = new BitrateController(this, diagnosticContext, logger); messageTransport = new EndpointMessageTransport( this, <START> () -> getConference().getVideobridge().getStatistics(), <END> logger ); diagnosticContext.put("endpoint_id", id); bandwidthProbing = new BandwidthProbing(Endpoint.this.transceiver::sendProbing); bandwidthProbing.setDiagnosticContext(diagnosticContext); bandwidthProbing.setBitrateController(bitrateController); transceiver.setAudioLevelListener(conference.getAudioLevelListener()); transceiver.onBandwidthEstimateChanged(newValueBps -> { if (logger.isDebugEnabled()) { logger.debug("Estimated bandwidth is now " + newValueBps + " bps."); } bitrateController.bandwidthChanged((long)newValueBps.getBps()); }); transceiver.onBandwidthEstimateChanged(bandwidthProbing); conference.encodingsManager.subscribe(this); bandwidthProbing.enabled = true; recurringRunnableExecutor.registerRecurringRunnable(bandwidthProbing); dtlsTransport = new DtlsTransport(this, iceControlling, logger); if (conference.includeInStatistics()) { conference.getVideobridge().getStatistics() .totalEndpoints.incrementAndGet(); } }</code><technical_language>pass reference</technical_language>

Target:
public Endpoint( String id, Conference conference, Logger parentLogger, boolean iceControlling, Clock clock) throws IOException { super(conference, id, parentLogger); this.clock = clock; creationTime = clock.instant(); super.addPropertyChangeListener(this); diagnosticContext = conference.newDiagnosticContext(); transceiver = new Transceiver( id, TaskPools.CPU_POOL, TaskPools.CPU_POOL, TaskPools.SCHEDULED_POOL, diagnosticContext, logger, clock ); transceiver.setIncomingPacketHandler( new ConsumerNode("receiver chain handler") { @Override protected void consume(@NotNull PacketInfo packetInfo) { handleIncomingPacket(packetInfo); } }); bitrateController = new BitrateController(this, diagnosticContext, logger); messageTransport = new EndpointMessageTransport( this, () -> getConference().getVideobridge().getStatistics(), getConference(), logger ); diagnosticContext.put("endpoint_id", id); bandwidthProbing = new BandwidthProbing(Endpoint.this.transceiver::sendProbing); bandwidthProbing.setDiagnosticContext(diagnosticContext); bandwidthProbing.setBitrateController(bitrateController); transceiver.setAudioLevelListener(conference.getAudioLevelListener()); transceiver.onBandwidthEstimateChanged(newValueBps -> { if (logger.isDebugEnabled()) { logger.debug("Estimated bandwidth is now " + newValueBps + " bps."); } bitrateController.bandwidthChanged((long)newValueBps.getBps()); }); transceiver.onBandwidthEstimateChanged(bandwidthProbing); conference.encodingsManager.subscribe(this); bandwidthProbing.enabled = true; recurringRunnableExecutor.registerRecurringRunnable(bandwidthProbing); dtlsTransport = new DtlsTransport(this, iceControlling, logger); if (conference.includeInStatistics()) { conference.getVideobridge().getStatistics() .totalEndpoints.incrementAndGet(); } }