Player.log

From SpinetiX Support Wiki

Jump to: navigation, search
Note  
This article is a stub. Main article: Logs.

Introduction

The player.log file includes all the information related to the player rendering engine. It was introduced in firmware 3.1.0 to group together the information that before was contained in now-deprecated logs (info.log, javascript.log, resources.log, and warn.log).

It contains, amongst other useful information, details about the player performance counters, including CPU performance and FPS drop of frames.

Log format

The entries in the player log look like this:

dd-mm-yyyy hh:mm:ss LEVEL logger - information

where

dd-mm-yyyy hh:mm:ss is the date and time of the player at the moment of writing.
LEVEL can be any of TRACE, DEBUG, INFO, WARN, ERROR, FATAL.
logger - information - the name of the process and the information it is logging, such as:
  • spx.player - logs the player firmware version, like SpinetiX Hyper Media Player version 'Mont Blanc du Tacul 4.4.4-34915' started ....
  • spx.stats - logs the player statistics, like
    239:40:00 Period: 60s Pic: 3000 Usage: 8.1% ( 4.2|43.5) Peak: 314ms Buffers: 1177ms (min 740ms) FPS Drop: 0% Peak drop: 0%
  • spx.resource, spx.resource.media - logs resource related information, like
    New Resource 'spx://interface/index.svg', New Resource 'spx://localserver/index.svg'
    New Resource 'http://download.spinetix.com/spxjslibs/jSignage.js'
  • spx.display.media - logs the opening and closing of main index files, like
    Open: spx://localserver/index.svg (Size:1920x1080) (Dur: indefinite) in 4ms (network 0ms)
    Close: spx://localserver/index.svg, Close: spx://elementi/index.svg
  • spx.display.input - logs information about the input devices, like device '/dev/input/event0' opened.
  • spx.display.comportfsm, spx.display.comportfsm.hdmicec - logs information from communication ports: serial port and HDMI CEC, like
    COM port sending command PowerOn started at 0:00:00
    HDMI connected to HDMI sink, detected HDMI sink with CEC TV functionality
  • spx.svglib.media - logs information regarding media decoding and playback, like
    Found media stream: video H.264, 1920x1080 (16:9) 4:2:0 25 fps High profile Level 4.0
  • spx.svglib.jscript - logs JavaScript related information.
  • spx.svglib.multiscreen - logs information about the multiscreen ID, like Setting Screen ID to 'screen-1-1'

Player statistics

A line containing the performance counters of the player is added every second during the first 20 seconds upon content restart, then every 10 seconds during the first 5 minutes, and finally every minute afterwards. The typical log entry has the following format:

  • dd-mm-yyyy hh:mm:ss INFO spx.stats - rendering_time
    The date and time, the level and the logger for this line, followed by the rendering time upon content restart (due to a player restart, a publish or a content pull action).
  • Period: n_seconds
    The time duration in seconds (e.g., 1s, 10s, 60s) used for aggregation.
  • Pic: n_frames
    The number of frames rendered within the aggregation period. If this is equal to (freq * n_seconds), where freq is the output frequency (e.g., 60Hz = 60 frames per seconds, 50Hz), then the HMP has no problem rendering the content; a lower number means that some frames were dropped.
  • Usage: n% ( arm | dsp )
    The resource usage in percentage. In first set of parentheses, the values for ARM and DSP components.
    For firmware 4.2 and below the format is Usage: n% ( arm | dsp ) (w1s/ w10s/ w60s) - the second set of parentheses show the worst cases (see note below).
  • Peak: n_ms
    The number of milliseconds that the longest frame took to render - this should be below the maximum rendering latency to ensure that no frames are dropped; a larger number means that something took a lot of time to be opened or rendered.
  • Buffers: n_ms (min n_ms)
    The average duration (in milliseconds) of the available buffers. In parentheses, the minimum value for available buffers.
  • FPS Drop: 0%
    The percentage of frames dropped because the rendering speed (FPS) has been reduced.
    For firmware 4.2 and below the format is FPS Drop: 0% (w1s/ w10s/ w60s) - in parentheses, the worst cases (see note below).
  • Peak drop: 0%
    The percentage of frames dropped because of peak rendering.
    For firmware 4.2 and below the format is Peak drop: 0% (w1s/ w10s/ w60s) - in parentheses, the worst cases (see note below).

Example:

29-08-2019 10:50:24 INFO  spx.stats - 239:40:00 Period: 60s Pic: 3000 Usage:  8.1% ( 4.2|43.5) Peak:  314ms Buffers: 1177ms (min  740ms) FPS Drop:  0% Peak drop:  0%
Note Note:
For firmware 4.2 and below the statistics include (w1s/ w10s/ w60s) which represents the values calculated for the worst case for any 1s, respectively 10s period within the current aggregation period, while the last value is the worst case for any 60s period from the beginning of the rendering time. This information has been removed from firmware 4.3 and above.
22-03-2015 16:36:21 INFO spx.stats - 0:10:00 Period: 60s Pic: 2970 Usage: 22% ( 16| 71) (121/ 29/ 26) Peak: 286ms Buffers: 514ms (min 20ms) FPS Drop: 0% ( 28/ 5/ 1) Peak drop: 0% ( 4/ 0/ 6)

Resources

Everytime a new resource is opened, the spx.resource.media logger adds information about that resource, along with the date and time when it started. The spx.svglib.media logger might also add extra details about the video / audio streams inside the media, redirects, unsupported media etc.

The typical message that is added when a resource starts to play, has this format:
dd-mm-yyyy hh:mm:ss INFO spx.resource.media   - New Resource 'URI' [flags] (dlc/tcd)
  • URI is starting with spx://localserver/ for local resources and with http(s):// for the external ones.
  • [flags] ([PCIC]) have the following meaning:
    P = PHP processing is done (i.e. the resource is .php).
    C = the caching mechanism is used for this resource (i.e. the resource is not local), but not necessarily that the resource is currently being played from cache.
    I = iCal processing is done (i.e. the resource is .ics).
    C = the resource is currently cached. (added in firmware 3.0).
    This flag is used in combination with the first C flag (i.e. [ C C]) and followed by the caching information (dlc/tcd).
  • (dlc/tcd) means "duration left in cache" from "total cache duration". (added in firmware 3.0)
    • dlc ("duration left in cache") can be either a number (of seconds) <= tcd or the string "----" meaning that the resource will be retrieved from the server.
    • tcd ("total cache duration") can be between 10s and 3600s.
Note Note:
The last 'C' char may be replaced by a '0' (i.e. [ C 0]), indicating that the cache mechanism is used for asynchronous retrieval, but that the resource is NOT cached. It will be retrieved each time it is needed by the player. In this case the (dlc/tcd) is not present.

Examples:

29-08-2019 13:45:32 INFO  spx.resource.media   - New Resource 'spx://interface/index.svg' (host: /srv/raperca/interface/public) [    ]
29-08-2019 13:45:32 INFO  spx.resource.media   - New Resource 'spx://interface/schedule/51/schedule.json' [    ]
29-08-2019 13:45:32 INFO  spx.resource.media   - New Resource 'spx://localserver/index.svg' (host: /srv/raperca/content) [    ]
29-08-2019 13:45:32 INFO  spx.resource         - Mapping virtual host: http://download.spinetix.com/spxjslibs to /usr/bin/../share/raperca/../spxjslibs/libs/
29-08-2019 00:01:27 INFO  spx.resource.media   - New Resource 'spx://localserver/Exemple_Sigange_2/Price%20List/Layout/Horizontal%20Forecast.svg' [    ]
29-08-2019 00:01:27 INFO  spx.resource.media   - New Resource 'https://download.spinetix.com/content/widgets/icons/weather/sunny.png' [ C C] (3965/7200s)
29-08-2019 00:01:28 INFO  spx.resource.media   - New Resource 'https://www.spinetix.com/sites/default/files/Hotel_services.csv' XHR GET -> 200 OK, Content-type: 'text/csv' 331 bytes
29-08-2019 00:01:47 INFO  spx.resource.media   - New Resource 'spx://localserver/Welcome/template%20corporate/Media/DNAStrandRotateLoopVidevo.mp4' [    ]

If a resource is being played continuously in a loop, the above line is added only once at starting time. Nevertheless, in case of a media resource, one or more lines will be added by the spx.svglib.media logger each time the media is restarting - for instance:

29-08-2019 00:01:47 INFO  spx.svglib.media     - Found media stream: video H.264, 1920x1080  (16:9) 4:2:0 25 fps Main profile Level 4.1
29-08-2019 00:01:47 INFO  spx.svglib.media     - Found media stream: audio AAC, 48000Hz stereo

When the media ends, you might see a message (it can be safely ignored) like this:

29-08-2019 00:01:51 WARN  spx.svglib.media     - error retrieving data of multimedia source from URI 'spx://localserver/Welcome/template%20corporate/Media/DNAStrandRotateLoopVidevo.mp4', MIME type 'video/mp4' (unknown error: -541478725), assuming end of stream

Common errors

  • Unsupported media stream:
    Unsupported media stream: ffmpeg codec id=0
    If your video/audio file is not playing correctly then check the encoding settings on the Video encoding page. If your video is playing as expected and you still see this error in the logs, then it can safely be ignored; the player is discarding the streams it does not handle, such as subtitles and metadata.
  • Server or proxy hostname lookup failed:
    Server or proxy hostname lookup failed : '[requested_file_url]' -> Could not resolve hostname `[proxy_server]': Host not found
    HMP cannot connect to the Internet - check if you have correctly entered the proxy details.
  • Object Not Found:
    File not found : 'project://AutoServer0-4/index.svg' -> 404: Object Not Found
    The "Autoserver" source (followed by a number) represents a remote network path. If you see this error then you will usually be using Client/Server mode but you have specified the server source incorrectly. Check the source is a directory path, and not a file.
  • Stream demuxing failed:
    WARN  spx.svglib.media - Stream demuxing failed because more than 1048576 bytes of buffering is required
    This is the result of a non-optimal multiplexing of the audio and video streams that requires more than 1 MB (respectively 3 MB in case of streaming media) of buffering of the audio or video stream in order to keep it in sync with the other. The solution is to re-multiplex the audio and the video streams using a software that creates correct multiplexing, like FFMpeg.
  • SSL certificate verification failed:
    HTTP Error : Command: GET on 'https://...' -> 0: Server certificate verification failed: issuer is not trusted
    The HMP could not verify the SSL certification for the resource URL and thus the resource is not loaded. Try using http or manually add the missing certificate on the HMP.

JavaScript

Any information or error generated by the JavaScript machine is added to the player.log by the spx.svglib.jscript logger - like for instance:

29-08-2019 13:44:49 INFO  spx.svglib.jscript   - exception thrown: TypeError: $.FooBar is undefined at spx://localserver/widgets/table.js:69
29-08-2019 13:44:49 INFO  spx.svglib.jscript   - exception thrown: TypeError: $.FooBar is undefined at http://download.spinetix.com/spxjslibs/jSignage.js:1452

Sometimes, especially during content development, it might be useful to log JavaScript debug information into the player.log - you can do that using the standard JavaScript alert() function or the jSignage loggers: debug, error, info, warn. You can also change the global logging level with the logAtLevel() function.

This page was last modified on 30 August 2019, at 14:02.