shaka-project / shaka-player

JavaScript player library / DASH & HLS client / MSE-EME player
Apache License 2.0
7.2k stars 1.34k forks source link

Tizen 4 2018 encrypted playback got stuck. #3344

Closed Yuvalke closed 1 year ago

Yuvalke commented 3 years ago

Have you read the FAQ and checked for duplicate open issues? Yes.

What version of Shaka Player are you using? v3.0.8 and v3.0.10

Can you reproduce the issue with our latest release version? Yes.

Can you reproduce the issue with the latest code from master? Didn't try, reproduced on v3.0.x.

Are you using the demo app or your own custom app? Custom app.

What browser and OS are you using? Tizen TV.

For embedded devices (smart TVs, etc.), what model and firmware version are you using? Tizen 4 2018, model number UE50NU7090.

What are the manifest and license server URIs? sent by email.

What did you do? playing encrypted media.

What did you expect to happen? The media will keep playing.

What actually happened? There is a small gap jumping on the beginning of the media, stall handled by stallDetector, play-pause solution for smartTV happening and the playback got stuck on the same position. Small seek solve the issue, seems like checking on stall detector if the current time has changed after trying to break the stall is needed because it sometimes breaks the stall and sometimes it doesn't, I added log file which show this behavior(pause-play solution is working much better than seeking in general)

Log shows play pause stuck

Yuvalke commented 3 years ago

The issue is when the stall happens on the beginning and then pause play doesn't help and I saw that multiple seeks until the media start again fixed the issue(one seek by changing the stallSkip doesn't). Seems like adding a condition for stallSeconds is greater than X and update the lastUpdateSeconds_ and currentTime will fix the behavior for the stalls that didn't release after pause play. Actually, maybe dispatch event which will indicate this situation will be better. The stream I sent isn't valid anymore, I'll provide a valid one if needed.

david-hm-morgan commented 3 years ago

I am seeing a similar sort of issue on a 2017 Tizen 3. My way to reliably reprod it is to do big seek jumps:

  1. play movie
  2. seek to late in the movie and let play for a few seconds
  3. seek back to near the beginning

It is possisble to recreate it on v3.0.6 and earlier but much lower reprod rate. From v3.0.7 it is seemingly 100% of seek backs as above will create it. Same on 3.0.8, 3.0.9, 3.0.10 and today 3.0.11 too.

image In this image, my seek back goes from the title rolling near the end to 0:00:05.

Am I seeing a different issue or the same as this ticket?

Yuvalke commented 3 years ago

Hi @david-hm-morgan, I guess it's the same issue but I didn't reproduce it in the exact same way, did you try on a later Tizen version? I saw in 2020 it works well. Actually today I had some new findings, It reproduces on two scenarios:

  1. In the beginning after (small gap - seeked) stall happens and playback got stuck.
  2. multiple seeks in a row during the playback.

Also, I saw sometimes when the issue reproduced seeking event dispatched but I didn't see seeked event from the video element.

david-hm-morgan commented 3 years ago

@Yuvalke I have access to a 2019 (Tizen5) too and this does not exhibit this issue.

david-hm-morgan commented 3 years ago

I noticed this historical issue https://github.com/google/shaka-player/issues/2131 which again sounds similar. Going to try to debug around stall detector

david-hm-morgan commented 3 years ago

I created a custom debug log to tell me about the behaviour of the stall detector in the cirumstances. In doing so I realised the really easy way to reprod it is to do achieve multiple seeks backwards by dragging the scrubber bar left before releasing the click - I see at least 3 seeks each earlier than the last... Shaka is still processing previous seeks when a new one arrives. (I find doing this with a feature length movie where the scrubber bar is representing many more seconds than a short stream is better for reprod)

The upshot of this with the Stall Detector is that it seems to disregard it as a stall because it was still reacting to one seek when another arrives.

image

Yuvalke commented 3 years ago

Thank you @david-hm-morgan, there are many issues that could be related but they didn't resolve this issue. It seems like we're facing the same issue with multiple seeks, new seek should reject the old one if it's still in process?

Thank you for your help.

joeyparrish commented 3 years ago

I'm unable to find an email from @Yuvalke with repro details. Did you use the issue number (3344)? Did you send it to shaka-player-issues@google.com?

Yuvalke commented 3 years ago

Hi @joeyparrish, I wrote in the ticket description, what is the issue and where it's happening, do you need media to repro? I solve the issue right now by checking while the media is in stall I make a small seeks until it breaks the stall.

Szefczuk commented 2 years ago

Any updates on that?

avelad commented 1 year ago

Can you test with v4.3.4? Thanks!

github-actions[bot] commented 1 year ago

Closing due to inactivity. If this is still an issue for you or if you have further questions, the OP can ask shaka-bot to reopen it by including @shaka-bot reopen in a comment.