Kodi Community Forum

Full Version: Plex Enigma2 automatic quality fails or playback probs with playercorefactory.xml
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
On my linux (enigma2) based digital satelite receiver HD60 from AX I have a running openATV 6.4 with an installed official kodi plug-in Leia 18.9. In Kodi I installed the official Plex Addon (not plex connect) and am able to stream my media from my plex server in my home network. No unofficial Addons are installed. In order to narrow down to the source of my problem, I set up an environment only with openATV 6.4 - Leia 18.9 - Plex Addon. I have a 512 MByte swap-file on a USB-memroy stick. That is it.
I encounter problems depending on the playercorefactory.xml with video streaming. advancedsettings.xml ist empty.
By using the shipped playercorfactory.xml of the openATV plugin, I can start watching every video from my plex-server. Unfortunately, Kodi either crashes after about half an hour or the video playback gets very disruptive. Additionally, videos are not able to continue from somewhere in the middle - by choosing the "resume" option, the playback starts at the beginning.
When I use a playercorefactory.xml file which comes with the kod plugin of openSPA (also an enigma2 image), my plex videos run through without any problems. Resuming playback somewhere in the middle works. But some videos do not start correctly with automatic quality. For some videos I have to manually set the video quality to 4 Mbps 720p. With this setting they run. Without setting the quality manually, the screen shows green and black bars - the actual video sometimes can be seen partially between green lines.
I tryed to understand, why the playercorfactory.xml makes a difference in here to find a fix. Unfortunately, the found documentation to this does not help. It could be due to a special kodi compilation for enigma2 images, which nobody needs to document? I post the two playercorefactory.xml files at the end of this thread.

It all does not make sence to me.
The openATV version does not define an extra player, but has a rule at the end for a "HiPlayer" - whatever this is supposed to be.
The openSPA version defines a player called E2Player with  type="Enigma2Player" (whatever this type is supposed to be - there is only documentation for ExternalPayers...). The passed arguments in {} to "kodiext" are explained nowhere.
The plex Addon anyhow apparently uses its own player. The settings in playercorefactory.xml should not affect this player? Should it?

I am lost and don't know where to look to solve this! I am grateful for any hint. Thanks for your time. 


The openATV playercorefactory.xml looks like this (kodi crash and or disruptive videos - no video resume):
xml:

<?xml version="1.0" encoding="UTF-8"?>
<playercorefactory>
  <players>
    <!-- These are compiled-in as re-ordering them would break scripts
    The following aliases may also be used:
      audiodefaultplayer, videodefaultplayer, videodefaultVideoPlayer
    <player name="VideoPlayer" audio="true" video="true" />
    <player name="VideoPlayer" /> placeholder for MPlayer
    <player name="PAPlayer" audio="true" />
    -->
  </players>

  <rules name="system rules">
    <rule name="mms/udp" protocols="mms|mmsh|udp" player="VideoPlayer" />
    <rule name="lastfm/shout" protocols="lastfm|shout" player="PAPlayer" />
    <rule name="rtmp" protocols="rtmp" player="videodefaultplayer" />

    <!-- VideoPlayer can play standard rtsp streams -->
    <rule name="rtsp" protocols="rtsp" filetypes="!(rm|ra)"  player="PAPlayer" />

    <!-- Internet streams -->
    <rule name="streams" internetstream="true">
      <rule name="aacp/sdp" mimetypes="audio/aacp|application/sdp" player="VideoPlayer" />
      <rule name="mp2" mimetypes="application/octet-stream" filetypes="mp2" player="PAPlayer" />
    </rule>

    <!-- DVDs -->
    <rule name="dvd" dvd="true" player="VideoPlayer" />
    <rule name="dvdimage" dvdimage="true" game="false" player="VideoPlayer" />

    <!-- Only VideoPlayer can handle these normally -->
    <rule name="sdp/asf" filetypes="sdp|asf" player="VideoPlayer" />

    <!-- Pass these to VideoPlayer as we do not know if they are audio or video -->
    <rule name="nsv" filetypes="nsv" player="VideoPlayer" />

    <!-- pvr radio channels should be played by VideoPlayer because they need buffering -->
    <rule name="radio" filetypes="pvr" filename=".*/radio/.*" player="VideoPlayer" />
  </rules>

  <rules action="prepend">
    <rule filetypes="dts|mp3|wav|wave|oga|ogg|flac|m4a|mp2|m2a|ac3|mka|aac|ape|alac|mpg|vob|m4v|mkv|avi|divx|dat|flv|mp4|mov|wmv|asf|3gp|3g2|mpeg|mpe|rm|rmvb|ogm|ogv|stream|amr|au|mid|wv|pva|wtv|ts|m2ts" player="HiPlayer" />
  </rules>
</playercorefactory>

The openSPA playercorefactory.xml file looks like this (no automatic video quality for some videos):
xml:

<?xml version="1.0" encoding="UTF-8"?>
<playercorefactory>
  <players>
    <!-- These are compiled-in as re-ordering them would break scripts
    The following aliases may also be used:
      audiodefaultplayer, videodefaultplayer, videodefaultVideoPlayer
    <player name="VideoPlayer" audio="true" video="true" />
    <player name="VideoPlayer" /> placeholder for MPlayer
    <player name="PAPlayer" audio="true" />
    -->
    <player name="E2Player" type="Enigma2Player" audio="true" video="true">
      <filename>kodiext</filename>
      <args>-U "{1}" -S "{3}" -P "$PPID"</args>
      <filenamemeta>/tmp/kodiextin.json</filenamemeta>
      <hidexbmc>true</hidexbmc>
      <hideconsole>true</hideconsole>
      <warpcursor>none</warpcursor>
    </player>
  </players>

  <rules action="prepend" name="system rules">
    <rule name="mms/udp" protocols="mms|mmsh|udp" player="VideoPlayer" />
    <rule name="lastfm/shout" protocols="lastfm|shout" player="PAPlayer" />
    <rule name="rtmp" protocols="rtmp" player="videodefaultplayer" />

    <!-- VideoPlayer can play standard rtsp streams -->
    <rule name="rtsp" protocols="rtsp" filetypes="!(rm|ra)"  player="PAPlayer" />

    <!-- Internet streams -->
    <rule name="streams" internetstream="true">
      <rule name="aacp/sdp" mimetypes="audio/aacp|application/sdp" player="VideoPlayer" />
      <rule name="mp2" mimetypes="application/octet-stream" filetypes="mp2" player="PAPlayer" />
      <rule name="widevine1" filetypes="mpd" player="VideoPlayer" />
    </rule>

    <!-- DVDs -->
    <rule name="dvd" dvd="true" player="VideoPlayer" />
    <rule name="dvdimage" dvdimage="true" game="false" player="VideoPlayer" />

    <!-- Only VideoPlayer can handle these normally -->
    <rule name="sdp/asf" filetypes="sdp|asf" player="VideoPlayer" />

    <!-- Pass these to VideoPlayer as we do not know if they are audio or video -->
    <rule name="nsv" filetypes="nsv" player="VideoPlayer" />

    <!-- pvr radio channels should be played by VideoPlayer because they need buffering -->
    <rule name="radio" filetypes="pvr" filename=".*/radio/.*" player="VideoPlayer" />
  </rules>
</playercorefactory>