Commit Graph

546 Commits

Author SHA1 Message Date
Cameron Cawley
0581301b24 COMMON: Move huffman.h back out of the compression directory 2022-12-11 22:33:23 +01:00
elasota
cc11b531e3 JANITORIAL: Clean up all non-engine Visual Studio warnings. 2022-12-04 00:08:48 +01:00
Simon Delamarre
709df52d48
GOB: fix some audio/video sync issues in Adibou2
This workaround solves audio/video sync issues that used to appear frequently in many animations, e.g. when Adibou kicks the ball in the garden.

Those animations easily get out of sync when the timing is done by hotspots::evaluate, which sometimes does not call animate() as often as needed for good sync (mouse events processing, in particular, can delay the call).
The original game seems to use also some kind of frame skipping to address this problem.
2022-12-02 11:44:33 +01:00
Simon Delamarre
0f811dcd6a
GOB: vertical offset bugfix when deflating VMD directly onto a video surface
This fixes a frame offset error in the puzzle game of Adibou2, where the vertical offset was added twice.
2022-12-02 11:44:32 +01:00
Simon Delamarre
4c551956c5
GOB: fix disappearing objects in Adibou2 after video play
The video slot was sometimes not closed, preventing the mult object to be reused with a static image.
2022-12-02 11:44:25 +01:00
Eugene Sandulenko
fb7095f5a4
COMMON: Move all compression-related files to a separate directory 2022-12-01 11:53:02 +01:00
Vladimir Serbinenko
588f706503 VIDEO: Switch DXA decoder to gzio.
This reduces reliance on zlib
2022-11-28 00:19:51 +01:00
Le Philousophe
db1d834729 VIDEO: Handle screen size change in subtitles
This avoids assertions failures when overlay is resized while displaying
subtitles
2022-11-20 17:18:38 +01:00
Le Philousophe
fd6c95c35b VIDEO: Cleanup subtitles dev mode 2022-11-20 17:18:38 +01:00
Le Philousophe
220eed50e9 VIDEO: Add a close method for subtitles 2022-11-20 17:18:38 +01:00
Le Philousophe
30743f4a5e VIDEO: Optimize subtitles rendering
Subtitle text is only rendered while necessary.
Overlay management is done in the class instead of expecting engine to
handle it.
Overlay is not cleared when there is alpha support. This avoids useless
memory operations while the overlay being transparent, game screen is
rendered below it.
2022-11-20 17:18:38 +01:00
Cameron Cawley
e04000d4b0 COMMON: Move FFT, DCT, MDCT, RDFT, SineTable, CosineTable and getSineWindow into Math 2022-11-20 14:32:05 +01:00
Cameron Cawley
59682f9ccf AUDIO: Unify implementations of SilentAudioStream 2022-11-13 23:14:39 +02:00
Scott Percival
94e482145b VIDEO: Fix infinite loop when loading greyscale QT videos 2022-10-06 00:05:17 +02:00
Scott Percival
32f87b27cb VIDEO: Fix VideoDecoder::needsUpdate to work for audio-only files
VideoDecoder::needsUpdate() only returns true if there are frames
remaining to be rendered. This won't work for video files that are
audio-only, so in the event of a such a file, fall back to checking
endOfVideo() which includes audio tracks.

Fixes audio-only DigitalVideoCastMembers in the Director engine.

Fixes playback of the cupcake song in Chop Suey.
2022-10-06 00:05:17 +02:00
Cameron Cawley
9a71eb1a6d VIDEO: Avoid 64-bit math in Smacker bitstreams 2022-10-01 10:58:47 +02:00
Die4Ever
6d7d970e17 VIDEO: subtitles dev mode config 2022-09-29 11:27:47 +02:00
Roland van Laar
5bf1cc00ff VIDEO: PACo decoder: Fix coverity issues
Remove unused integer _frameDelay:
    Fixes COVERITY: 1476344
Initialize Non-static class members on PacoDecoder:
    Fixes COVERITY: 1476353
Resource leak in object No destructor on PacoAudioTrack:
    Fixes COVERITY: 1476360

Fix memory leak in handleFrame. Delete copied data in fdata.
2022-09-27 09:57:57 +02:00
Scott Percival
46fe41a77c DIRECTOR: Plug memory leak in AVI loader 2022-09-25 10:35:03 +02:00
BLooperZ
aea6f5348a VIDEO: Support BiDi text in subtitles 2022-09-24 11:41:50 +02:00
Eugene Sandulenko
878b79a149
VIDEO: Fix compilation without freetype2 2022-09-24 00:42:28 +02:00
BLooperZ
3f611f9d51 VIDEO: Adapt subtitles overlay to text size 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
a72b97097c VIDEO: With shadow we do not need to render monochrome anymore 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
0a093d5e0a VIDEO: Attempt to fake font outline 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
dff6943cbf VIDEO: Render subtitles without antialiasing (less artifacts) 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
57ba69d046 VIDEO: Switched to Unicode 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
f255467bd3 VIDEO: Center subtitles on screen 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
2ca793f720 VIDEO: Finished subtitle drawing implementation 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
af8c37db9d VIDEO: Initial code for drawing subtitles on overlay 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
9cb80bc9fb VIDEO: Load font for Subtitles 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
8fa9f74d59 VIDEO: Fix crash on subtitles reload 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
bb42c9bda4 VIDEO: Started implementation of generic Subtitles class 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
d02ff2ea5a VIDEO: Renamed srt_parser.* to subtitles.* 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
f555592e10 VIDEO: Fixed subtitle search method 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
d9fdaa3fe1 VIDEO: Implemented subtitle retrieval for SRT subtitles 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
aafcce2a9a VIDEO: Sort SRT subtitles after loading 2022-09-23 11:05:01 +02:00
Eugene Sandulenko
b45599fdb2 VIDEO: Initial implementation of SRT parser 2022-09-23 11:05:01 +02:00
Matthew Duggan
b2a9df06e2 VIDEO: Set decoder frame rate when loading Theora video. 2022-09-22 03:11:40 +03:00
Le Philousophe
399e02e2a5 CRYOMNI3D: Add HNM6 image and video codec
This also adds a Cryo APC decoder in shared code.
2022-08-30 11:02:32 +02:00
Cameron Cawley
47755b4b38 COMMON: Make better use of inlining in BitStream functions 2022-08-28 00:05:31 +03:00
sluicebox
69662ee9a4 VIDEO: Fix QuickTime regression with mediaTime and dithering
Fixes an error when playing a QuickTime video that has a mediaTime set
on its first edit. This was caused by mediaTime changes in:
ef184a6cef98a1756c0669a03fa9b6fa2386b6e7

Those changes buffered frames during initialization so that the keyframe
and other frames don't play instead of the intended start frame that
mediaTime specifies. My mistake was that decoding isn't allowed during
VideoDecoder::loadStream(); VideoDecoder::setDitheringPalette() requires
that no frames have been decoded yet, and at least Director and Mohawk
call that.

Now the initial mediaTime buffering is delayed until the first decode.

Fixes bug #13479 where certain Myst videos error.
Fixes the opening movie in the Director game Chop Suey.
2022-08-04 15:49:30 -04:00
Cameron Cawley
e934ddeed5 VIDEO: Fix playing HNM videos without sound 2022-06-26 15:29:11 +02:00
D G Turner
3192daf0a7 VIDEO: Fix Signed vs. Unsigned Warnings in MTROPOLIS changes to QT Decoder 2022-06-16 21:58:09 +02:00
elasota
a4c8fb1b85 MTROPOLIS: Add support for QuickTime ranges, fix Obsidian Bureau light carousel triggering without interaction. 2022-06-16 21:58:09 +02:00
Cameron Cawley
b852af46c2 VIDEO: Add generic support for Smacker videos with custom signatures 2022-06-05 21:30:06 +02:00
Donovan Watteau
5b1ec56f96 JANITORIAL: Fix some lost or outdated URLs in comments 2022-05-19 07:57:31 +03:00
Roland van Laar
80f4f670f9 VIDEO: PACo decoder: skip lines in ouput
The amount of lines to skip is in `len`. This wasn't taken into account
when decoding the endcurrentline opcode.

Thanks to Kostya for resolving the issue.
2022-03-07 18:56:00 +01:00
Orgad Shaneh
6edd4656fb VIDEO: Fix compiler warnings on Windows 2022-03-06 18:34:52 +02:00
Misty De Meo
d4117f3887 VIDEO: mark PACo method as override 2022-03-06 09:48:52 +02:00
Roland van Laar
54240bdac6 VIDEO: PACo decoder: Add audio support
PACo audio is single channel 8 bit unsigned pcm.
The first sound packet is read to determine the sampling rate.
2022-03-05 22:11:40 +01:00