3,522 Commits over 1,338 Days - 0.11cph!
Add target frame rate to VideoWriter.Config
Add temp context menu option to dump video thumb to show usage
Use VP9 with YUVA420P to encode with alpha
Add video thumb rendering to asset preview to test https://files.facepunch.com/layla/1b1411b1/test.mp4
Passing an invalid timestamp will use incremental frame count as the pts
Expose video recorder to managed
Basic ffmpeg video encoder
Impl VideoPlayer.HasAudio
Fix VideoPlayer.IsPaused flicking on and off when seeking (stream will temporarily unpause when seeking)
Fix video player Duration and PlaybackTime
Don't create tools triangle list for runtime meshes for now to investigate crash
VideoPlayer: Default input format to mp4 if no ext specified in url
Perform texture streaming when in main thread render block. We used to return early because we'd get crashes but now we're getting hangs with it, so disable for now and see how we get on.
Check for texture last used before running task
Decode texture frames on background thread
Fix crash in attached audio stream due to uninitialized callback
Fuck avataranimated: off and just load the animated version if they have it for avatar: (big and small versions are static)
Avatar loader supports animated steam avatars. Example: url( avataranimated:@Friend.Id )
Update texture frames when needed from bitmap, much safer than pissing around with texture handles (and less vram usage)
VideoPlayer: Stop using unique ptr for things that don't need it
ShaderGraph: Palette only displays shader nodes
Animated Images (#1074)
Image loader now supports gif and webp ideally used for small animated images like icons, avatars, effects.
Http image loader uses Image.Load so we don't have two image loading paths and so gif and webp work from url
Image loader creates textures for multiple frames if they exist. Whitelist gif and webp. Swap out texture handles for the current frame. https://files.facepunch.com/layla/1b0711b1/sbox-dev_rCZwXFIzD1.mp4
Make Texture.Animation a class not a struct
Add super simple ui test that shows an animated image
Remove texture animation from list when texture isn't being used anymore
Make sure frame texture strong handles are destroyed
ImageAnimation -> AnimatedImages
Default 100 ms frame time when not frame timings available
Refactor video read thread
Remove unused functions from video player provider
VideoPlayer: Use swscale instead of filter bullshit
Default 100 ms frame time when not frame timings available
ImageAnimation -> AnimatedImages
Make sure frame texture strong handles are destroyed
Remove texture animation from list when texture isn't being used anymore
Add super simple ui test that shows an animated image
Make Texture.Animation a class not a struct
VideoPlayer: Refactor to remove audio filtering bullshit, resample at
44100 2 channels
Pass in video ext from managed so we can check that for input format
Image loader creates textures for multiple frames if they exist. Whitelist gif and webp. Swap out texture handles for the current frame. https://files.facepunch.com/layla/1b0711b1/sbox-dev_rCZwXFIzD1.mp4
Avoid threading assert in audio thread
VideoPlayer: Fix repeat not working when user doesn't output sound on a video with sound
Fix video player not playing from filesystem path
Whitelist mp4 and webm to avoid going any further than we have to
Limit input formats to mp4 and webm
VideoPlayer.Play that takes a url checks if it's actually a url
Modeldoc: Compile skeleton with ALL bones no matter if they're used in skinning or not
Fix func_voxelsurface to the new way of getting the surface face
ShaderGraph: Fix formatting on generated code
Add blendmodes.hlsl until shadergraph just generates these functions
ShaderGraph: Fix NRE when identing generated code
procedural.hlsl isnt in common anymore