2021-10-03, 07:13
Hello,
Thanks to the wonderful work started last year of @peak3d and the GSOC student @mtahir we now have a working release in the v20.0.1 version for Nexus.
This release adds support for:
Issues:
Features still missing:
Other:
Thanks to the wonderful work started last year of @peak3d and the GSOC student @mtahir we now have a working release in the v20.0.1 version for Nexus.
This release adds support for:
- Segment buffering - Previously streams played with inputstream.adaptive would only ever have Kodi's 8 second internal buffer along with up to 1 extra segment stored at a time. Kodi's internal buffer is not really meant to be a buffer for streaming and increasing this was never a solution, so the buffer has to be held on inputstream.adaptive's side of the fence. There are some new add-on settings to go with this: assured buffer length and maximum buffer length. I have not tested changing these settings much but the defaults seem to work fine.
- Adaptive bitrate switching - Previously manual video stream switching could be performed (with the stream selection setting set to 'manual') using the OSD, otherwise the 'auto' setting would pick a 'best' stream initially but all other streams were discarded. Now the 'automatically select streams' option will reevaluate the current stream's bandwidth vs the actual download speed and move across the separate bandwidth streams as needed. There is sometimes a slight glitch when stream change occurs.
Issues:
- 'manual' stream selection setting shows the different streams in the OSD, but automatic stream switching still occurs.
- Possible deadlocking of threads (I was unable to solve this, I believe there is a rewrite needed of the worker thread)
- Maybe more that I'm not thinking of atm...
Features still missing:
- adjusting streams based on CPU load e.g reduce from 1080p to 720p if CPU cannot handle
- adjusting streams based on window size - currently window size is only inspected on playback start and there is not yet the required changes inside Kodi to allow this to happen mid-stream
Other:
- the stream selection algorithm and default settings may require tweaking
- improvements may be needed around how the segment buffer is filled and whether to shed any segments when the stream is switched. Currently on stream switch, segments from the new stream will get added to the end of the buffer. Depending on the length of the buffer this can mean quite a long time before the new segments are 'seen' by the viewer, and in some situations it may be preferable to bring this change closer to the start of the buffer.