will1971 / google-cast-sdk

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

Buffering state is seen when HLS or smooth stream video is paused #755

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1.Use a custom receiver that supports HLS / SS playback
2.Play a HLS URL
3.Observe player state changes

What is the expected output? What do you see instead?
On pausing, pause state must be set to the player, however a buffering state is 
set

What version of the product are you using? On what operating system?
Chromecast v1. 
Receiver API version: 2.0.0
Media player library version: 1.0.0

Please provide any additional information below.
We are developing a custom receiver application. We are listening for pause 
event and checking for player.getState['underflow'] property to set buffering, 
pause state otherwise. 

Original issue reported on code.google.com by mkna...@gmail.com on 8 Feb 2016 at 5:09

GoogleCodeExporter commented 8 years ago
Proper behavior:
1.Use a custom receiver that supports MP4 playback
2.Play a MP4 URL
3.Let the video to buffer

What is the expected output?
On buffering, waiting event is raised and player enters into buffering state.

----------------------------------------
Now the issue
1.Use a custom receiver that supports HLS / SS playback
2.Play a HLS URL
3.Let the video buffer

What is the expected output?
On buffering, waiting event must be raised but a paused event is raised where 
we need to infer buffering state.

These two behaviors are different.

Extension: 4.Pause the video in buffering state

MP4: pause state is reflected
HLS/SS: buffering state persists instead of pause.

Original comment by mkna...@gmail.com on 12 Feb 2016 at 10:39

GoogleCodeExporter commented 8 years ago
Could you confirm that player.getState['underflow'] is returning true, when 
pause state is triggered?

Could you also please reply to our queries below.
1. Could you please test it with latest media player library (1.0.0.25, 
https://plus.sandbox.google.com/+LeonNicholls/posts/X1mPREuvJ73)
2. Please share feedback report from Chromecast app/extension with the text 
"for Issue 755" in description and share receiver logs here (after reproducing 
this issue). 
3. Is it possible to share snippet of code where you are facing the issue?
4. Please share the firmware on chromecast

Original comment by vinot...@google.com on 16 Feb 2016 at 11:17

GoogleCodeExporter commented 8 years ago
Additional reference on receiver implementation, see 
(https://github.com/googlecast/CastReferencePlayer). 

Original comment by vinot...@google.com on 17 Feb 2016 at 10:58

GoogleCodeExporter commented 8 years ago
Hello,

I'm using the receiver implementation given in github - CastReferencePlayer. 
Printing logs in onpause event handler as well. Attaching the same.
media player library : 1.0.0.25
Firmware versions used: 46278 & 48342

The code snippet used is part of the castReferencePlayer:

sampleplayer.CastPlayer.prototype.onPause_ = function() {
  console.log('onPause');
  this.cancelDeferredPlay_('media is paused');
  var isIdle = this.state_ === sampleplayer.State.IDLE;
  var isDone = this.mediaElement_.currentTime === this.mediaElement_.duration;
  var isUnderflow = this.player_ && this.player_.getState()['underflow'];
  console.log('Underflow - '+isUnderflow);
  if (isUnderflow) {
    this.log_('isUnderflow');
    this.setState_(sampleplayer.State.BUFFERING, false);
    console.log('Setting player state to buffering');
    this.mediaManager_.broadcastStatus(/* includeMedia */ false);
  } else if (!isIdle && !isDone) {
    this.setState_(sampleplayer.State.PAUSED, false);
    console.log('Setting player state to paused');
  }
  this.updateProgress_();
};

Steps:
1. Play HLS live URL from a chrome browser using the chromecast extension & 
cast it.
2. Wait for a buffering event.
3. Pause the video

Expected: Pause state on player must be reflected. But a buffering state still 
persists.

Original comment by mkna...@gmail.com on 18 Feb 2016 at 7:28

Attachments:

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

Original comment by vinot...@google.com on 18 Feb 2016 at 7:48