Commit graph

21552 commits

Author SHA1 Message Date
James R
cea8a10007 media: fix incorrect usage of SRB2_ASSERT on functions with side effects 2023-02-24 19:21:01 -08:00
James R
bf8d90af8c Don't use C++20 designated initializer (since we target C++17)
growl
2023-02-24 19:21:01 -08:00
James R
aefc12e40e media/options: refactor cvar factory completely, ensure correct MIN/MAX order 2023-02-24 19:21:01 -08:00
James R
02fe7ec744 media: fix undefined behavior with options initialization order
Cvar vector was not guaranteed to initialize before
options for each encoder, potentially leading to no
encoder cvars being registered.
2023-02-24 19:21:01 -08:00
James R
860693936f media/avrecorder: bias size limit by 1% to account for muxing overhead 2023-02-24 19:21:01 -08:00
James R
304e57cbf0 Add user feedback for AVRecorder
- real time monitoring of duration and esimated file size
- estimated frame rate of final video (encoder speed)
- print brief details of audio and video tracks upon
  starting recording
- print exact file size and duration once recording is
  finished
2023-02-24 19:21:01 -08:00
James R
840c11577e Implement Software mode paletted screen conversion for AVRecorder
This is only necessary since HWR2's framebuffer is window
size (monitor resolution in fullscreen mode).

Once the framebuffer is changed to be native game
resolution, this commit should be reverted and a new
interface should be implemented to directly copy the
framebuffer's pixels into video frames.
2023-02-24 19:21:01 -08:00
James R
fa0071e785 sdl/new_sound.cpp: record audio with AVRecorder 2023-02-24 19:21:01 -08:00
James R
c65f4ff893 Add AVRecorder movie mode 2023-02-24 19:21:01 -08:00
James R
79b1a8fd63 Add C game interface to construct and destroy global AVRecorder instance 2023-02-24 19:21:00 -08:00
James R
82251f6fb6 media: add core AVRecorder
Generic interface to audio and video encoders.
2023-02-24 19:21:00 -08:00
James R
654f97fa72 media: add WebM Vorbis and VP8 encoders 2023-02-24 19:21:00 -08:00
James R
60899133c1 media: add libwebm container 2023-02-24 19:21:00 -08:00
James R
b8015b4ad2 media: add libvpx VP8 encoder 2023-02-24 19:21:00 -08:00
James R
1415254131 media: add YUV420p module
Converts RGBA image to YUV420p, useful for most video
codecs.
2023-02-24 19:21:00 -08:00
James R
650264ea86 media: add libvorbis encoder 2023-02-24 19:21:00 -08:00
James R
e9f5a75d4a media: add "options" cvar abstraction 2023-02-24 19:21:00 -08:00
James R
3b5245f974 Add basic multimedia container and encoder interfaces
Adds the media subdirectory.
2023-02-24 19:21:00 -08:00
James R
8ee785bb7e cpm-ogg.cmake: fix libvorbis cross-build
Vorbis couldn't find ogg so tell it explicitly where it
is.
2023-02-24 19:20:43 -08:00
James R
61198a46e7 Add libvorbis (and ogg) dependency 2023-02-24 19:20:43 -08:00
James R
3741ab1c91 Add libwebm, libvpx, libyuv dependencies
Libvpx is built with configure script and make.
Unfortunate but the configure script is very dense and I'm
not sure if it's worth translating into CMake, since it
apparently does CPU detection for optimizations.
2023-02-24 19:20:43 -08:00
James R
d76a10f2fa Merge branch 'block-tripwire-abuse' into 'master'
Tripwire anti-cheese

See merge request KartKrew/Kart!968
2023-02-24 08:48:54 +00:00
Oni
4309df414c Merge branch 'desperation-spindash' into 'master'
Desperation spindash

See merge request KartKrew/Kart!967
2023-02-24 07:31:00 +00:00
AJ Martinez
9b5bd70cae Briefly lock out TRIPWIRE_BLASTER after failing a tripwire 2023-02-24 00:30:21 -07:00
AJ Martinez
2cc02f43fd Double-speed spindash at 0 rings, remove Battle spindash buffs 2023-02-23 23:49:24 -07:00
Oni
ffb0596581 Merge branch 'fix-acs-includes' into 'master'
Fix ACS includes

See merge request KartKrew/Kart!963
2023-02-23 23:26:57 +00:00
Oni
5dadf48da1 Merge branch 'local-camera-fixes' into 'master'
Debounce cmd latency in local camera prediction

See merge request KartKrew/Kart!965
2023-02-23 23:25:54 +00:00
AJ Martinez
560050cf2c Remove old anglepredict debug print 2023-02-23 15:21:54 -07:00
AJ Martinez
4062447ee7 Debounce cmd latency in local camera prediction 2023-02-23 15:19:11 -07:00
Chromatian Keiske
aa76ba45db Merge branch 'fix-spb-lightning' into 'master'
Let Lightning Shield destroy SPB

Closes #427

See merge request KartKrew/Kart!933
2023-02-23 21:59:29 +00:00
Chromatian Keiske
016a3f82ca Merge branch 'separate-capsule-tracker' into 'master'
Only draw capsule icon for Break the Capsules HUD tracking

See merge request KartKrew/Kart!964
2023-02-23 21:45:58 +00:00
James R
ecd36144c8 Only draw capsule icon for Break the Capsules HUD tracking 2023-02-23 00:31:45 -08:00
VelocitOni
5bffc13db9 Reduce Gardentop Odds
A bit of a problem still, because I noticed that k_roulette.c isn't matched with our google doc. But this should be less annoying for now
2023-02-23 02:36:55 -05:00
James R
afec876f01 Add exception to let Lightning Shield destroy SPB 2023-02-22 03:42:25 -08:00
James R
c118b3cff1 Merge branch 'fix-cmake-ubuntu-2004' into 'master'
Fix CMake build on Ubuntu 20.04

See merge request KartKrew/Kart!948
2023-02-22 11:25:43 +00:00
James R
b0a4350454 Merge branch 'gachaboss' into 'master'
Use intermittent Gachabom in boss item table

See merge request KartKrew/Kart!954
2023-02-22 11:25:21 +00:00
James R
923b8414a1 Merge branch 'refactor-kitemcap' into 'master'
Refactor kitemcap

See merge request KartKrew/Kart!955
2023-02-22 11:23:51 +00:00
James R
03ada35269 Merge branch 'k-hud-track-cpp' into 'refactor-kitemcap'
Refactor capsule HUD tracking code to C++

See merge request KartKrew/Kart!956
2023-02-22 11:23:37 +00:00
James R
70cd31e04d ACS: include required C++ headers 2023-02-22 03:20:47 -08:00
James R
3e9b2e45e5 ACS: include libraries headers before any game headers 2023-02-22 03:20:47 -08:00
Oni
96862a2a6f Merge branch 'dont-fault-outside-of-race' into 'master'
Don't FAULT outside of Race modes

See merge request KartKrew/Kart!959
2023-02-22 09:59:47 +00:00
Oni
5dddf4c5e9 Merge branch 'despawn-empty-kart' into 'master'
Add 5 second fuse for empty kart, flickers right before despawning

See merge request KartKrew/Kart!961
2023-02-22 09:56:11 +00:00
Oni
b368e6835c Merge branch 'improve-vissprite-rangecheck-message' into 'master'
Add more details to R_DrawVisSprite RANGECHECK message

See merge request KartKrew/Kart!946
2023-02-22 09:29:49 +00:00
Oni
5217650583 Merge branch 'seg-fault-on-i-error' into 'master'
Generate a backtrace for I_Error; add a crash command

See merge request KartKrew/Kart!947
2023-02-22 09:29:26 +00:00
Oni
fd29a03a2b Merge branch 'claw-speedup-noise' into 'master'
More UFO FX

See merge request KartKrew/Kart!960
2023-02-22 08:17:36 +00:00
James R
b4b1543e0e Add 5 second fuse for empty kart, flickers right before despawning 2023-02-22 00:16:40 -08:00
AJ Martinez
fa73500787 More UFO FX 2023-02-22 01:09:34 -07:00
James R
d90351d660 Don't FAULT outside of Race modes 2023-02-21 23:59:56 -08:00
Oni
0fe70c373b Merge branch 'neo-eggbox' into 'master'
Contact-transfer eggboxes

See merge request KartKrew/Kart!958
2023-02-22 07:17:03 +00:00
Oni
63edb1f3f1 Merge branch 'random-means-dont-care' into 'master'
Change Random map vote to "don't care"

See merge request KartKrew/Kart!953
2023-02-22 06:49:06 +00:00