SmallsomeFormats · Language · ArchitectureJörg Burbach

RFXLAnim Format definition

Generation 26 contract

Generation 26 uses the ASCII signatures RFXA and RFXZ with version 26. RFXA has a 32-byte header and a frame table: 8 bytes per image-only entry, or 12 bytes when audio is present. Entries identify the image payload and, where present, audio length. The audio payload immediately follows the image payload. RFXZ has a 16-byte outer header and a compressed RFXA payload. The reference validates dimensions, flags, contiguous payloads and audio metadata.

This is a concise format overview. The bundled reference module is the authoritative field-by-field and bitstream definition; it includes the required structures, constants, encoder and decoder. Input and output are memory buffers. File access and playback or rendering belong to the host application.

Public operations

  Declare.s GetLastError()
  Declare.i GetLastErrorCode()
  Declare.i DetectMemory(*Buffer, Size.i)
  Declare.i InspectMemory(*Buffer, Size.i, *Info.RFXAInfo)
  Declare.i BeginDecode(*Decoder.RFXADecoder, *Buffer, Size.i)
  Declare.i DecodeNextFrameRGBA32(*Decoder.RFXADecoder, *OutWidth.Integer = #Null, *OutHeight.Integer = #Null, *OutSize.Integer = #Null, *OutFrameIndex.Integer = #Null)
  Declare EndDecode(*Decoder.RFXADecoder)
  Declare.i DecodeFrameRGBA32(*Buffer, Size.i, FrameIndex.i, *OutWidth.Integer = #Null, *OutHeight.Integer = #Null, *OutSize.Integer = #Null, *OutFrameCount.Integer = #Null)
  Declare.i DecodeFrameAudioRAU(*Buffer, Size.i, FrameIndex.i, *OutSize.Integer = #Null)
  Declare.i EncodeFramesMemoryRGBA32(List Frames.RFXAFrame(), FPS.i, Quality.i = WORM0_Media::#Quality_High, *OutSize.Integer = #Null, Compress.i = #False)
  Declare.i EncodeFramesAudioMemoryRGBA32(List Frames.RFXAFrame(), FPS.i, *Audio.RFXAAudio = #Null, Quality.i = WORM0_Media::#Quality_High, AudioProfile.i = RAU::#Profile_High, *OutSize.Integer = #Null, Compress.i = #False)
  Declare.i EncodeFramesAudioMemoryRGBA32Chunked(List Frames.RFXAFrame(), FPS.i, *Audio.RFXAAudio = #Null, Quality.i = WORM0_Media::#Quality_High, AudioProfile.i = RAU::#Profile_High, *OutSize.Integer = #Null, threads.i = 0, Compress.i = #False)
  Declare FreeFrame(*Frame.RFXAFrame)
  Declare.s GetAnimation_RFXLAnimInfo()

The source bundle preserves the include paths and contains all literal include dependencies and the MIT license. The individual module is not advertised as a dependency-free distribution.

C and JavaScript

The memory ports encode and decode generation-26 streams. The port contracts specify dependencies, buffer ownership, data structures, encoder differences and exchange-format boundaries. The complete C/JavaScript source bundle preserves shared dependency paths. Browser file conversion is separate from the codec core.