Commit Graph

534 Commits

Author SHA1 Message Date
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
Roland van Laar
e931a1a985 VIDEO: PACo decoder: refactor for audio track
A PACo 'frame' has both the audio and video part of the frame. Where decodeNextFrame only handles video, readNextPacket enables the option to read a PACo frame and decode and queue both audio and video.
2022-03-05 22:11:40 +01:00
Eugene Sandulenko
fa9f8850bf
VIDEO: Added override keywords 2022-03-02 20:18:09 +01:00
Roland van Laar
f89084dd39 VIDEO: PACo decoder up debug level
PACo decoder for frames work aside from some artifacts.
Always outputting debug info is no longer needed.
2022-03-01 17:09:01 +01:00
Roland van Laar
810792195a VIDEO: PACo decoder: support custom palettes
Custom palettes inside PACo files are now parsed and imported.
2022-03-01 17:09:01 +01:00
Roland van Laar
d9222bed62 VIDEO: PACo decoder: fix dirty rect handler
Rects are left, top, right, bottom. Not left, top, width, height.
2022-03-01 17:09:01 +01:00
Roland van Laar
6a3b192ead VIDEO: PACo decoder framerate and palette
Move the VideoTrack to FixedRateVideoTrack. It handles frame duration
internally and removes the need to use nextFrameStartTime accounting.

Add getPalette function.
2022-02-28 19:33:37 +01:00
neuromancer
ce7886ab67 VIDEO: improved how forceSeekToFrame handles videos when frame to seek is close to the start of the video 2022-02-23 20:30:24 +01:00
Eugene Sandulenko
9a1aff9cf4
JANITORIAL: Fix indentation 2022-02-21 22:19:37 +01:00
Roland van Laar
24b7267b8b VIDEO: Implement decoder for PACo files
The code decodes PACo video frames.
Other features, such as audio and palette changes are detected
but not handled.

Format documentation: https://wiki.multimedia.cx/index.php?title=PACo
Thanks to Kostya for reverse engineering the format and the original C
code.
2022-02-21 19:11:28 +01:00
neuromancer
67ed302224 VIDEO: rewind when forceSeekToFrame is called with a frame near the start of the video 2022-02-13 18:28:36 +01:00
Filippos Karapetis
9088873baf VIDEO: Make getNextDirtyRect() in the Smacker decoder overridable
This is needed for the trecision Amiga video player, which currently
inherits from SmackerDecoder
2022-01-25 18:00:15 +02:00
Le Philousophe
0c178b00f4 VIDEO: Make unsigned -1 looking better 2022-01-12 09:10:40 +01:00