The format of the `MpvEvent*` classes, the data passed to the event
callback and the available event type enum fields have all changed
between python-mpv < 1.0.0 and >= 1.0.0.
This change makes things work with all mpv + python-mpv versions.
The VLC event callback handler shouldn't try and access the media and/or
the MRL while processing a `MediaPlayerTitleChanged` event.
It seems that in some particular streaming cases (mostly reproducible
with Jellyfin media URLs) this may result in deadlocks - probably
because the media metadata is being handled within the HTTP request, and
the callback handler runs within the same context.
The player may sometimes stop, or the VLC instance crash, without
sending a stop event.
This may leave the Platypush plugin in a PLAYING state, and the instance
may not be properly cleaned up.
This commit adds a polling logic to the monitor thread to verify every
second if the player is still running, and terminate the instance if
that's not the case.
The stream media cache can easily grow in MB in size. Storing it in
Redis means impacting the performance of the application, as on every
web media streaming event it'll have to fetch and deserialize MBs of
data, and Redis may also flush the .rdb file to disk several times in
the process.
- Reduced size of the Ubuntu image by removing some unneeded packages
(docutils, manpages, babel, fonts, python-pil etc.) that take a lot of
space.
- Better self-documented docker-compose.yml.
- Added reference to the registry.platypush.tech/platypush image in
docker-compose.yml (README reference will follow).
- Fixed grep condition in the Docker prepare script.
- Pass `--no-deps` to `pip install platypush`. The dependencies of the
application, now that `marshmallow_dataclasses` has been removed, are
all available in the package managers of the supported images (with
the exception for croniter in Alpine Linux for now), so they can all
be installed via system package manager rather than pip. This also
prevents Ubuntu builds from breaking because system-installed packages
are being overwritten with pip-installed copies.