New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 753572 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

cannot loop at the end of video playback

Project Member Reported by yini...@chromium.org, Aug 8 2017

Issue description

Chrome Version: 62.0.3178.0
OS: all

This bug was present for a while but was mistakenly mixed with crbug/575824. After some deep look, I think they are different issue. 
This bug repro on both VP9 and mp4 EME video, seems not repro on non-EME video. chrome://media-internal logs is as below. it seems media player is destroyed even though loop option is set? NOTE, this issue NOT 100% repro, but about 50% of times.

00:01:10 407	event	PAUSE
00:01:10 407	seek_target	131.482674
00:01:10 407	pipeline_state	kSeeking
00:01:10 408	audio_buffering_state	BUFFERING_HAVE_NOTHING
00:01:10 408	video_buffering_state	BUFFERING_HAVE_NOTHING
00:01:10 550	event	PLAY
00:01:10 616	info	Estimating WebM block duration to be 2ms for the last (Simple)Block in the Cluster for this Track. Use BlockGroups with BlockDurations at the end of each Track in a Cluster to avoid estimation.
00:01:10 807	info	Estimating WebM block duration to be 2ms for the last (Simple)Block in the Cluster for this Track. Use BlockGroups with BlockDurations at the end of each Track in a Cluster to avoid estimation.
00:01:10 807	pipeline_state	kPlaying
00:01:10 850	audio_buffering_state	BUFFERING_HAVE_ENOUGH
00:01:11 38	video_buffering_state	BUFFERING_HAVE_ENOUGH
00:01:11 38	pipeline_buffering_state	BUFFERING_HAVE_ENOUGH
00:01:11 39	event	PLAY
00:01:11 39	event	PLAY
00:03:50 826	pipeline_state	kStopping
00:03:50 826	pipeline_state	kStopped
00:03:50 827	event	WEBMEDIAPLAYER_DESTROYED


What steps will reproduce the problem?
(1) navigate to https://ats.sandbox.google.com/static/chrome_test_app/index.html
(2) load and play any of these videos:
L3_audio_L3_video.mp4.mpd
L3_audio_L3_video_vp9.webm.mpd
(3) set Loop option, seek to the end of video, wait for loop

What is the expected result?
loop play

What happens instead?
about half of time loop not work, playback stop at the end.

 
Cc: xhw...@chromium.org
Owner: jrumm...@chromium.org
I'll be OOO tomorrow. Assign to jrummell@ to take a look.
one correction, this is not limit to EME video, it happens on both EME and clearkey. change component to media>video.
this bug still repro on Chrome 63.0.3230.0 build.
Ping john, xhwang. Any updates here?

Comment 5 by xhw...@chromium.org, Oct 16 2017

Labels: -Pri-3 M-64 Pri-2
jrummell: Tentatively add a milestone so we keep track of this. Please take a look at this issue. Thanks!
With Chrome 64.0.3278.0 it seems to loop just once. Part of chrome://media-internals for the video:

00:00:19 142	video_buffering_state	BUFFERING_HAVE_ENOUGH
00:00:19 162	audio_buffering_state	BUFFERING_HAVE_ENOUGH
00:00:19 162	pipeline_buffering_state	BUFFERING_HAVE_ENOUGH
00:00:19 162	info	Effective playback rate changed from 0 to 1
00:00:19 162	event	PLAY
00:02:09 552	duration	135.608
00:02:34 880	event	ENDED
00:02:34 880	seek_target	0
00:02:34 880	pipeline_state	kSeeking
00:02:34 881	audio_buffering_state	BUFFERING_HAVE_NOTHING
00:02:34 881	video_buffering_state	BUFFERING_HAVE_NOTHING
00:02:34 913	pipeline_state	kPlaying
00:02:34 934	video_buffering_state	BUFFERING_HAVE_ENOUGH
00:02:34 952	audio_buffering_state	BUFFERING_HAVE_ENOUGH
00:02:34 952	pipeline_buffering_state	BUFFERING_HAVE_ENOUGH
00:04:50 154	info	Effective playback rate changed from 1 to 0

It appears that the second time through the playback rate is set to 0, and the ENDED event never happens.
This might be a problem with Shaka. I added code to dump the stack trace in WebMediaPlayerImpl::SetRate(), and the last call is:

#0 0x7f74651009dd base::debug::StackTrace::StackTrace()
#1 0x7f74650fee0c base::debug::StackTrace::StackTrace()
#2 0x7f744b379239 media::WebMediaPlayerImpl::SetRate()
#3 0x7f74540ec4b3 blink::HTMLMediaElement::UpdatePlaybackRate()
#4 0x7f74540e3f6d blink::HTMLMediaElement::setPlaybackRate()
#5 0x7f7454e7de29 blink::HTMLMediaElementV8Internal::playbackRateAttributeSetter()
#6 0x7f7454e7dd11 blink::V8HTMLMediaElement::playbackRateAttributeSetterCallback()
#7 0x2bf083e08761 <unknown>

From this it appears that JavaScript is calling setRate(0). Will try other video sites to see if thay have problems or not.
Cc: joeyparrish@chromium.org vasanthap@chromium.org
I tried a video on https://shaka-player-demo.appspot.com (2.2.7), and looping works fine. I also tried a video on YouTube, and looping works there too.

vasanthap@: What version of Shaka is the Chrome Test App running?
jrummell@, v2.1.4 is the shaka version.
shaka.Player.version
Labels: -M-64
https://v2-1-4-dot-shaka-player-demo.appspot.com loops as expected. So this appears to be something specific to the test code, not Chrome.
Is there seeking or an explicit playback start time involved?  If you seek to the duration, or if you set a playback start time at the duration, this could be: https://github.com/google/shaka-player/issues/1014

You may want to upgrade Shaka Player anyway.  v2.1.x is quite old.  v2.2.7 is the latest release.
Yes, I am looking into that already.
Test App is now updated to Shaka Player version 2.2.7
Awesome, thanks, Vasanth.  If the issue is still reproducible on the update app, please let me know and I'll help debug.
Status: Fixed (was: Assigned)
Updating the test player to Shaka 2.2.7 appears to fix the issue.

Sign in to add a comment