* Added system_safe_path to convert paths to Windows
* Fix issue where engines would not be reported unless a system engine was installed
* Platform independent searching for binaries in engine directory
* Add missing package to requirements.txt
* Better error handling for ffmpeg.get_all_formats()
* Add system_safe_path to more locations in api_server.py
* Fix naming issue with Blender on macos
* Fix path lookups and add engine_path to workers
* Report installed renderers in status
* Remove files included by accident
* Add get_detected_gpus() and supported_render_engines() to Blender class
* Parse help args for Blender
* Return dict instead of list
* Parse args for FFMPEG
* Add API to get renderer args
* Only return available renderers
* Parse help args for Blender
* Return dict instead of list
* Parse args for FFMPEG
* Rebase off master
* Rebase
* Change methods from class methods to instance methods
* FFMPEG format fetching
* Add ffmpeg_downloader.py
* Move shared download logic to downloader_core.py
* Added Windows support and some misc cleanup
* Fix issue with copying contents of .dmg files
* Add FFMPEGDownloader to engine_manager.py
* Add blender_downloader.py
* Add engine_manager.py
* Add additional methods to engine_manager.py
* Refactor file layout to make engines on par with workers
* Add system platform info to status response
* Default to using system platform / cpu if none are provided
* Add API to download an engine and some general cleanup
* Add method to delete downloaded engine
* Add API calls to download engines and delete downloads
* Misc fixes
* Render worker makes multiple attempts if file_path increases on each run
* Change blender_worker.py to not overwrite existing files
* Chmod +x to client
* Add pubsub to render_queue and base_worker
* Refactor: Convert ZeroconfServer to Singleton with Class Methods
* New API for subjob servers to notify parent job servers of status changes
* Refactor: Move all subjob related methods to distributed_job_manager.py
* Rewrite for wait_for_subjobs
* Fix: DistributedJobManager.find_available_servers() takes 1 positional argument but 3 were given
* DistributedJobManager should now notify / be notified abotu background job changes
* Fix the make_ready api. Change children keyname to be id@hostname so it can be unique
* Fixes
* Image sequence to movie needs to find the actual start frame
* Fix: subjob_status_change did not return a valid response
* Fix client renderer selection
* Small fix for subjob status checking
* Fix issue with divide_frames_equally
* Fix issue where downloads were not occurring
* Fix issue where old status was being reported
* Add docstrings and code cleanup
* Expose renderer availability in status api
* Remove redundant is_available_for_job API call
* New server split logic by cpu and moved to server_helper.py
* Remove old dead code
* Add RenderStatus.WAITING to proxy categories
* Fix Blender image sequence -> video conversion and change video to use ProRes
* Wait for child jobs to complete
* Download and extract render files from subjobs
* Fix issue where zip was not removed
* Update client to use new method names in server proxy
* Fix minor download issue
* Add API to expose if RenderQueue is available to take new jobs for a given renderer and priority
* Fix issue with calculating Blender percent complete when not starting at 1
* Rename owner / client properties to parent / children
* Add make_ready method to API
* Create and submit subjobs to other servers
* Update make_ready to update children jobs and some misc fixes
* Misc GUI cleanup
* Accept start / end frames in job submissions. Start / end frame support for Blender
* Remove old render_all_frames variables and misc cleanup
* Client work - Client determines frame count for FFMPEG and shows frame picker UI
* Add ability to submit render jobs as URLs
* Considated add_job and add_job_handler
* Cleaned up code flow and added back in support for local file path submissions
* Misc cleanup
* Add background fetching to server_proxy
* Update UI to use server_proxy fetched jobs
* Fix issue getting status with empty jobs_cache
* Fix issue with jobs not appearing after switching servers
* Remove job_cache from dashboard_window and utilize server_proxy caches
* Remove jobs from table that shouldn't be there
* Streamline how we're handling offline tracking and handle connection error when fetching thumbnail
* Add ability to remove any manually added servers