will1971 / google-cast-sdk

Automatically exported from code.google.com/p/google-cast-sdk
0 stars 0 forks source link

Seek to position takes too long time #764

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
- try to play a Live Manifest (sample attached) with options to rewind and 
forward (once chunks become available). In other words, a stream with an option 
to watch form the beginning while stream still is live.
- count of chunks in the manifest grows each time while live
- total duration of the Manifest is unknown on the moment of loading

What is the expected output?
Seek to new position happens almost immediately.

What do you see instead?
Seek to new position takes as long time as far away from current position and 
once stream buffered playback continues from new position.

It seems that SourceBufferManager loads chunks sequentially and cannot jump on 
new position immediately.

Please see excerpts from full log attached:

...
media_player.js:21 [ 22.606s] [cast.player.api.Player] seeking
media_player.js:21 [ 22.689s] [cast.player.core.SegmentManager] 0: seek success 
131.020401
media_player.js:21 [ 22.705s] [cast.player.core.SegmentManager] 1: seek success 
131.020401
...
player.js:2325onPause
player.js:2325isUnderflow
player.js:2325setState_: state=buffering, crossfade=false, delay=undefined
player.js:2325updateApplicationState_
player.js:2325setIdleTimeout_: undefined
...
media_player.js:21 [ 23.670s] [cast.player.core.SourceBufferManager] 0: 20 - 22
media_player.js:21 [ 24.166s] [cast.player.core.SourceBufferManager] 0: 20 - 24
media_player.js:21 [ 24.714s] [cast.player.core.SourceBufferManager] 0: 20 - 26
media_player.js:21 [ 25.073s] [cast.player.core.SourceBufferManager] 0: 20 - 28
media_player.js:21 [ 25.237s] [cast.player.core.SourceBufferManager] 0: 20 - 30
media_player.js:21 [ 25.902s] [cast.player.core.SourceBufferManager] 0: 20 - 32
media_player.js:21 [ 26.231s] [cast.player.core.SourceBufferManager] 0: 20 - 34
media_player.js:21 [ 26.580s] [cast.player.core.SourceBufferManager] 0: 20 - 36
media_player.js:21 [ 30.990s] [cast.player.core.SourceBufferManager] 0: 20 - 38
media_player.js:21 [ 31.225s] [cast.player.core.SourceBufferManager] 0: 20 - 40
media_player.js:21 [ 31.895s] [cast.player.core.SourceBufferManager] 0: 20 - 42
media_player.js:21 [ 32.068s] [cast.player.core.SourceBufferManager] 0: 20 - 44
media_player.js:21 [ 32.565s] [cast.player.core.SourceBufferManager] 0: 20 - 46
media_player.js:21 [ 32.888s] [cast.player.core.SourceBufferManager] 0: 20 - 48
media_player.js:21 [ 33.396s] [cast.player.core.SourceBufferManager] 0: 20 - 50
media_player.js:21 [ 33.716s] [cast.player.core.SourceBufferManager] 0: 20 - 52
media_player.js:21 [ 34.313s] [cast.player.core.SourceBufferManager] 0: 20 - 54
media_player.js:21 [ 34.490s] [cast.player.core.SourceBufferManager] 0: 20 - 56
media_player.js:21 [ 35.269s] [cast.player.core.SourceBufferManager] 0: 20 - 58
media_player.js:21 [ 35.380s] [cast.player.core.SourceBufferManager] 0: 20 - 60
media_player.js:21 [ 35.779s] [cast.player.core.SourceBufferManager] 0: 20 - 62
media_player.js:21 [ 36.052s] [cast.player.core.SourceBufferManager] 0: 20 - 64
media_player.js:21 [ 36.727s] [cast.player.core.SourceBufferManager] 0: 20 - 66
media_player.js:21 [ 37.023s] [cast.player.core.SourceBufferManager] 0: 20 - 68
media_player.js:21 [ 37.323s] [cast.player.core.SourceBufferManager] 0: 20 - 70
media_player.js:21 [ 37.577s] [cast.player.core.SourceBufferManager] 0: 20 - 72
media_player.js:21 [ 38.163s] [cast.player.core.SourceBufferManager] 0: 20 - 74
media_player.js:21 [ 38.408s] [cast.player.core.SourceBufferManager] 0: 20 - 76
media_player.js:21 [ 38.835s] [cast.player.core.SourceBufferManager] 0: 20 - 78
media_player.js:21 [ 39.500s] [cast.player.core.SourceBufferManager] 0: 20 - 80
media_player.js:21 [ 39.717s] [cast.player.core.SourceBufferManager] 0: 20 - 82
media_player.js:21 [ 40.004s] [cast.player.core.SourceBufferManager] 0: 20 - 84
media_player.js:21 [ 40.190s] [cast.player.core.SourceBufferManager] 0: 20 - 86
media_player.js:21 [ 40.527s] [cast.player.core.SourceBufferManager] 0: 20 - 88
media_player.js:21 [ 41.422s] [cast.player.core.SourceBufferManager] 0: 20 - 90
media_player.js:21 [ 41.658s] [cast.player.core.SourceBufferManager] 0: 20 - 92
media_player.js:21 [ 41.825s] [cast.player.core.SourceBufferManager] 0: 20 - 94
media_player.js:21 [ 42.130s] [cast.player.core.SourceBufferManager] 0: 20 - 96
media_player.js:21 [ 42.421s] [cast.player.core.SourceBufferManager] 0: 20 - 98
media_player.js:21 [ 42.905s] [cast.player.core.SourceBufferManager] 0: 20 - 100
media_player.js:21 [ 43.810s] [cast.player.core.SourceBufferManager] 0: 20 - 102
media_player.js:21 [ 44.311s] [cast.player.core.SourceBufferManager] 0: 20 - 104
media_player.js:21 [ 44.735s] [cast.player.core.SourceBufferManager] 0: 20 - 106
media_player.js:21 [ 44.897s] [cast.player.core.SourceBufferManager] 0: 20 - 108
media_player.js:21 [ 45.055s] [cast.player.core.SourceBufferManager] 0: 20 - 110
media_player.js:21 [ 45.588s] [cast.player.core.SourceBufferManager] 0: 20 - 112
media_player.js:21 [ 45.965s] [cast.player.core.SourceBufferManager] 0: 20 - 114
media_player.js:21 [ 46.549s] [cast.player.core.SourceBufferManager] 0: 20 - 116
media_player.js:21 [ 47.157s] [cast.player.core.SourceBufferManager] 0: 20 - 118
media_player.js:21 [ 47.567s] [cast.player.core.SourceBufferManager] 0: 20 - 120
media_player.js:21 [ 48.507s] [cast.player.core.SourceBufferManager] 0: 20 - 122
media_player.js:21 [ 48.841s] [cast.player.core.SourceBufferManager] 0: 20 - 124
media_player.js:21 [ 49.098s] [cast.player.core.SourceBufferManager] 0: 20 - 126
media_player.js:21 [ 49.171s] [cast.player.core.SourceBufferManager] 0: 20 - 128
media_player.js:21 [ 49.515s] [cast.player.core.SourceBufferManager] 0: 20 - 130
media_player.js:21 [ 49.786s] [cast.player.core.SourceBufferManager] 0: 20 - 132
....
player.js:2325setState_: state=playing, crossfade=false, delay=undefined
player.js:2325updateApplicationState_
player.js:2325setIdleTimeout_: undefined
player.js:2325onSeekEnd
....

What version of the product are you using? On what operating system?
- Chromecast 2
- Custom Receiver (based on https://github.com/googlecast/CastReferencePlayer)
- PlayDRM

Please provide any additional information below.

Original issue reported on code.google.com by s.sadov...@gmail.com on 19 Feb 2016 at 11:02

GoogleCodeExporter commented 8 years ago

Original comment by s.sadov...@gmail.com on 19 Feb 2016 at 11:25

Attachments:

GoogleCodeExporter commented 8 years ago
We are looking into the issue and will update soon.

Original comment by vinot...@google.com on 19 Feb 2016 at 9:15

GoogleCodeExporter commented 8 years ago
My understanding is that in case when IsLive="TRUE" on the SmoothStreaming 
streams player SDK is relying on the TFRF boxes. In case IsLive=False - it 
using time to chunk mapping available in manifest.

Original comment by trnl...@gmail.com on 28 Feb 2016 at 4:29

GoogleCodeExporter commented 8 years ago
Relates to https://code.google.com/p/google-cast-sdk/issues/detail?id=734.

Original comment by trnl...@gmail.com on 28 Feb 2016 at 4:30