[FFmpeg-devel] [PATCH 00/12] avcodec/sanm: various improvements

Manuel Lauss manuel.lauss at gmail.com
Thu Mar 13 13:14:53 EET 2025


This patchset improves especially support for SMUSHv1 (Rebel Assault 1),
adds missing codecs and functions and improves reliability of SMUSHv1/v2.

#1 improves frame size detection.
#3 changes the left/top values to signed, as RA1 makes heavy use of
   negative offsets.
#4 adds workarounds for RA1 oddities.
#5-10 add missing codecs and fix existing ones.
#11-12 implement the store/fetch feature for RA1 codecs:
  the RA1 engine stores the raw frame object data in an aux
  buffer and replays that when necessary.  Is required for
  codecs1-34 since they only work on parts of the buffer,
  and 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
  avcodec/sanm: FOBJ left/top are signed values
  avcodec/sanm: misc fixes
  avcodec/sanm: fix codec3
  avcodec/sanm: codec2 support
  avcodec/sanm: codec23 decoder
  avcodec/sanm: codec21 decoder
  avcodec/sanm: codec4/5/33/34 decoder
  avcodec/sanm: codec37: reimplement comp4
  avcodec/sanm: change GetByteContext member to pointer
  avcodec/sanm: properly implement STOR/FTCH for ANIMv1

 libavcodec/sanm.c | 949 ++++++++++++++++++++++++++++++++++------------
 1 file changed, 717 insertions(+), 232 deletions(-)

-- 
2.48.1



More information about the ffmpeg-devel mailing list