@@ -64,25 +64,30 @@ class MediaJsonSerializer(
6464 }
6565
6666 val state = ssrcsStarted.computeIfAbsent(p.ssrc) { ssrc ->
67- val now = Clock .systemUTC().instant()
68- SsrcState (
69- p.timestamp,
70- (Duration .between(ref, now).toNanos() * payloadType.clockRate.toDouble() * 1e- 9 ).toLong(),
71- payloadType
72- ).also {
67+ createSsrcState(p.timestamp, payloadType).also {
7368 logger.info(" Starting SSRC $ssrc for endpoint $epId " )
7469 handleEvent(createStart(epId, ssrc, payloadType))
7570 }
7671 }
7772
7873 if (payloadType.pt != state.payloadType.pt) {
79- logger.debug(" SSRC ${p.ssrc} changed payload type from ${state.payloadType.pt} to ${payloadType.pt} " )
80- return @synchronized
74+ logger.info(" SSRC ${p.ssrc} changed payload type from ${state.payloadType} to $payloadType ." )
75+ ssrcsStarted[p.ssrc] = createSsrcState(p.timestamp, payloadType)
76+ handleEvent(createStart(epId, p.ssrc, payloadType))
8177 }
8278
8379 handleEvent(encodeMedia(p, state, epId))
8480 }
8581
82+ private fun createSsrcState (timestamp : Long , payloadType : PayloadType ): SsrcState {
83+ val now = Clock .systemUTC().instant()
84+ return SsrcState (
85+ timestamp,
86+ (Duration .between(ref, now).toNanos() * payloadType.clockRate.toDouble() * 1e- 9 ).toLong(),
87+ payloadType
88+ )
89+ }
90+
8691 private fun createStart (epId : String , ssrc : Long , payloadType : PayloadType ) = StartEvent (
8792 ++ seq,
8893 Start (
0 commit comments