Christoph Oelckers
df3e82d94c
cleaned up some redundant file reads and fixed file opening in the movie player.
...
As a streaming action this cannot borrow the one from the archive.
2023-12-14 17:22:31 +01:00
Christoph Oelckers
fe106d9bfe
merge FileData and ResourceData.
2023-12-14 17:22:29 +01:00
Christoph Oelckers
96b3f1f5e0
removed unused variable in M_FindResponseFile and added file length check in ANM player.
2023-12-10 11:55:42 +01:00
Christoph Oelckers
fc84579319
let FileReader::Read return an opaque buffer instead of std::vector.
...
This can later allow returning a pointer to a static buffer from a cache without creating copies.
2023-12-10 09:07:49 +01:00
Christoph Oelckers
7a5a2858a2
yet even more GetChars calls added.
2023-10-07 23:29:24 +02:00
Christoph Oelckers
21d6eb99eb
use std::vector as return value for the FileReader's buffer readers.
2023-08-22 22:18:21 +02:00
Christoph Oelckers
81fb9a26b2
- backend update from Raze.
...
* add QualifiedName to VMFunction and allocate these static names from the class data memory arena instead of using FStrings.
* null pointer type checks in the VM added to avoid crash on bad codegen.
2023-07-22 09:55:49 +02:00
Christoph Oelckers
acfe82b9a8
- Backend update from Raze.
2023-05-27 09:31:17 +02:00
Christoph Oelckers
d173c0453c
- handle all remaining places of sound ID conversions after removing the conversion operators.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
160633a4a2
- migrate a large part of the sound code to FSoundIDs.
...
This has always been a wild mixture of IDs and ints.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
57add9a45c
- fixed some warnings and updated vectors.h
2022-10-15 12:10:01 +02:00
Chris Robinson
9aee7415eb
Sync movie video playback to the audio, when possible
2022-10-14 07:10:06 +02:00
Chris Robinson
d2f8c57136
Make frame timing consistent between movie players
2022-10-10 08:33:23 +02:00
Chris Robinson
bf2e7c210d
Use a MovieAudioTrack for synchronized audio with MvePlayer
2022-10-10 08:33:23 +02:00
Chris Robinson
573784b37f
Handle the SoundStream in MvePlayer instead of InterplayDecoder
2022-10-10 08:33:23 +02:00
Chris Robinson
bf933b3904
Decode audio and video separately in InterplayDecoder
2022-10-10 08:33:23 +02:00
Chris Robinson
fa2cea3e5b
Read whole chunks at a time from Interplay MVE files
2022-10-10 08:33:23 +02:00
Chris Robinson
80bf62cb3c
Start the VPX audio track on the first frame
...
MoviePlayer::Start is called about a second (potentially) before
MoviePlayer::Frame starts getting called to actually play the video, causing
the audio to start early and require significant synchronization adjustment.
This isn't ideal to constantly check if the audio track needs to play in
MoviePlayer::Frame, but it's better than starting prematurely.
2022-10-10 08:33:23 +02:00
Chris Robinson
5e465a65e2
Make a common class to help with movie audio streams
2022-10-10 08:33:23 +02:00
Chris Robinson
d11e2ef1ac
Always output 16-bit samples from SmackerDecoder
2022-10-10 08:33:23 +02:00
Chris Robinson
1a692f5c28
Synchronize Smacker movie audio tracks
2022-10-10 08:33:23 +02:00
Chris Robinson
5d00b96e5f
Read Smacker video and audio data separately
2022-10-10 08:33:23 +02:00
Chris Robinson
7401e02a14
Include the source latency for movie audio synchronization
2022-10-10 08:33:23 +02:00
Chris Robinson
c825ff3543
Use a more reasonable buffer size for the movie audio stream
2022-10-10 08:33:23 +02:00
Chris Robinson
a2f0c1aee6
Update the audio offset when skipping a full update
2022-10-10 08:33:23 +02:00
Chris Robinson
1a233b08c3
Synchronize the VPX "soundtrack" with the frame clock
2022-10-10 08:33:23 +02:00
Chris Robinson
c808aad595
Play the VPX "soundtrack" as a SoundStream
2022-10-10 08:33:23 +02:00
Christoph Oelckers
b225a910a0
- Backend update from Raze
2022-10-09 13:44:43 +02:00
Christoph Oelckers
74866c28ce
- allow taking screenshots in cutscenes.
2022-06-16 09:51:09 +02:00
Christoph Oelckers
c5eec7b8bb
- fixed: For cutscenes the alternative clean scaling factors need to be activated.
...
This setting was at odds with the internals of the intermission and summary screen handlers.
2022-06-16 09:18:27 +02:00
Christoph Oelckers
71ce8aa79a
- block wipes when streaming movies are playing.
...
For synchronization purposes they cannot be interrupted by the wipe loop.
This also groups the cutscene state in a struct for readability purposes.
2022-06-06 12:30:47 +02:00
Christoph Oelckers
c62e14d2c1
- Backend update from Raze
...
Mostly cleanup and better separation of game/backend concerns.
2022-06-06 12:09:29 +02:00
Christoph Oelckers
0ee1cc85ec
- fixed: The IVF decoder never accounted for odd dimensions when applying the UV subsampling.
...
To simplify the code the 'optimized' loop was replaced with one iterating over all pixels - even in the worst of cases the little savings are hardly performance relevant.
2022-06-05 08:09:50 +02:00
Christoph Oelckers
0de3ff81e1
- add wipe transition support to the screenjob runner.
2022-04-26 20:50:37 +02:00
Christoph Oelckers
336c45aaa4
- SCreenjob fixes
...
Still doesn’r show anything but we got it all set up now.
2022-04-26 20:50:35 +02:00
Christoph Oelckers
7ed8d3b3e2
- screenjob. fixes from Raze
2022-04-26 20:50:35 +02:00
Christoph Oelckers
d994369fd0
- timer code fixes.
2022-04-26 20:50:35 +02:00
Christoph Oelckers
9898ee542c
- route all accesses to gameaction from the backend through the sysCallbacks.
...
gameactions are frontend specific so this needs to be decoupled.
2022-04-26 20:50:34 +02:00
Christoph Oelckers
e5baef837a
- text screen helper stuff for cutscene system.
2022-04-26 20:50:34 +02:00
Christoph Oelckers
df0412d634
- a few things may not be static anymore.
2022-04-26 20:50:34 +02:00
Christoph Oelckers
5aaabbeb01
- did some project file cleanup.
2022-04-26 20:50:34 +02:00
Christoph Oelckers
69a7715a02
- added all the prerequisites for the cutscene system from Raze:
...
* libvpx library
* libsmackerdec
* playmve
* MoviePlayer class.
* ScreenJob engine core.
2022-04-26 20:50:34 +02:00