Outlaws' RAE.SAN file did not properly fade out in certain scenes,
but simply turned to black as soon as the first XPAL chunk with
the apply command was encountered.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 69 ---
1 file change
://mlau.at/sanm-before.webm (1,7MB, 40s)
[2] http://mlau.at/sanm-after.webm (3,2MB, 61s)
Manuel Lauss (2):
libavcodec/sanm: add codec47 interpolation table support
libavcodec/sanm: fix XPAL handling
libavcodec/sanm.c | 136 +-
1 file changed, 97
less blocky
appearing.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 67 +++
1 file changed, 56 insertions(+), 11 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 8b7c0d9556..022d4b347e 100644
--- a/libavcodec/sanm.c
+++ b
show tons of ghosting and block artifacts.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index fcf6234d8a..8bcffb1e90 100644
--- a/libavcodec/sanm.c
+++ b/libavcodec/sanm.c
@@ -91
The codec47 header provides colors to use to clear the
2 difference buffers. This fixes artifacts (black hair, faces) in
Curse of Monkey Island "CURSERNG.SAN" video.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 9 ++---
1 file changed, 6 insertions(+), 3 deletions(-)
di
Hello,
Ping?
On Fri, Nov 8, 2024 at 12:51 PM Manuel Lauss wrote:
>
> The codec47 header provides colors to use to clear the
> 2 difference buffers. This fixes artifacts (black hair, faces) in
> Curse of Monkey Island "CURSERNG.SAN" video.
>
> Signed-off-by: Manue
Hello,
Ping?
On Fri, Nov 8, 2024 at 12:51 PM Manuel Lauss wrote:
>
> SAN FRME objects specify width/height as well as offsets from top/left.
> These offsets need to be taken into account for the diff buffers
> as well. Fixes playback of all SAN videos of "Shadows of the Empire
On Thu, Nov 28, 2024 at 3:19 PM Anton Khirnov wrote:
>
> Quoting Manuel Lauss (2024-11-26 15:25:30)
> > Hello,
> >
> > I'd like to add some audio support for the old libavformat/smush
> > formats (mainly the "ANIM" variants; the "SANM" varia
Hello,
I'd like to add some audio support for the old libavformat/smush
formats (mainly the "ANIM" variants; the "SANM" variant already has
audio decoding support).
The audio data (16bit stereo PCM) however is placed at (more or less)
random places within all the video data, also with no relation
Hello Anton,
Ah yes, there are 2 more patches for sanm.c that these apply on top of:
1/2 https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2024-November/335756.html
2/2 https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2024-November/335757.html
Cover letter with links to videos showing before/after:
noticed since Audio for
those isn't decoded by ffmpeg.
Signed-off-by: Manuel Lauss
---
libavformat/smush.c | 15 ---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/libavformat/smush.c b/libavformat/smush.c
index 0877f7faff..25730e5816 100644
--- a/libavformat/smush.c
On Sat, Nov 30, 2024 at 9:50 AM Anton Khirnov wrote:
>
> Quoting Manuel Lauss (2024-11-28 21:58:09)
> > On Thu, Nov 28, 2024 at 3:19 PM Anton Khirnov wrote:
> > >
> > > Quoting Manuel Lauss (2024-11-26 15:25:30)
> > > > Hello,
> > > >
Hello,
Ping? With this patch the 2 sample files at
http://samples.mplayerhq.hu/game-formats/la-san/jediknight-sith/ play
just fine.
Thanks,
Manuel
On Mon, Dec 16, 2024 at 5:08 PM Manuel Lauss wrote:
>
> Adds a decoder for the SMUSH codec48 video encoding, as is used by
> the
RLE-compressed stream of motion vector indices and a special opcode
to fill a block with data from the source stream.
It is used in the LucasArts "Full Throttle" blink*.san animations.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 64
to the flag.
Signed-off-by: Manuel Lauss
---
Applies on top of my other patch "libavcodec/sanm: implement codec37 subcodec1"
libavcodec/sanm.c | 118 +++---
1 file changed, 39 insertions(+), 79 deletions(-)
diff --git a/libavcodec/sanm.c b/
The left and top parameters of an FOBJ are signed values.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 37d2c915d4..0e7cd292d0 100644
--- a/libavcodec/sanm.c
+++ b/libavcodec
Don't error out, just ignore unknown codec numbers and pretend
decode succeeded. This is useful for older LucasArts titles
which stack a lot of different FOBJs with different codecs into
a single frame.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 2 +-
1 file changed, 1 insertion(
This codec alternatingly skips and changes existing pixels.
A second 16bit parameter in the FOBJ header indicates how to do
the pixel changes: either by specifying a LUT in the codec datastream
or by adding a constant value to the pixel.
Signed-off-by: Manuel Lauss
---
Videos showing the before
Hi Marton!
Marton Balint schrieb am Mo., 10. Feb. 2025, 20:42:
>
>
> On Mon, 10 Feb 2025, Manuel Lauss wrote:
>
> > Don't error out, just ignore unknown codec numbers and pretend
> > decode succeeded. This is useful for older LucasArts titles
> > which
s supposed to be visible.
Signed-off-by: Manuel Lauss
---
v2: Mark frame as corrupt, suggested by Marton Balint
libavcodec/sanm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index c30095ed32..a4f0a28c7c 100644
--- a/libavcodec/sa
The left and top parameters of an FOBJ are signed values.
Signed-off-by: Manuel Lauss
---
v2: no changes.
libavcodec/sanm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index a4f0a28c7c..71dbac4320 100644
--- a/libavcodec/sanm.c
This codec alternatingly skips and changes existing pixels.
A second 16bit parameter in the FOBJ header indicates how to do
the pixel changes: either by specifying a LUT in the codec datastream
or by adding a constant value to the pixel.
Signed-off-by: Manuel Lauss
---
v2: no changes.
Videos
Adds a decoder for the SMUSH codec48 video encoding, as is used by
the LucasArts game "Mysteries of the Sith".
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 223 ++
1 file changed, 223 insertions(+)
diff --git a/libavcodec/sanm.c b/
Interesting, which compiler do you use? I see no such errors with gcc-15.
I'll redo the patch, thanks for testing!
Manuel
On Thu, Jan 9, 2025 at 4:02 AM Michael Niedermayer
wrote:
>
> Hi
>
> On Tue, Jan 07, 2025 at 03:46:09PM +0100, Manuel Lauss wrote:
> > RLE-comp
RLE-compressed stream of motion vector indices and a special opcode
to fill a block with data from the source stream.
It is used in the LucasArts "Full Throttle" blink*.san animations.
Signed-off-by: Manuel Lauss
---
v2: move variable declarations to top of functions.
libavcodec/s
according to the flag.
Signed-off-by: Manuel Lauss
---
v2: fixed up because of changes to 1/2
libavcodec/sanm.c | 114 +++---
1 file changed, 37 insertions(+), 77 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 0d04b09c8d..51b8a2f54c
, 2025 at 05:40:25PM +0100, Manuel Lauss wrote:
> > Ping?
>
> I see you are quite active on the sanm code, maybe you want to
> send a patch to add yourself to MAINTAINERS for sanm ?
>
> This would give you git write access and simplify your work with sanm
>
> thx
>
&g
Ping?
Manuel Lauss schrieb am Mo., 13. Jan. 2025, 22:00:
> codec37 operates on 2 buffers, which must be considered private to
> the codec and must therefore not be changed by subsequent FOBJs.
>
> Let codec37 therefore operate on frm1/2 instead of frm0/2, but copy
> the decode
Throttle "dazed.san" and also
in a lot of Rebel Assault II gameplay videos: these videos consist of
frames with an initial codec37 FOBJ image to set the stage, and
optional codec1-23 FOBJs overlaid on top of that image.
Signed-off-by: Manuel Lauss
---
v2: use FFSWAP() to swap the 2 buffers
Throttle "dazed.san" and also
in a lot of Rebel Assault II gameplay videos: these videos consist of
frames with an initial codec37 FOBJ image to set the stage, and
optional codec1-23 FOBJs overlaid on top of that image.
Signed-off-by: Manuel Lauss
---
Applies on top of my previous patch &qu
Servus Michael,
On Fri, Jan 17, 2025 at 2:32 AM Michael Niedermayer
wrote:
>
> Hi
>
> On Wed, Jan 15, 2025 at 06:24:44PM +0100, Manuel Lauss wrote:
> > Ping?
> >
>
> > Incidentally this also closes trac ticket #5753; while commit
>
> will apply with that
Ping?
Incidentally this also closes trac ticket #5753; while commit
b22ce90d ("avcodec/sanm: SMUSH codec48 decoder") fixes #5746.
Thanks!
Manuel
On Thu, Jan 9, 2025 at 9:03 AM Manuel Lauss wrote:
>
> RLE-compressed stream of motion vector indices and a special opcode
&
Assault 1 for e.g. backgrounds and
the cockpit overlay.
For ANIMv2 keep the current system to store the decoded image, as
replaying a FOBJ would not work with codecs37/47/48 due to sequence
violations.
Signed-off-by: Manuel Lauss
---
v3: removed the check for dimensions-set-in-stone before queueing a
this codec consists of 4 byte packets: 2bytes delta-x, 1 byte delta-y
and 1 byte color to put at that spot.
Used in Rebel Assault 1 only.
Signed-off-by: Manuel Lauss
---
v2, v3: no changes.
libavcodec/sanm.c | 20
1 file changed, 20 insertions(+)
diff --git a/libavcodec
Servus Andreas,
On Fri, Mar 14, 2025 at 1:08 AM Andreas Rheinhardt
wrote:
> > +static int old_codec4(SANMVideoContext *ctx, int left, int top, int w, int
> > h,
> > + uint8_t param, uint16_t param2, int codec)
> > +{
> > +const uint16_t p = ctx->pitch;
> > +const ui
Michael
On Fri, Mar 14, 2025 at 9:31 PM Michael Niedermayer
wrote:
>
> Hi Manuel
>
> On Thu, Mar 13, 2025 at 12:15:04PM +0100, Manuel Lauss wrote:
> > In order do properly support the ANIM STOR/FTCH system, the FTCH
> > must replay a stored FOBJ and change the SANMC
Hi Michael,
On Fri, Mar 14, 2025 at 1:06 AM Michael Niedermayer
wrote:
>
> Hi Manuel
>
> please add yourself to the MAINTAINER file for sanm with a patch
> you are already maintaining sanm, its just not written in the file
Fine, I'll add a patch for this in a v2 patchset.
Manuel
___
The block-based codecs 37/47/48 work on the full frame, and there's no
existing LucasArts game video that uses left/top offsets for these,
as it doesn't make sense. Ignore the left/top parameters for these codecs.
Signed-off-by: Manuel Lauss
---
libavcodec/s
in a generic way.
Signed-off-by: Manuel Lauss
---
v2: added handling of unaligned objects
libavcodec/sanm.c | 49 ++-
1 file changed, 40 insertions(+), 9 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 38cdb533eb..069bc0400a 100644
similar to codec23, this one alternatingly skips and writes bytes.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 45 +
1 file changed, 45 insertions(+)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index aca5bf49ec..6080144235 100644
--- a
codec3 is codec1 which writes zero values instead of skipping them.
This fixes a lot of RA1 videos.
Signed-off-by: Manuel Lauss
---
v2, v3: no changes
libavcodec/sanm.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index
leads me to believe this
codec never worked as intended.
Signed-off-by: Manuel Lauss
---
v3: no changes
v2: newly added
libavcodec/sanm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 54d578ae4b..730ec14b98 100644
--- a/libavcodec/sanm.c
codec20 is raw uncompressed image data.
It is used internally in Rebel Assault 1 as a special format for STOR
(when parameter for STOR is set to 3), and is used again in
the "Full Throttle Remaster" from 2017.
Signed-off-by: Manuel Lauss
---
v3: newly added
libavcodec/s
As requested by Michael Niedermayer.
Signed-off-by: Manuel Lauss
---
v3: no changes
v2: newly added
MAINTAINERS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 9714581c6b..917eca458e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -244,6 +244,7 @@ Codecs
This codec works on 4x4 pixel tiles, which can be generated and read
from the datastream. They're both identical, codec5 misses a tile
index to skip the current tile.
Codecs33/34 are the same as 4/5 but with a different tileset generator.
Used only in Rebel Assault 1.
Signed-off-by: Manuel
Compression 4 code 0 means copy from delta buffer without mv,
AND start of a skip run. This gets rid of the extra case and column
index manipulation and implements this as it is implemented in the
original game exe, i.e. as a special case for after mv copy.
Signed-off-by: Manuel Lauss
---
v3
similar to codec23, this one alternatingly skips and writes bytes.
Signed-off-by: Manuel Lauss
---
v2,v3: no changes
libavcodec/sanm.c | 45 +
1 file changed, 45 insertions(+)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 6302c62f43
e seems to be all-black until the first
NPAL (=new palette) chunk is encountered, although every ANM and SAN file
have a full palette in their header.
Manuel Lauss (14):
avcodec/sanm: disable left/top for fullscreen codecs
avcodec/sanm: FOBJ left/top are signed values
avcodec/sanm: better
in a generic way.
Signed-off-by: Manuel Lauss
---
v3: no changes
v2: added handling of unaligned objects
libavcodec/sanm.c | 49 ++-
1 file changed, 40 insertions(+), 9 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 38cdb
The block-based codecs 37/47/48 work on the full frame, and there's no
existing LucasArts game video that uses left/top offsets for these,
as it doesn't make sense. Ignore the left/top parameters for these codecs.
Signed-off-by: Manuel Lauss
---
v2, v3: no changes
libavcodec/s
The left/top parameters of a FOBJ are signed values. Adjust
codec1 code accordingly to not draw outside the buffer area.
Rebel Assault 1 makes heavy use of this.
Signed-off-by: Manuel Lauss
---
v2, v3: no changes
libavcodec/sanm.c | 33 ++---
1 file changed, 18
me
to the determined dimensions.
Tested with RA1, RA2, Full Throttle, Dig, Outlaws, SotE and MotS
videos.
Signed-off-by: Manuel Lauss
---
v2, v3: no changes
libavcodec/sanm.c | 63 ---
1 file changed, 49 insertions(+), 14 deletions(-)
diff --
This codec alternatingly skips and changes existing pixels.
A second 16bit parameter in the FOBJ header indicates how to do
the pixel changes: either by specifying a LUT in the codec datastream
or by adding a constant value to the pixel.
Signed-off-by: Manuel Lauss
---
v2, v3: no changes
This codec works on 4x4 pixel tiles, which can be generated and also
read from the datastream. Codec5 does not recognize the "skip-block"
command; codecs33/34 are the same as 4/5 but with a different tileset
generator.
Signed-off-by: Manuel Lauss
---
v2: had left+top swapped resulte
this codec consists of 4 byte packets: 2bytes delta-x, 1 byte delta-y
and 1 byte color to put at that spot.
Used in Rebel Assault 1 only.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 20
1 file changed, 20 insertions(+)
diff --git a/libavcodec/sanm.c b/libavcodec
clamp the large frame
to the determined dimensions.
Tested with RA1, RA2, Full Throttle, Dig, Outlaws, SotE and MotS
videos.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 63 ---
1 file changed, 49 insertions(+), 14 deletions(-)
diff --
This codec alternatingly skips and changes existing pixels.
A second 16bit parameter in the FOBJ header indicates how to do
the pixel changes: either by specifying a LUT in the codec datastream
or by adding a constant value to the pixel.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 66
codec3 is codec1 which writes zero values instead of skipping them.
This fixes a lot of RA1 videos.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 069bc0400a..0c8ca73508
As requested by Michael Niedermayer.
Signed-off-by: Manuel Lauss
---
v2: newly added.
MAINTAINERS | 2 ++
1 file changed, 2 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 9714581c6b..917eca458e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -244,6 +244,7 @@ Codecs:
rpza.c
leads me to believe this
codec never worked as intended.
Signed-off-by: Manuel Lauss
---
v2: newly added.
libavcodec/sanm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index b86f67c3bf..7e39c5eeb0 100644
--- a/libavcodec/sanm.c
+++ b/libavcodec/s
palette issues in RA1: when the first FRME does not
contain any video data, the palette seems to be all-black until the first
NPAL (=new palette) chunk is encountered, although every ANM and SAN file
have a full palette in their header.
Manuel Lauss (13):
avcodec/sanm: disable left/top for
Assault 1 for e.g. backgrounds and
the cockpit overlay.
For ANIMv2 keep the current system to store the decoded image, as
replaying a FOBJ would not work with codecs37/47/48 due to sequence
violations.
Signed-off-by: Manuel Lauss
---
v2: reimplemented by giving the RA1 codecs an explicit GetByteContext
Compression 4 code 0 means copy from delta buffer without mv,
AND start of a skip run. This gets rid of the extra case and column
index manipulation and implements this as it is implemented in the
original game exe, i.e. as a special case for after mv copy.
Signed-off-by: Manuel Lauss
The left/top parameters of a FOBJ are signed values. Adjust
codec1 code accordingly to not draw outside the buffer area.
Rebel Assault 1 makes heavy use of this.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 33 ++---
1 file changed, 18 insertions(+), 15
Change the size detection a bit to recognize common video sizes,
as the FOBJ codecs>=37 cannot always be trusted.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 34 +++---
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/libavcodec/sanm.
r buffers
need to be private to themselves. The decoded result is then copied to
the fbuf, honoring the x/y offsets if required.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 63 +++
1 file changed, 42 insertions(+), 21 deletions(-)
diff --git a
ic, the codec48 dimensions can no
longer be blindly trusted.
#3: support video of Making Magic. This patch also brings the fobj
handling more in line with what the game engines actually do.
Tested with RA1, RA2 (c37), Outlaws (c47), MotS (c48)
See https://ibb.co/73Pt803 for post/pre fix scree
Some videos of "StarWars - Making Magic" have this subcompression
type: data just consists of the 16 byte codec48 header; the DOS player
simply treats it like nothing to do.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
di
c37/47/48 need their 2/3 buffers
to be private to themselves. The decoded result is then copied to the fbuf,
honoring the left/top offsets if required.
Signed-off-by: Manuel Lauss
---
v2: reworded description, left/top need to be non-negative to consider
the image to be copied to front buffe
Change the size detection a bit to recognize common video sizes,
as the FOBJ codecs>=37 cannot always be trusted, since they can
be embedded in a larger frame.
Signed-off-by: Manuel Lauss
---
v2: reworded description.
libavcodec/sanm.c | 34 +++---
1 file chan
7), MotS (c48)
See https://ibb.co/73Pt803 for post/pre fix screenshots.
Manuel Lauss (3):
avcodec/sanm: ignore codec48 compression type 6
avcodec/sanm: add a whitelist for known FOBJ sizes
avcodec/sanm: support "StarWars - Making Magic&qu
Some videos of "StarWars - Making Magic" have this subcompression
type: data just consists of the 16 byte codec48 header; the DOS player
and the c48 decoder in the Myteries of the Sith game engine ignore it.
Signed-off-by: Manuel Lauss
---
v2: reworded description
libavcodec/sanm.c
This codec alternatingly skips and changes existing pixels.
A second 16bit parameter in the FOBJ header indicates how to do
the pixel changes: either by specifying a LUT in the codec datastream
or by adding a constant value to the pixel.
Signed-off-by: Manuel Lauss
---
v3: updates due to changes
The left and top parameters of an FOBJ are signed values.
Signed-off-by: Manuel Lauss
---
v3: change the bytestream accessor to signed too
v2: no changes
libavcodec/sanm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index
Don't error out, just ignore unknown codec numbers and pretend
decode succeeded. This is useful for older LucasArts titles
which stack a lot of different FOBJs with different codecs into
a single frame.
Signed-off-by: Manuel Lauss
---
v3: no changes
v2: Mark frame as corrupt, suggest
Hi Michael,
On Sat, Mar 8, 2025 at 8:11 PM Michael Niedermayer
wrote:
>
> Hi Manuel
>
> On Tue, Mar 04, 2025 at 06:07:18PM +0100, Manuel Lauss wrote:
> > The left and top parameters of an FOBJ are signed values.
> >
> > Signed-off-by: Manuel Lauss
> > ---
Don't error out, just ignore unknown codec numbers and pretend
decode succeeded. This is useful for older LucasArts titles
which stack a lot of different FOBJs with different codecs into
a single frame.
Signed-off-by: Manuel Lauss
---
v4: no changes
v3: no changes
v2: Mark frame as co
used as
a constant offset to add to the existing pixel value.
Signed-off-by: Manuel Lauss
---
v4: also support c23 on ANIMv0/1 (Rebel Assault 1, e.g LVL11/L11PLAY.ANM water)
v3: updates due to changes in patch 2
v2: no changes.
Videos showing the before/after state (Rebel Assault II LEV09/09PLAY.SAN
Servus Michael,
On Mon, Mar 10, 2025 at 9:32 PM Michael Niedermayer
wrote:
>
> Hi
>
> On Sun, Mar 09, 2025 at 04:52:25PM +0100, Manuel Lauss wrote:
> > Hi Michael,
> >
> > On Sat, Mar 8, 2025 at 8:11 PM Michael Niedermayer
> > wrote:
> > >
> >
similar to codec23, this one alternatingly skips and writes bytes.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 45 +
1 file changed, 45 insertions(+)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index dbd78de0bc..edce76c7f4 100644
--- a
The block-based codecs 37/47/48 work on the full frame, and there's no
existing LucasArts game video that uses left/top offsets for these,
as it doesn't make sense. Ignore the left/top parameters for these codecs.
Signed-off-by: Manuel Lauss
---
Well, except for SotE, which uses &qu
Js, rather clamp the large frame
to the determined dimensions (The Dig's sq1.san).
Tested with RA1, RA2, Full Throttle, Dig, Outlaws, SotE and MotS
videos.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 59 ---
1 file changed, 45 insertions(+
this codec consists of 4 byte packets: 2bytes delta-x, 1 byte delta-y
and 1 byte color to put at that spot.
Used in Rebel Assault 1 only.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 20
1 file changed, 20 insertions(+)
diff --git a/libavcodec/sanm.c b/libavcodec
Compression 4 code 0 means copy from delta buffer without mv,
AND start of a skip run. This change gets rid of the extra case
and column index manipulation and implements this the same way it
is implemented in the original game exe, i.e. as a special case
after mv copy.
Signed-off-by: Manuel
codec3 is codec1 which writes zero values instead of skipping them.
This fixes a lot of RA1 videos.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index b2923515b1..a512810987
This codec alternatingly skips and changes existing pixels.
A second 16bit parameter in the FOBJ header indicates how to do
the pixel changes: either by specifying a LUT in the codec datastream
or by adding a constant value to the pixel.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 66
The left/top parameters of a FOBJ are signed values. Adjust
codec1 code accordingly to not draw outside the buffer area.
Rebel Assault 1 makes heavy use of this.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 32 +---
1 file changed, 17 insertions(+), 15
all zeroes.
This fixes a lot of unwanted colors in e.g L1HANGAR.ANM, L2INTRO.ANM,
a space scenes.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 8
1 file changed, 8 insertions(+)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 310b1a429b..efed31b70c 100644
--- a
in the stack.
For ANIMv2 keep the current system to store the decoded image, as
replaying a FOBJ would not work with codecs37/47/48 due to sequence
violations.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 84 ---
1 file changed, 80 insertions
In order do properly support the ANIM STOR/FTCH system, the FTCH
must replay a stored FOBJ and change the SANMContext's "GetByteContext"
member temporarily.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 394 +++---
1 file changed,
The left and top parameters of an FOBJ are signed values.
Signed-off-by: Manuel Lauss
---
v4: revert v3, it arose due to a misunderstanding
v3: change the bytestream accessor to signed too
v2: no changes
libavcodec/sanm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a
ottle, Dig, Outlaws, SotE and MotS
videos.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 63 ---
1 file changed, 49 insertions(+), 14 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index a4f0a28c7c..0795d664fa 100644
--- a/libav
the existing scheme breaks the visuals here.
This patchset makes almost all RA1 videos now playable with
generally correct content, although some hiccups remain.
Manuel Lauss (12):
avcodec/sanm: better frame size detection for old codecs
avcodec/sanm: disable left/top for fullscreen codecs
This codec works on 4x4 pixel tiles, which can be generated and read
from the datastream. They're both identical, codec5 misses a tile
index to skip the current tile.
Codecs33/34 are the same as 4/5 but with a different tileset generator.
Used only in Rebel Assault 1.
Signed-off-by: Manuel
This codec alternatingly skips and changes existing pixels.
A second 16bit parameter in the FOBJ header indicates how to do
the pixel changes: either by specifying a LUT in the codec datastream
or by adding a constant value to the pixel.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 66
similar to codec23, this one alternatingly skips and writes bytes.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 45 +
1 file changed, 45 insertions(+)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index 67963bb5d3..bf2ec40df4 100644
--- a
codec3 is codec1 which writes zero values instead of skipping them.
This fixes a lot of RA1 videos.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c
index fbb6e7231a..d4a84febc7
The left/top parameters of a FOBJ are signed values. Adjust
codec1 code accordingly to not draw outside the buffer area.
Rebel Assault 1 makes heavy use of this.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c | 33 ++---
1 file changed, 18 insertions(+), 15
all zeroes.
This fixes a lot of stray colors in e.g L1HANGAR.ANM, L2INTRO.ANM,
space scenes.
- Esp in RA1, there are a lot of FRME objects which don't contain
any video data (prebuffering some audio only). Account for that.
Signed-off-by: Manuel Lauss
---
libavcodec/sanm.c
The block-based codecs 37/47/48 work on the full frame, and there's no
existing LucasArts game video that uses left/top offsets for these,
as it doesn't make sense. Ignore the left/top parameters for these codecs.
Signed-off-by: Manuel Lauss
---
libavcodec/s
1 - 100 of 112 matches
Mail list logo