-
Notifications
You must be signed in to change notification settings - Fork 20
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
troubleshouting setting to ignore inputstream.adaptive #255
Conversation
0e61c68
to
aa83693
Compare
aa83693
to
4617487
Compare
@@ -22,5 +22,6 @@ | |||
<setting label="30865" help="30866" type="action" id="refresh_favorites" action="RunPlugin(plugin://plugin.video.vrt.nu/?action=refreshfavorites)"/> | |||
<setting label="30867" help="30868" type="action" id="clear_tokens" action="RunPlugin(plugin://plugin.video.vrt.nu/?action=clearcookies)"/> | |||
<setting label="30869" help="30870" type="select" id="max_log_level" values="Quiet|Info|Verbose|Debug" default="Info"/> | |||
<setting label="30871" help="30872" type="bool" id="useinputstreamadaptive" default="true"/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can also make this option visible only when inputstream.adaptive is installed.
I am also considering to add in this window a few text-fields that contain important debug information, e.g.
inputstream.adaptive version, inputstreamhelper version, Widevine information (if possible), etc.
ANd maybe add some section headers to group things together.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
This is working great! Thanks! |
Something we have to document better. Without inputstream.adaptive I need to set Maximum bandwidth to 4096kbps to get 720p, whereas with inputstream.adaptive I get away with setting it to 3072kbps. So maybe we should indicate ranges in the settings, or increase the values in the table to cover both. |
The bandwidth should not differ much. I used peak bandwidth setting in streamservice for HLS because this is a mandatory attribute in HLS manifest files. I think inputstream uses average bandwidth for MPEG DASH. I don't know what's the right choice, peak or average bandwidth. |
Ah, good to know. It would be best if they both behave similarly. @pietje666 Did you give @mediaminister Wiki rights ? |
@@ -204,7 +204,7 @@ def get_stream(self, video, retry=False, api_data=None): | |||
drm_stream = (vudrm_token or uplynk) | |||
|
|||
# Select streaming protocol | |||
if not drm_stream and self._kodi.has_inputstream_adaptive_installed() or drm_stream and self._can_play_drm and self._kodi.get_setting('usedrm') == 'true': | |||
if not drm_stream and self._kodi.has_inputstream_adaptive() or drm_stream and self._can_play_drm and self._kodi.get_setting('usedrm') == 'true': |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
~If I remember it right and has precedence over or which means that all of the following conditions need to be met:
Update: I was wrong.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I prefer to rewrite it like this:
if not drm_stream and self._kodi.has_inputstream_adaptive():
protocol = 'mpeg_dash'
elif drm_stream and self._can_play_drm and self._kodi.get_setting('usedrm') == 'true':
protocol = 'mpeg_dash'
Still, I am not sure this is what is intended if we disable the use of inputstream.adaptive.
I am also not sure how MPEG_DASH or HLS related to inputstream.adaptive.
- Can we play both MPEG_DASH and HLS without inputstream.adaptive ?
- Can we play both MPEG_DASH and HLS with inputstream.adaptive ?
Would it make sense to also have an option like:
- Preferred streaming format: HLS / MPEG_DASH
Maybe we need a matrix in the Wiki to describe working combinations wrt. DRM, inputstream.adaptive and Kodi (OMX player vs MMAL player).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- InputStream Adaptive is indispensable to play MPEG DASH (with or without Widevine DRM protection)
- Widevine DRM-support (for InputStream Adaptive) is not available on Kodi 17 at all.
- We can play HLS with Inputstream Adaptive but also with standard Kodi player
- In Kodi 17 different older versions of InputStream Adaptive are available with less functionality.
- There are 7(!) different Kodi 17 releases and it's unclear how well InputStream Adaptive works on all these versions.
So, in streamservice I made choices to limit possible streaming combinations:
- InputStream Adaptive installed: always play MPEG-DASH
- InputStream Adaptive is missing: always play HLS
This is a simple workflow and it guarantees video and audio will always play on every Kodi version and platform.
Making HLS or MPEG-DASH a user choice makes little sense. The useinputstreamadaptive
setting basically has the same effect because of the choices I made in streamservice.
Splitting up the if statement for cosmetics is okay (both can_play_drm
and has_inputstream_adaptive
functions listen to the useinputstreamadaptive
setting.)
Documenting stream compatibility in the wiki won't hurt but is not a priority for me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mediaminister Thanks for the detailed description. It may be useful to detail this in the code, and maybe even in the settings when we disable InputStream Adaptive (e.g. this forces use of HLS) in the help (which isn't shown yet, needs fixing in Kodi).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mediaminister I noticed you have been promoted to Collaborator so you can now assign things to me, or ask me to review something. Welcome :-)
A troubleshouting setting that ignores inputstream.adaptive add-on on Kodi.
This causes streamservice to always select HLS streams that are played directly in Kodi player.
This setting should always be enabled unless you are troubleshooting playback problems.
When disabled, this setting also ignores "Use DRM" setting, because inputstream.adaptive is needed for (Widevine) DRM