-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tizen 2016 seems to require duplicate sessions #813
Comments
Hrm... that's odd. It's not clear to me why this duplicate init data would be needed. Duplicate init data leads to duplicate license requests (and therefore extra license server traffic), duplicate sessions (and therefore extra resource consumption in DRM hardware), and (normally) no effect on playback. So we're strongly inclined to filter this out. I recognize that an option would solve the problem without affecting other browsers, but it would require UA detection in every app to set it correctly. Plus, I am still skeptical of Tizen's behavior. If this is a quirk of Tizen's EME implementation that requires multiple sessions for the same keys, I would really like to understand more about it before we act. |
ignoreDuplicateInitData
config?
I've asked Samsung to comment, either on this ticket or by email. I'll pass on the info if it ends up in my inbox. |
Thank you! I hope we hear from them, one way or the other. |
Based on our private email exchange, I believe this is a bug in Samsung's EME implementation. I don't believe we could work around this without creating duplicate sessions and generating extra traffic for the license server. This is something I would prefer to avoid. It would be preferable for Samsung to fix the platform. |
Agreed, thanks. |
@joeyparrish Any updates on this front? In my experience Samsung generally has no plans to fix issues on older platforms, so this will probably remain as an indefinite issue. I am also experiencing PlayReady DRM playback failures on a 2016 Tizen TV and this issue seems to be directly related. Non-DRM streams work fine. It would be nice to have the option to have some sort of work-around to getting this working, even in spite of the consequences! |
@kevinscroggins-youi my team also investigated workarounds to this issue and concluded that there was no suitable solution, so we dropped support for 2016 model TV's. Your only option would be to fork Shaka and create a custom hack specifically for these TV's. Samsung will almost certainly not fix this bug. |
@chrisfillmore Totally understandable, I will probably give this a shot as we would like to try and support 2016 TVs as well if there is a possibility of a workaround. Thank you for the follow up! |
I spent some time experimenting with getting DASH w/ PlayReady DRM to work on a Tizen 2016 TV with no luck. I managed to get Shaka to ignore duplicate initialization data but it seems like the entire application execution locks up whenever it tries to retrieve the actual video stream from the content server based on the logs. Despite the polyfills for EME 0.1b to support the Toshiba TV, the draft version of EME 0.1b that is present on the 2016 (and 2015) Tizen TVs is different and seemingly entirely non-functional. I believe the only way to get any DRM encrypted content to play on this TV is through the use of embedded PlayReady object data in the manifest. I know this is the case with the standard Tizen AVPlay API and NaCl C++ media player interfaces as well (shy of hooking up your own code or library to their elementary streams to handle DRM yourself for the NaCl C++ interface). It may be possible that the 2015/2016 EME works, but without better support from Samsung and actual debugging capabilities, I'm not sure it would be feasible to get this feature to work. It is possible to obtain device logs using a custom serial cable and the factory menus but it mostly contains a ton of useless information. I researched several other HTML5 players as well, and no one else supports DRM on 2016 TVs or lower either. |
`'webkitneedkey'` events are fired with the same `event.initData` for the video and audio tracks, and a new session is needed for each. Closes #813 (duplicate sessions required on Tizen) Closes #2447 (polyfills broken on Tizen) Closes #2448 (PlayReady broken on Tizen) Backported to v2.5.x Change-Id: Id790147633572f42c87b91de500a4c9574557948
Hello,
I'm working on adding Tizen support to Shaka. One of the updates required will be to allow creating new sessions with duplicate initData. I have a 2016 model Tizen TV (this is EME 0.1b) that I'm working with, and can confirm that I don't achieve playback if the duplicate initData is suppressed.
I have read over #576 and #580, and the spec, but my understanding of the problem overall is not so strong -- I don't know exactly why we have multiple
needkey
events to begin with. Is this for different tracks (video/audio/text)? I'm also not certain why Tizen needs a license request for each needkey event, but this is information I received directly from the Samsung web engine team.It seems there might be a use case for disabling the behaviour which suppresses duplicate initData, so I propose adding a player config param
ignoreDuplicateInitData
which defaults totrue
.Thoughts? I will need to add some similar behaviour one way or the other, so I'd like it to be done in a way that I can contribute the change back to Shaka.
The text was updated successfully, but these errors were encountered: