Skip to content
/ libswf Public

C++17 library for editing SWF files.

License

Notifications You must be signed in to change notification settings

MangaD/libswf

Repository files navigation

libswf

pipeline status Build status coverage report license

libswf is a C++17 library for extracting and replacing SWF resources.

Implemented

  • Export SWF as EXE using Adobe Flash Player projector.
  • Import SWF from EXE created with Adobe Flash Player projector.
  • Zlib and LZMA compress / decompress SWF.
  • Export and replace MP3.
  • Export and replace images of DefineBitsLossless and DefineBitsLossless2 tags.
  • Export and replace binary data of DefineBinaryData tag.
  • Serializing and deserializing AMF0 and AMF3 (not all data types). Exporting and importing to JSON.

Usage example

See HF Workshop.

Build

See documentation/BUILD.md.

Methodology

See documentation/METHODOLOGY.md.

Contributing

See documentation/CONTRIBUTING.md.

Documentation

Documentation is generated using Doxygen (and doxywizard). Needs code review.

Copyright

Copyright (c) 2018-2021 David Gonçalves

License

This project uses the MIT license.

Third-Party Libraries

Project Author(s) License Comments
zlib Jean-loup Gailly (compression) and Mark Adler (decompression) zlib Used for compressing and decompressing the SWF using the zlib algorithm. Also used for compressing and decompressing image data.
LZMA SDK Igor Pavlov public domain Used for compressing and decompressing the SWF using the LZMA algorithm.
liblzma Original by Lasse Collin. Developed by The Tukaani Project. public domain Not in use. Alternative for LZMA SDK.
minimp3 lieff CC-0 Used to verify the sample rate of the MP3 file, and also for removing the MP3 file's ID3 metadata, leaving only the MP3 frames.
LodePNG Lode Vandevenne zlib Exporting and importing images in PNG format.
json nlohmann MIT Used for exporting and importing AMF format to and from JSON.
fifo_map nlohmann MIT Used for ordered JSON.
Catch2 Phil Nash. Various contributors. BSL-1.0 Used for testing.

Table generated with: https://www.tablesgenerator.com/markdown_tables

Credits

Project badge images created with https://shields.io/.