Commit Graph

472 Commits

Author SHA1 Message Date
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
Filippos Karapetis
ba007cfd2b VIDEO: Allow endOfVideo() to be overriden
This is useful for Nightlong, which uses frame count to check for the
end of an animation
2021-05-29 21:24:15 +01:00
Filippos Karapetis
16eefa672d VIDEO: Allow setting _startTime in overriden classes
Used by Nightlong when seeking inside Smacker videos
2021-05-29 21:23:34 +01:00
Filippos Karapetis
52d0a5eae8 VIDEO: Mark Smacker _frameTypes as protected
It's used by the Nightlong Smacker decoder when seeking to a frame
2021-05-29 21:23:31 +01:00
SupSuper
8bc861cb1a VIDEO: Added dirty rects to SmackerDecoder
This emulates the "slow" render mode of the Smacker lib,
which returns the blocks changed each frame instead of full frames.
Nightlong relies on this to correctly refresh its screen buffer.
2021-05-29 21:22:58 +01:00
Thomas Fach-Pedersen
cf0aa5813a VIDEO: Fix handling of Smacker frame flags 2021-05-29 21:22:48 +01:00
Thomas Fach-Pedersen
d50de9c132 VIDEO: Support Smacker video with empty Huffman trees
This fixes loading videos from Nightlong: Union City Conspiracy.
2021-05-29 21:22:48 +01:00
Thomas Fach-Pedersen
1dfe89d53e VIDEO: Fix IDs of Smacker audio tracks
If a Smacker file has non-adjacent audio tracks,
fill in the blanks with SmackerEmptyTrack.
2021-05-29 21:22:48 +01:00
Vladimir Menshakov
deb959a902 VIDEO: Allow zero data words count in decodeDeltaFLC
Excerpt from specification:
The first byte of each packet is the column skip count;
the second byte is the RLE count byte.
Zero or more data words follow the RLE count byte.
2021-04-25 22:07:28 +01:00
Le Philousophe
9a31a8926c VIDEO: HNM channels attribute is not channels but some kind of format
Sound is mono when this attribute is at 2
2021-04-17 21:49:33 +03:00
Le Philousophe
bf7ddf6a70 VIDEO: HNM Postprocessing simplification
Don't pass flags to various decoding blocks thay don't need it.
Unifiy frame handling in a unique procedure which handles deinterlacing.
Don't memcpy with HNM4A frames, point the surface at framebuffer
2021-04-17 21:48:47 +03:00
Le Philousophe
0953a690f4 VIDEO: Fix HNM decoding
Bytes are both read before written
2021-04-17 21:48:46 +03:00
Cameron Cawley
f1e90ada2f VIDEO: Optimize HNM4 decoding slightly 2021-04-17 21:48:46 +03:00
Cameron Cawley
46e696d417 CRYO: Use the common HNM decoder 2021-04-17 21:48:46 +03:00
Cameron Cawley
d38567bfd9 VIDEO: Support decoding older HNMv4 variants 2021-04-17 21:48:46 +03:00
Cameron Cawley
d9fe53efb2 CRYOMNI3D: Move HNMDecoder into common code 2021-04-17 21:48:45 +03:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
Matthew Duggan
a20b8781e1 VIDEO: Add support for Xan codec videos (Crusader, Wing Commander) 2021-03-14 19:16:24 +01:00
Eugene Sandulenko
b1f889f03d VIDEO: Skip another chunk in AVI videos 2021-02-12 00:41:36 +01:00
Paul Gilbert
8a47da8895 VIDEO: Fix type redefinition when including MPEGPSDecoder 2021-02-07 10:21:21 -08:00
SupSuper
872a547230 AUDIO: Combine WaveFormat enums under one header 2021-02-05 21:16:11 +02:00
SupSuper
a7f47d5c81 VIDEO: Allow setting the mixer sound type per audio track 2021-01-31 18:51:10 +00:00
Vladimir Serbinenko
3c97ebd4f9 VIDEO: support multi-track audios in 3DO videos
It's used in plumbers with first track being speech and second track
being music
2020-10-24 00:59:01 +02:00
Vladimir Serbinenko
ce6eb34121 VIDEO: uplift 3do movie decoder from sherlock engine
The format is generic to 3DO and is also used by plumbers.
I think it's also accelerated on 3DO so probably is used by
a lot of 3DO titles
2020-10-24 00:59:01 +02:00
Andrei Prykhodko
49437e2c1a VIDEO: Update Engine Usage Comment in AVI Decoder 2020-10-07 22:51:46 +03:00
Andrei Prykhodko
7bbb639bd7 VIDEO: add support for BLACK chunk in FLIC decoder 2020-10-04 18:27:33 +02:00
Paweł Kołodziejski
328c12a28d VIDEO: Added support for PS2 audio codec in MPEG stream 2020-09-24 18:52:31 +02:00
Paweł Kołodziejski
0051eef251 VIDEO: Added support for alpha component support for BINK videos 2020-09-24 14:24:17 +02:00
Eugene Sandulenko
6f1e185f7d AUDIO: Fix warnings 2020-09-24 01:28:17 +02:00
Paweł Kołodziejski
5c441f9420 VIDEO: Added support for seeking BINK streams 2020-09-24 01:23:50 +02:00
Paweł Kołodziejski
1aff4a4cd3 VIDEO: Added getter for getFrameRate() for BINK and SMK video streams. 2020-09-24 00:26:27 +02:00
Vladimir Menshakov
9ecce37b81 VIDEO: Pad consts with spaces, not tabs, formatting fixup 2020-09-02 06:43:44 +01:00