* WIP with new transcoder progress monitor
* A whole different WIP in progress monitoring via local PUTs
* Use an actual hls playlist parser to rewrite master playlist
* Cleanup
* Private vs public path for thumbnail generation
* Allow each storage provider to make decisions of how to store different types of files
* Simplify inbound file writes
* Revert
* Split out set stream as connected/disconnected state methods
* Update videojs
* Add comment about the hls handler
* Rework of the offline stream state. For #85
* Delete old unreferenced video segment files from disk
* Cleanup all segments and revert to a completely offline state after 5min
* Stop thumbnail generation on stream stop. Copy logo to thumbnail on cleanup.
* Update transcoder test
* Add comment
* Return http 200 on success to transcoder. Tweak how files are written to disk
* Force pixel color format in transcoder
* Add debugging info for S3 transfers. Add default ACL.
* Fix cleanup timer
* Reset session stats when we cleanup the session.
* Put log file back
* Update test
* File should not be a part of this commit
* Add centralized shared performance timer for use anywhere
* Post-rebase cleanup
* Support returning nil from storage provider save
* Updates to reflect package changes + other updates in master
* Fix storage providers being overwritten
* Do not return pointer in save. Support cache headers with S3 providers
* Split out videojs + vhs and point to specific working versions of them
* Bump vjs and vhs versions
* Fix test
* Remove unused
* Update upload warning message
* No longer valid comment
* Pin videojs and vhs versions
* Render and sanitize chat messages server-side. Closes#235
* Render content.md server-side and return it in the client config
* Remove showdown from web project
* Update api spec
* Move example user content file
* Experiment with javascript bundling
* Experiment with snowpack. Making progress
* Success! Uses local js modules and assets and no cdns
* Missing local css
* only consider short-heights when not smallscreen; hide status bar when small screen, but leave shadow;
* fix max char counting bugs with paste, yet be still be able to use modifier keys even when max chars reached
* rmeove 'chat' button; move into textarea
* use image for emoji picker for sizing consitency
* cleanup unused things
* - totally unecessary emoji picker style improvements
- totally necessary doctype added to emoji picker so it shows up more stable-y on mobile views
* more stable layout positioning for chat panel without hacky margins, so that the bottom of the message list will always be on top of the form input, and not behind it at any point.
* hide header on touch screens when screns are small and screen height is short (possibly when keyboard is up), so that there's more visibliity to see messages. this only works on chrome, not ios safari right now, due to the position: fixed of things.
* move char counting to keyup instead
* address message text horiz overflow (#157)
* dont jumpToBottom if user has scrolled about 200px from the bottom (#101)
* scroll to bottom on resize too
* cleanup
* revert test bool
* typo
* re-readjust short-wide case again
* - add focus to input field after emoji is selected, put cursor at end
- instead of smooth scrolling to bottom, just jump there.