Commit Graph
170 Commits
Author SHA1 Message Date
Filippos Karapetis 2d9ec1ae70 IMAGE: Use C++ 11 range-based for loops 2025-03-27 13:47:57 +08:00
Matthew Jimenez 35b005bd2c IMAGE: Use palette class in more codecs 2025-03-08 20:18:40 +02:00
Matthew Jimenez b940265816 IMAGE: Use palette class in Cinepak decoder.
The Cinepak decoder had an unweighted euclidean color distance calculation for palette matching. This was moved and rewritten to a color distance method on the palette class.
2025-03-05 13:37:01 +02:00
Cameron Cawley 77523c844c CONFIGURE: Make SVQ1 and QDM2 optional components 2025-03-03 07:31:41 +02:00
Cameron Cawley 1a3a290ce7 IMAGE: Improve default implementation of setOutputPixelFormat() 2025-03-03 07:30:22 +02:00
Cameron Cawley 4867e171bf IMAGE: Add more validation for Codec::setOutputPixelFormat 2025-03-02 02:34:07 +02:00
Le Philousophe 532c112e4c IMAGE: Fix undefined behaviours in Cinepak decoder
Left shifting a negative number is undefined (as it may eat the sign
bit).
Instead, multiply by 2 which is the same but properly defined.
Also fix the convertYUVToColor function signature as it takes int8
values.
2025-01-22 19:15:58 +01:00
Eugene Sandulenko a7aec6c486 CONFIGURE: Implement mpeg2 as a component 2024-12-27 13:03:46 +01:00
Eugene Sandulenko 847c714e68 CONFIGURE: Split indeo into indeo3 and indeo45 components
Also, add indeo3 as a dependency to bbvs and add all codect to testbed
2024-12-27 12:40:26 +01:00
Eugene Sandulenko a6e3feed61 CONFIGURE: Turned Indeo codecs into 'indeo' component
For Director engine it is marked as optional, since so far onnly
one game is using it.

This could lead to regressions since we were not tracking which
games use Indeo codecs since we added them in 2016 (Indeo 4&5) and
2010 (Indeo 3). So, there could be an AVI video which is now stops
playing and produces a warning. In this case, the 'indeo' component
must be added to the respective engine.
2024-12-26 01:10:14 +01:00
elasota 64a95c3b43 IMAGE: Add codec accuracy options 2024-09-04 10:14:05 +03:00
Donovan Watteau 630c764ac8 IMAGE: Fix ALIGN() macro redefinition warning on NDS 2024-08-11 16:33:53 +02:00
Paul Gilbert 3d71d8e08c COMMON: Move huffman.h to common/compression/ 2024-07-15 02:56:12 +02:00
Filippos Karapetis 8ee953e910 IMAGE: Fix compilation of MPEG decoder 2024-07-04 00:15:36 +03:00
Filippos Karapetis 7347a82df2 COMMON: Remove inttypes.h
It contains defines that should be available from scummsys.h.
Also, it contains defines to support ancient and
now unsupported versions of MSVC (2013 and earlier)
2024-07-04 00:03:15 +03:00
Filippos Karapetis 94d960597e IMAGE: Whitespace fixes 2024-05-04 00:06:15 +02:00
Cameron Cawley 67fc0b6b7d IMAGE: INDEO3: Make more use of aligned loads 2024-05-04 00:06:15 +02:00
Cameron Cawley f55925e58a IMAGE: INDEO3: Reduce the size of _corrector_type 2024-05-04 00:06:15 +02:00
Scott Percival 91857fecb4 IMAGES: Add Indeo 3 to QuickTime codec list 2024-04-25 00:54:17 +02:00
Cameron Cawley 604708ad98 IMAGE: Combine lookup tables for Cinepak with VFW dithering 2024-04-22 02:07:47 +02:00
Cameron Cawley 011e468fa1 IMAGE: Handle the surface pitch in Cinepak videos 2024-04-22 02:07:47 +02:00
Cameron Cawley 2cb46c19ed IMAGE: Split Cinepak CodebookConverterRaw into 8bpp and 24bpp versions 2024-04-22 02:07:47 +02:00
Cameron Cawley ed59ab8a3b IMAGE: Make use of aligned loads and stores when dithering Cinepak videos 2024-04-22 02:07:47 +02:00
Cameron Cawley f683ecbf7b IMAGE: Cache the dithered Cinepak codebooks when using VFW-style dithering 2024-04-22 02:07:47 +02:00
Cameron Cawley 5b1b14ad80 COMMON: Mark more symbols as const 2023-12-26 20:23:59 +01:00
Cameron Cawley b458cedca4 IMAGE: Speed up 16/24/32bpp BMP decoding 2023-05-14 22:53:33 +02:00
Miro Kropacek 67aea06893 IMAGE: Fix MSRLEDecoder if pitch > width
Fixes #14356.
2023-05-14 22:41:41 +02:00
Thierry Crozat d2d564125d IMAGE: Add missing override keyword for setOutputPixelFormat 2023-04-05 22:24:46 +01:00
Cameron Cawley 9a6897a852 IMAGE: Allow the default pixel format to be changed for YUV codecs 2023-04-05 12:45:13 +02:00
Cameron Cawley 78faa2ae28 IMAGE: Defer creation of surface until decodeFrame() is called in Indeo codecs 2023-04-05 12:45:13 +02:00
Cameron Cawley 71030e2840 IMAGE: Use the screen pixel format by default for the Xan decoder 2023-03-24 21:34:16 +01:00
Eugene Sandulenko 6ee213d472 IMAGE: CODECS: Add override keyword 2023-03-03 23:23:49 +01:00
Cameron Cawley d503d5530e IMAGE: Compile the TrueMotion codec when the Testbed engine is enabled 2023-02-23 11:57:49 +00:00
Cameron Cawley 8da9cca186 IMAGE: Add override keywords for all codecs 2023-02-23 11:23:21 +00:00
grisenti aa52aafe81 IMAGES: force alpha decoding for BMP images 2022-12-23 14:03:35 +01:00
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
Eugene Sandulenko fb7095f5a4 COMMON: Move all compression-related files to a separate directory 2022-12-01 11:53:02 +01:00
Le Philousophe 32bd7cf446 IMAGE: Add missing initializer to HNM6 decoder
This clears static analysis error
2022-09-18 12:12:02 +02:00
Le Philousophe 5e2c6720a7 IMAGE: Cleanup HNM6 decoder 2022-09-18 12:11:44 +02:00
Le Philousophe cf61337968 CRYOMNI3D: Build fixes in HNM6 and APC decoders 2022-08-30 11:43:06 +02: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
kevinlaurier 84a17ad9ae IMAGE: Added support for 16 bit bitmap images, and check for RGB555
format
2022-01-23 21:38:33 +01:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01: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
sluicebox 620dc8a1df IMAGE: Fix BitmapRawDecoder constructor regression
Fixes parameter order mismatch between definition and declaration
introduced in: 5d093e725f

Fixes flipped QFG4 intro movie, bug #13059
2021-11-04 00:46:46 -05:00
lb_ii 236be25624 IMAGE: Parse 4bpp BMP files 2021-11-01 16:26:19 +02:00
lb_ii 5d093e725f IMAGE: Extend raw decoder to support BMP with alpha channel 2021-11-01 16:25:43 +02:00
Eugene Sandulenko 8626c39b21 IMAGE: Fix SMC decoder
It is a regression introduced in 6fb49b6595.
Because of this, we were not reading all the bytes from the source.
2021-08-10 20:51:42 +02:00