All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
- updated Install instructions for latest Raspberry Pi OS (12).
- utilize Python virtual environment instead of installing to system libraries
- layout of README for better readability and compatibility with the README Standard
- removed manual FFMPEG build instructions. No longer needed as apt libraries work just fine
- added try/except around FFMPEG call so returned errors can be logged
- new
/api/screenshot
API call to stream image currently displayed on EPD - added screenshot page to web interface that mirrors image shown on screen
- renamed Status to Controls in menu to better reflect use
- the additional display options are now listed as
title - timecode (ip)
instead of(ip) title - timecode
for better readability
- fixed
textsize()
deprecation and removal planned for Pillow 10. Usingtextbbox()
instead.
- issue with the file browser when at the root
/
of the filesystem
- fixed issue with file system browser where no path would be returned if the initial path was non existent (video files deleted)
- removed conversion to BW image in
vsmp.py
- let the EPD driver do this
- new setting Skip Blank Frames uses Pillow to check if frame is all black and tries to get the next one
- display timecode on progress slider on homepage (HH:MM:SS)
- added dependency to vsmp service file, the service now depends on redis and will wait for it to be available
- if IP changes while running toggle IP display setting so it shows visually, prevents DHCP from creating a lost player
- use
v
to select the video stream only withffmpeg.probe()
- added support for additional video formats, AVI, MKV, M4V, and MOV
- added configuration option for a startup screen on first boot
- added
last_run
as part of player status, used to calculate if an update was missed when sign was missing and force update on startup
- removed fnmatch dependency, use python
filter
method instead
- added OS dependency for Free Fonts instead of using waveshare bundled font
- removed requirement to clone Waveshare lib manually
vsmp-epd
rebranded toomni-epd
- added
vsmp-epd
as dependency for abstracting displays, multiple displays now supported
- added
--epd
command line argument to pass in valid EPD driver name to load
- added install.sh script
- updated Install file with current instructions
- changed logging behavior, console logging enabled when in debug mode and web server logging disabled when not in debug mode (stop spamming journal)
- changed path to Font files to match new location of waveshare repository
- Don't need waveshare lib any more in this repo, modified instructions to build from source
- added flake8 syntax check via Github Actions
- updated all python code to be pep8 compatible
- use f-strings instead of % formatting
- added API examples to README
- added API endpoint
/api/browse_files/<path>
to return a listing of files and folders in a given directory - using browse_files endpoint added file browser to setup and analyzer pages instead of having to type full path to files/folders
- tooltip showing percent on seek bar to eliminate guesswork when clicking
- fixed issue in calculating percent for seeking. Need to use jquery offset() function to get correct values
- fixed issue with analyzer where Remaining Time To Play wasn't loading current position of video correctly
- added Device IP as a valid display option as part of the configuration. Helpful when trying to find the device on the network.
- when no video loaded display message with address of web management page on display
- player status (paused or running) included as part of
/api/status
command - show next run time as part of
/api/status
- include next run time on web display
- use boot strap icons to show some icons in various areas
- fixed crash when no video file loaded due to empty directory or bad file location
- error when setting up player status on first run
- use title tag instead of name tag for video title display, this is pulled from meta data
- fixed button toggle on "pause" in
index.html
file - added natsort to help with sorting videos better in a directory
- added redis-server and the python redis library as dependencies
- added
/api/control/next
and/api/control/prev
functions. These will allow you to advance through videos when in directory mode - added buttons to web interface for prev and next when in directory mode
- support for seeking to a specific point in a video file using the
/api/control/seek
endpoint - new configuration setting
allow_seek
. Will toggle the ability to seek in the web interface to avoid seeking on accident
- moved the current program status, last played file status, and player configuration options to redis instead of flat files. This should help reduce read/writes to the SD filesystem
- made the program "paused" by default on first run. This gives the user a chance to edit settings before starting
- return some generic "no file loaded" messaging if requesting status and no last played file information
- separated the "find video" logic into it's own class so it can be reused elsewhere
- removed saving individual video information files. These weren't read in for any real reason any more since the last played status had everything needed
- moved files to
modules
directory to keep local python source files a bit cleaner - changed menu to separate player from analyzer controls
- removed legacy
analyze.py
file as it has been merged into the web service
- can update settings from web interface via
/api/configuration
API call - added
-D
arg to toggle debug logging on/off - config validation now handles checking for int values as well
- converted
analyze.py
file to add functionality to web interface
- updated README with info on the new CLI args, web service, and API endpoints
- added ability to pause or resume the player via the web interface
- updated bootstrap version to 4.3.1 and updated web app theme
- fixed percent complete calculation, was done prior to loading current position resulting in incorrect percent value
- added ability to POST values to
/api/configuration
and update configuration - added setup web page to view current configuration values (no update yet)
- added
running
key to config.json file. When set to false will pause the program, even if update time is triggered
- added
percent_complete
key in the status .json files, can be returned with status endpoint
- fixed error when no last_played.json file existed, how handled correctly
- added ability to refresh config while program is running. Adjustments to
config.json
file will update config without program restart
- changed arguments to main
vsmp.py
file. Only webserver port is given as an argument. Other parameters are either defaults or pulled fromtmp/config.json
- added Flask based web service with some basic endpoints. will eventually allow for on the fly program control
- moved some global values to the utils file to be used more generally
- save file information as a JSON object instead of just the positional information
- dump all file info to
last_played.json
and reload this when continuing the same file instead of re-probing the file each time
- check that
last_played
file value is contained in the video directory when using the--dir
option before using the saved value. Fixes issues where the video was deleted or the program restarted with a new directory option
- Added ability to extract title information from the video file, if it exists
- changed
-t
to-D
(display). This allows for displaying the video title, timecode or both through the use of-D title timecode
or just-D timecode
as examples
- added ability to pass in .conf file with
-c
arg
- updated Install document
- use configargparse library instead of argparse as found in the @missionfloyd branch
- changed
-d
arg to-D
so both analyze and vsmp file args match
- license - GPLv3
- pictures of working version in frame
- updated loading of EPD driver as defined in original SlowMovie branch V2
- pull screen height/width from the EPD driver now
- removed black rectangle from top of screen, leftover from testing
- fixed
epd.sleep()
method as defined in the SlowMovie branch V2
Modifications made before start of changelog can be found in the commit history.