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:
ef184a6cef

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