2015-11-24, 18:16
When streaming a slow stream, I fully get that it needs to buffer every once in a while. This is not a my stream is always buffering complaint.
My issue is that Kodi refuses to pause the stream to allow it to fill the buffer and instead starts doing the stuttering thing. (buffer is empty, gets a few packets, moves a few frames, buffer is empty, gets a few packets, moves a few frames, ect.)
Every once in a while it actually pauses the video, opens the buffering dialog box and buffers for a while until it can resume. <- This is the behavior I'm wanting.
I know there is plenty of buffer available. I know the buffer is active. I know the buffer is working.
so.
Any ideas of the settings I have to tweak to change the threshold so that it will truly detect a slow stream and pause it instead of letting it stutter constantly?
Edit:
I'm trying to understand the code. Not sure if I'm looking in the right place here, but..
It seems like when this is happening, it's not estimating how much buffer it needs to smoothly play the stream?
Cache Level is always 100% and Cache Delay is always 0 no matter the size of Cache Bytes.
My issue is that Kodi refuses to pause the stream to allow it to fill the buffer and instead starts doing the stuttering thing. (buffer is empty, gets a few packets, moves a few frames, buffer is empty, gets a few packets, moves a few frames, ect.)
Every once in a while it actually pauses the video, opens the buffering dialog box and buffers for a while until it can resume. <- This is the behavior I'm wanting.
I know there is plenty of buffer available. I know the buffer is active. I know the buffer is working.
so.
Any ideas of the settings I have to tweak to change the threshold so that it will truly detect a slow stream and pause it instead of letting it stutter constantly?
Edit:
I'm trying to understand the code. Not sure if I'm looking in the right place here, but..
It seems like when this is happening, it's not estimating how much buffer it needs to smoothly play the stream?
Cache Level is always 100% and Cache Delay is always 0 no matter the size of Cache Bytes.
Quote: if(m_StateInput.cache_bytes >= 0)
{
strBuf += StringUtils::Format(" forward:%s %2.0f%%"
, StringUtils::SizeToString(m_StateInput.cache_bytes).c_str()
, m_StateInput.cache_level * 100);
if(m_playSpeed == 0 || m_caching == CACHESTATE_FULL)
strBuf += StringUtils::Format(" %d sec", DVD_TIME_TO_SEC(m_StateInput.cache_delay));
}