Skip to content

Commit e4b9817

Browse files
committed
Send new StartEvents when pt changes.
1 parent 3e1198a commit e4b9817

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

jvb/src/main/kotlin/org/jitsi/videobridge/export/MediaJsonSerializer.kt

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)