Commit Graph
503 Commits
Author SHA1 Message Date
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
Le Philousophe dec0427eda VIDEO: Fix HNM audio desynchronization 2022-01-12 09:10:40 +01:00
Filippos Karapetis e843e6447f VIDEO: Add one more missing initializer in HNMDecoder's constructor 2022-01-09 18:53:26 +02:00
Filippos Karapetis a848dc0d26 VIDEO: Add missing initializer in the HMN decoder 2022-01-09 18:50:16 +02:00
Le Philousophe 7c03cf5c50 VIDEO: Optimize HNM5 copies slightly 2022-01-09 13:57:00 +01:00
Le Philousophe b6a1d3cf37 VIDEO: Small optimization on HNM4A decoder 2022-01-09 13:24:50 +01:00
Le Philousophe bcd0e6f354 VIDEO: Don't make use of Stream classes
This slows down everything because we do a lot of small reads.
Read the whole frame once and read in the buffer.
2022-01-09 11:53:51 +01:00
Le Philousophe 6352de724a VIDEO: Implement UBB2 (aka HNM5) decoding 2022-01-08 22:24:14 +01:00
Le Philousophe 3f01f8301c VIDEO: Fix audio stereo decoding.
The differential PCM is applied for each channel independently
2022-01-08 22:24:14 +01:00
Le Philousophe 97b474e78a VIDEO: Fix uint usage
unisgned int is guaranteed to be at least 16 bits not more
2022-01-08 22:24:14 +01:00
Le Philousophe c6383c472e VIDEO: Rework HNM decoder to make it handle different versions of format
For now nothing new: HNM4(A) format is supported and HNM5 has a
placeholder.
2022-01-08 22:24:14 +01:00
Paweł Kołodziejski e3fc9b8226 VIDEO: Silence Sanitizer runtime error 2022-01-06 00:07:14 +01:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Paweł Kołodziejski e6b5661725 VIDEO: Fixed compiler warning about dead code 2021-12-05 16:18:28 +01:00
Orgad Shaneh 2e68b4ffdc JANITORIAL: Use override
Using clang-tidy modernize-use-override
2021-11-14 02:59:23 +02:00
sluicebox d5f6d2543f VIDEO: Fix QuickTime decoding when color depth is 32
Color depths greater than 32 have grayscale bit 0x20 set, but the
decoder incorrectly treats 32 as grayscale and and clears the bit,
leaving the color depth as zero and causing codecs to fail.

Confirmed correct behavior in the ffmpeg code that the decoder was
based off. The decoder was introduced with the Mohawk engine in
2009,so presumably no Mohawk movies had color depth 32.

Fixes videos in the Director game Virtual Cocktail Bar
2021-11-13 04:09:26 -06:00
sluicebox dcd537337b VIDEO: Fix QuickTime decoding of edits with mediaTime
QuickTimeDecoder has a bug which causes the mediaTime offset to be
ignored when a track begins with an empty edit and is followed by an
edit with a non-zero mediaTime. This causes the KQ6 Mac opening movie
to start several tracks at unintended frames (they're never supposed to
be displayed) and the intended frames at the end of the edit to never
be displayed. (Bug #11085)
2021-11-12 18:47:22 +02:00
sluicebox 6e3403464b VIDEO: Limit QuickTime workaround to Riven
QuickTimeDecoder has a workaround for a video in a Spanish version of
Riven, but this workaround breaks valid QuickTime videos such as the
KQ6 Macintosh opening movie. (Bug #11085)

Until the original Riven video bug can be debugged to improve the
workaround, it is now disabled unless an engine enables it.

Workaround added in: b8abe40085
2021-11-12 18:47:22 +02:00
sluicebox 946bb818ea VIDEO: QuickTime comments, mild cleanup 2021-11-12 18:47:22 +02:00
Orgad Shaneh 7a4e5612de JANITORIAL: Replace new[]/memset with new[]()
Mostly done using the following Ruby script:

(Dir.glob('**/*.cpp') + Dir.glob('**/*.h')).each do |file|
  s = File.read(file, encoding: 'iso8859-1')
  t = s.gsub(/(([\w_.\[\]]+)\s*=\s*new\s+\S+?\[[^\]]+?\](?!\())([^\{\}]*?)\n\s+memset\(\s*\2\s*,\s*0\s*,[^;]*;/m, '\1()\3')
  if t != s
    File.open(file, 'w') { |io| io.write(t) }
  end
end
2021-11-10 19:53:15 +01:00
neuromancer aa6e7d4fc8 COMMON: added SmackerDecoder::forceSeekToFrame function 2021-10-31 19:15:06 +01:00
Cameron Cawley 8744e2300b VIDEO: Initial support for UBB2 videos
Currently only handles the audio track.
2021-10-04 18:37:25 +02:00
Paul Gilbert f73034d55b AGS: Skip videos with unsupported video tracks rather than erroring 2021-09-25 10:28:47 -07:00
Martin Gerhardy 4b512d64b8 TWINE: added lba2 intro support 2021-09-10 19:20:56 +02:00
djsrv 2eca1126c5 VIDEO: Use Path type in VideoDecoder functions 2021-08-07 10:44:37 +02:00
Le Philousophe d77074490f VIDEO: Fix int/int32 build failures
All of this is because Rect and Surface have moved to int32
2021-07-05 23:19:47 +02:00
djsrv d0bca26bf7 VIDEO: Add default QuickTime palettes
This is used in L-Zone.
2021-06-29 22:48:14 -04:00
SupSuper 9ab9c38f7a Revert "VIDEO: Allow endOfVideo() to be overriden"
This reverts commit ba007cfd2b.
2021-06-07 23:45:49 +01:00
SupSuper 8f8666b6cd VIDEO: Allow decoder subclasses to use internal functions 2021-06-07 04:22:44 +01:00
Le Philousophe 29ad516199 VIDEO: Fix C++98 compilation 2021-05-30 10:12:08 +02:00
Strangerke 2c4a922373 TRECISION: Update usage comment in Smacker Decoder 2021-05-29 21:24:39 +01:00
SupSuper 6e042dba1b VIDEO: Allow setting _lastTimeChange in overridden classes 2021-05-29 21:24:23 +01:00