dash.js
dash.js copied to clipboard
Events gets incorrectly updated in multi-period streams
Environment
- [x] The MPD passes the DASH-IF Conformance Tool on https://conformance.dashif.org/
- [x] The stream has correct Access-Control-Allow-Origin headers (CORS)
- [x] There are no network errors such as 404s in the browser console when trying to play the stream
- [x] The issue observed is not mentioned on https://github.com/Dash-Industry-Forum/dash.js/wiki/FAQ
- [x] The issue occurs in the latest reference client on http://reference.dashif.org/dash.js/ and not just on my page
- Link to playable MPD file: https://live.serverside.ai/dash/view/c2421470-0442-415a-b9ce-7bbbed14fbd2?api-key=bd06b7a0-6956-4918-af07-21f94b27d991 copy the mediaURL.
- Dash.js version: 4.4.0
- Browser name/version: Chrome
- OS name/version: macOS Monterey
Steps to reproduce
- Load and Play the provided stream with debug level set to debug
- Filter for
event
Observed behavior
Observe that once there are multiple <Periods />
that contain <EventStream />
s dash.js will start updating all events since they have the same ID even if they are tied to different Periods.
Console output
[122421][EventController] Added inline event with id 0
Debug.js:169 [122421][EventController] Received event 0
Debug.js:169 [122421][EventController] Added inline event with id 1
Debug.js:169 [122421][EventController] Received event 1
Debug.js:169 [122421][EventController] Added inline event with id 2
Debug.js:169 [122422][EventController] Received event 2
Debug.js:169 [122422][EventController] Added inline event with id 3
Debug.js:169 [122422][EventController] Received event 3
Debug.js:169 [122422][EventController] Added inline event with id 4
Debug.js:169 [122422][EventController] Received event 4
Debug.js:169 [122422][EventController] Added inline event with id 5
Debug.js:169 [122422][EventController] Received event 5
Debug.js:169 [122423][Stream] No text data.
Debug.js:169 [122424][Stream] No muxed data.
Debug.js:169 [122424][Stream] No image data.
Debug.js:169 [122424][SourceBufferSink][video] Updated append window for video. Set start to 1657008498.6200001 and end to Infinity
Debug.js:169 [122424][SourceBufferSink][video] Set MSE timestamp offset to 1657008498.72
Debug.js:169 [122424][SourceBufferSink][audio] Updated append window for audio. Set start to 1657008498.6200001 and end to Infinity
Debug.js:169 [122425][SourceBufferSink][audio] Set MSE timestamp offset to 1657008498.72
Debug.js:169 [122425][BufferController][audio] checkIfBufferingCompleted trigger BUFFERING_COMPLETED for stream id C 2022-07-05 08-07-38 and type audio
Debug.js:169 [122425][AbrController] Stream ID: R 2022-07-05 08-08-18 [50685] [video] switch from 0 to 1/1 (buffer: 2.916) .
Debug.js:169 [122425][StreamProcessor][video] Preparing quality switch for type video
Debug.js:169 [122427][FragmentModel][video] abort requests
Debug.js:169 [122430][ScheduleController][video] Quality has changed, get init request for representationid = 1_V_video_2
Debug.js:169 [122431][ScheduleController][audio] Quality has changed, get init request for representationid = 5_A_aac_eng_2_128136_2_1_1
Debug.js:169 [122553][BufferController][video] Got enough buffer to start
Debug.js:169 [122554][BufferController][audio] Got enough buffer to start
Debug.js:169 [122645][BufferController][video] Append Init fragment video with representationId: 1_V_video_2 and quality: 1 , data size: 896
Debug.js:169 [122645][StreamProcessor][video] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type video - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=i,format=mpd-time-csf)
Debug.js:169 [122646][ScheduleController][video] Appended bytes for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [122646][ScheduleController][video] [video] lastInitializedRepresentationInfo changed to 1
Debug.js:169 [122648][ScheduleController][video] Top quality video index has changed from NaN to 1
Debug.js:169 [122648][ScheduleController][video] Media segment needed for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [122648][DashHandler][video] Index for time 1657008498.72 is 0
Debug.js:169 [122648][StreamProcessor][video] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type video is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=0,format=mpd-time-csf)
Debug.js:169 [122797][BufferController][audio] Append Init fragment audio with representationId: 5_A_aac_eng_2_128136_2_1_1 and quality: 0 , data size: 850
Debug.js:169 [122798][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type audio - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=i,format=mpd-time-csf)
Debug.js:169 [122798][ScheduleController][audio] Appended bytes for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [122798][ScheduleController][audio] [audio] lastInitializedRepresentationInfo changed to 0
Debug.js:169 [122800][ScheduleController][audio] Top quality audio index has changed from NaN to 0
Debug.js:169 [122800][ScheduleController][audio] Media segment needed for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [122800][DashHandler][audio] Index for time 1657008498.72 is 0
Debug.js:169 [122800][StreamProcessor][audio] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type audio is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=0,format=mpd-time-csf)
Debug.js:169 [122867][StreamProcessor][video] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type video - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=0,format=mpd-time-csf)
Debug.js:169 [122869][BufferController][video] Buffered range: 1657008468 - 1657008500.72, currentTime = 1657008496.381261
Debug.js:169 [122869][ScheduleController][video] Appended bytes for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [122871][ScheduleController][video] Media segment needed for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [122871][StreamProcessor][video] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type video is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=20000000,format=mpd-time-csf)
Debug.js:169 [123001][StreamProcessor][video] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type video - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=20000000,format=mpd-time-csf)
Debug.js:169 [123002][BufferController][video] Buffered range: 1657008468 - 1657008502.72, currentTime = 1657008496.515025
Debug.js:169 [123002][ScheduleController][video] Appended bytes for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123004][ScheduleController][video] Media segment needed for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123004][StreamProcessor][video] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type video is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=40000000,format=mpd-time-csf)
Debug.js:169 [123118][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type audio - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=0,format=mpd-time-csf)
Debug.js:169 [123119][BufferController][audio] Buffered range: 1657008466.656 - 1657008500.725333, currentTime = 1657008496.631575
Debug.js:169 [123120][ScheduleController][audio] Appended bytes for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123121][ScheduleController][audio] Media segment needed for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123121][StreamProcessor][audio] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type audio is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=20053333,format=mpd-time-csf)
Debug.js:169 [123192][StreamProcessor][video] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type video - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=40000000,format=mpd-time-csf)
Debug.js:169 [123194][AbrController] [video] switching from throughput to buffer occupancy ABR rule (buffer: 8.014).
Debug.js:169 [123194][BufferController][video] Buffered range: 1657008468 - 1657008504.72, currentTime = 1657008496.706105
Debug.js:169 [123194][ScheduleController][video] Appended bytes for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123195][ScheduleController][video] Media segment needed for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123196][StreamProcessor][video] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type video is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=60000000,format=mpd-time-csf)
Debug.js:169 [123249][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type audio - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=20053333,format=mpd-time-csf)
Debug.js:169 [123249][BufferController][audio] Buffered range: 1657008466.656 - 1657008502.730666, currentTime = 1657008496.762193
Debug.js:169 [123249][ScheduleController][audio] Appended bytes for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123251][ScheduleController][audio] Media segment needed for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123251][StreamProcessor][audio] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type audio is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=40106666,format=mpd-time-csf)
Debug.js:169 [123336][StreamProcessor][video] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type video - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=60000000,format=mpd-time-csf)
Debug.js:169 [123337][BufferController][video] Buffered range: 1657008468 - 1657008506.72, currentTime = 1657008496.849135
Debug.js:169 [123337][ScheduleController][video] Appended bytes for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123339][ScheduleController][video] Media segment needed for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123339][StreamProcessor][video] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type video is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=80000000,format=mpd-time-csf)
Debug.js:169 [123413][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type audio - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=40106666,format=mpd-time-csf)
Debug.js:169 [123414][BufferController][audio] Buffered range: 1657008466.656 - 1657008504.735999, currentTime = 1657008496.926369
Debug.js:169 [123414][ScheduleController][audio] Appended bytes for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123415][ScheduleController][audio] Media segment needed for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123416][StreamProcessor][audio] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type audio is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=60160000,format=mpd-time-csf)
Debug.js:169 [123470][StreamProcessor][video] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type video - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=80000000,format=mpd-time-csf)
Debug.js:169 [123472][BufferController][video] Buffered range: 1657008468 - 1657008508.72, currentTime = 1657008496.984307
Debug.js:169 [123472][ScheduleController][video] Appended bytes for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123474][ScheduleController][video] Media segment needed for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123474][StreamProcessor][video] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type video is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=100000000,format=mpd-time-csf)
Debug.js:169 [123539][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type audio - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=60160000,format=mpd-time-csf)
Debug.js:169 [123540][AbrController] [audio] switching from throughput to buffer occupancy ABR rule (buffer: 9.689).
Debug.js:169 [123540][BufferController][audio] Buffered range: 1657008466.656 - 1657008506.741333, currentTime = 1657008497.051879
Debug.js:169 [123540][ScheduleController][audio] Appended bytes for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123542][ScheduleController][audio] Media segment needed for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123542][StreamProcessor][audio] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type audio is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=80213333,format=mpd-time-csf)
Debug.js:169 [123605][StreamProcessor][video] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type video - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(1054364)/Fragments(video=100000000,format=mpd-time-csf)
Debug.js:169 [123607][BufferController][video] Buffered range: 1657008468 - 1657008510.72, currentTime = 1657008497.119029
Debug.js:169 [123607][ScheduleController][video] Appended bytes for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123609][ScheduleController][video] Media segment needed for video and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123609][DashHandler][video] video No segment found at index: 6. Wait for next loop
Debug.js:169 [123675][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type audio - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=80213333,format=mpd-time-csf)
Debug.js:169 [123676][BufferController][audio] Buffered range: 1657008466.656 - 1657008508.746666, currentTime = 1657008497.188373
Debug.js:169 [123676][ScheduleController][audio] Appended bytes for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123678][ScheduleController][audio] Media segment needed for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123678][StreamProcessor][audio] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type audio is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=100266666,format=mpd-time-csf)
Debug.js:169 [123806][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type audio - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=100266666,format=mpd-time-csf)
Debug.js:169 [123806][BufferController][audio] Buffered range: 1657008466.656 - 1657008510.751999, currentTime = 1657008497.318679
Debug.js:169 [123807][ScheduleController][audio] Appended bytes for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123808][ScheduleController][audio] Media segment needed for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123808][StreamProcessor][audio] Next fragment request url for stream id R 2022-07-05 08-08-18 [50685] and media type audio is https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=120320000,format=mpd-time-csf)
Debug.js:169 [123932][StreamProcessor][audio] OnFragmentLoadingCompleted for stream id R 2022-07-05 08-08-18 [50685] and media type audio - Url: https://ssaimediaservices-euwe.streaming.media.azure.net/6a169399-6fd6-4a1e-bbfa-7faeaf936cc1/c7537a9b3b4491fdb98824200d7bc965.ism/QualityLevels(128136)/Fragments(aac_eng_2_128136_2_1=120320000,format=mpd-time-csf)
Debug.js:169 [123933][BufferController][audio] Buffered range: 1657008466.656 - 1657008512.757333, currentTime = 1657008497.445373
Debug.js:169 [123933][ScheduleController][audio] Appended bytes for audio and stream id R 2022-07-05 08-08-18 [50685]
Debug.js:169 [123957][DashParser] Parsing complete: ( xml2json: 8.20ms, objectiron: 0.100ms, total: 0.00830s)
Debug.js:169 [123957][StreamController] Manifest updated... updating data system wide.
Debug.js:169 [123957][StreamController] Matching default timing source protocol to manifest protocol: https://time.akamai.com/?iso&ms
Debug.js:169 [123959][ManifestUpdater] Manifest has been refreshed at Tue Jul 05 2022 10:08:33 GMT+0200 (Central European Summer Time)[1657008513.046]
Debug.js:169 [123959][ManifestUpdater] Refresh manifest in 2000 milliseconds.
Debug.js:169 [123978][TimeSyncController] Increasing timeBetweenSyncAttempts to 8
Debug.js:169 [123978][TimeSyncController] Completed UTC sync. Setting client - server offset to -57.5
Debug.js:169 [123979][EventController] Updated inline event with id 0
Debug.js:169 [123979][EventController] Updated inline event with id 1
Debug.js:169 [123979][EventController] Updated inline event with id 2
Debug.js:169 [123979][EventController] Updated inline event with id 3
Debug.js:169 [123979][EventController] Updated inline event with id 4
Debug.js:169 [123979][EventController] Updated inline event with id 5
Expected behavior
Events should be connected to the period they are in, not have to be unique for the entire manifest.
For reference this is what the EventStream look like
<Period>
...
<EventStream schemeIdUri="urn:ssai:vast:event:2020" timescale="1000">
<Event id="0" presentationTime="0" duration="5000">vast:a2363da8-2331-4483-995d-5286220005d8</Event>
<Event id="1" presentationTime="500">beacon:start</Event>
<Event id="2" presentationTime="1250">beacon:firstQuartile</Event>
<Event id="3" presentationTime="2500">beacon:midpoint</Event>
<Event id="4" presentationTime="3750">beacon:thirdQuartile</Event>
<Event id="5" presentationTime="4500">beacon:complete</Event>
</EventStream>
...
</Period>
@bwallberg Can you please check if #3984 fixes your issue. Events are bound to their periods. Consequently, events of one period should not update events of another period
@bwallberg Can you please check if #3984 fixes your issue. Events are bound to their periods. Consequently, events of one period should not update events of another period
Hi @dsilhavy !
I'm on vacation right now but will look at it as soon as possible!