Commit f1ae455
Fix mediabunny stale state on republish, stream close cleanup, and mid-stream subscriber keyframe delivery
Replace computeIfAbsent with compute in MediaBunnyStreamRegistry.subscribe()
to detect when a publisher has changed and detach the orphaned listener.
Add onClosed() default method to IStreamListener and call it from
ClientBroadcastStream.close() before clearing listeners. The mediabunny
listener flushes remaining buffers and notifies the registry to remove the
stale state and send a poison-pill to unblock waiting servlet threads.
Cache the last video keyframe fragment on StreamState so new mid-stream
subscribers receive init segment + keyframe fragment, preventing the
VideoDecoder key chunk error on the player side.
Co-Authored-By: Claude <noreply@anthropic.com>1 parent 9e5f00c commit f1ae455
5 files changed
Lines changed: 83 additions & 5 deletions
File tree
- common/src/main/java/org/red5/server
- api/stream
- stream
- server/src/main/java/org/red5/server/net/mediabunny
Lines changed: 8 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
27 | 34 | | |
28 | 35 | | |
Lines changed: 8 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
236 | 236 | | |
237 | 237 | | |
238 | 238 | | |
239 | | - | |
| 239 | + | |
240 | 240 | | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
241 | 248 | | |
242 | 249 | | |
243 | 250 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
120 | 124 | | |
121 | 125 | | |
122 | 126 | | |
| |||
Lines changed: 19 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
155 | 155 | | |
156 | 156 | | |
157 | 157 | | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
158 | 166 | | |
159 | 167 | | |
160 | 168 | | |
| |||
220 | 228 | | |
221 | 229 | | |
222 | 230 | | |
| 231 | + | |
223 | 232 | | |
224 | 233 | | |
225 | 234 | | |
| |||
403 | 412 | | |
404 | 413 | | |
405 | 414 | | |
| 415 | + | |
406 | 416 | | |
407 | 417 | | |
408 | 418 | | |
409 | 419 | | |
410 | 420 | | |
411 | 421 | | |
412 | 422 | | |
413 | | - | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
414 | 429 | | |
415 | | - | |
416 | 430 | | |
417 | 431 | | |
418 | 432 | | |
| |||
888 | 902 | | |
889 | 903 | | |
890 | 904 | | |
| 905 | + | |
| 906 | + | |
891 | 907 | | |
892 | 908 | | |
893 | 909 | | |
894 | 910 | | |
895 | 911 | | |
| 912 | + | |
896 | 913 | | |
897 | 914 | | |
898 | 915 | | |
Lines changed: 44 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
39 | 50 | | |
40 | 51 | | |
41 | 52 | | |
| |||
50 | 61 | | |
51 | 62 | | |
52 | 63 | | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
53 | 68 | | |
54 | 69 | | |
55 | 70 | | |
| |||
66 | 81 | | |
67 | 82 | | |
68 | 83 | | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
69 | 96 | | |
70 | 97 | | |
71 | 98 | | |
| |||
79 | 106 | | |
80 | 107 | | |
81 | 108 | | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
82 | 123 | | |
83 | 124 | | |
84 | 125 | | |
| |||
132 | 173 | | |
133 | 174 | | |
134 | 175 | | |
| 176 | + | |
| 177 | + | |
135 | 178 | | |
136 | 179 | | |
137 | 180 | | |
| |||
0 commit comments