https://github.com/mangad/libswf
C++17 library for editing SWF files.
https://github.com/mangad/libswf
adobe-flash flash swf
Last synced: 2 months ago
JSON representation
C++17 library for editing SWF files.
- Host: GitHub
- URL: https://github.com/mangad/libswf
- Owner: MangaD
- License: mit
- Created: 2023-06-11T23:47:05.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-31T12:50:04.000Z (over 1 year ago)
- Last Synced: 2026-01-02T23:14:13.843Z (6 months ago)
- Topics: adobe-flash, flash, swf
- Language: C++
- Homepage:
- Size: 3.25 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# libswf
[](https://gitlab.com/MangaD/libswf/commits/master) [](https://ci.appveyor.com/project/MangaD/libswf) [](https://gitlab.com/MangaD/libswf/commits/master) [](LICENSE)
libswf is a C++17 library for extracting and replacing SWF resources.
## Implemented
- Export SWF as EXE using Adobe Flash Player [projector](https://www.adobe.com/support/flashplayer/debug_downloads.html).
- Import SWF from EXE created with Adobe Flash Player [projector](https://www.adobe.com/support/flashplayer/debug_downloads.html).
- 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](https://gitlab.com/MangaD/hf-workshop).
## Build
See [documentation/BUILD.md](documentation/BUILD.md).
## Methodology
See [documentation/METHODOLOGY.md](documentation/METHODOLOGY.md).
## Contributing
See [documentation/CONTRIBUTING.md](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](LICENSE).
## Third-Party Libraries
| **Project** | **Author(s)** | **License** | **Comments** |
| ------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| [zlib](https://www.zlib.net/) | [Jean-loup Gailly](http://gailly.net/) (compression) and [Mark Adler](http://en.wikipedia.org/wiki/Mark_Adler) (decompression) | [zlib](https://zlib.net/zlib_license.html) | Used for compressing and decompressing the SWF using the zlib algorithm. Also used for compressing and decompressing image data. |
| [LZMA SDK](https://www.7-zip.org/sdk.html) | Igor Pavlov | [public domain](https://www.7-zip.org/sdk.html) | Used for compressing and decompressing the SWF using the LZMA algorithm. |
| [liblzma](https://tukaani.org/xz/) | Original by Lasse Collin. Developed by The Tukaani Project. | [public domain](https://tukaani.org/xz) | **Not in use.** Alternative for LZMA SDK. |
| [minimp3](https://github.com/lieff/minimp3) | [lieff](https://github.com/lieff) | [CC-0](https://github.com/lieff/minimp3/blob/master/LICENSE) | Used to verify the [sample rate](https://sound.stackexchange.com/questions/31782/why-do-mp3-have-sample-rate) of the MP3 file, and also for removing the MP3 file's [ID3 metadata](https://en.wikipedia.org/wiki/ID3), leaving only the MP3 [frames](https://en.wikipedia.org/wiki/MP3#File_structure). |
| [LodePNG](https://lodev.org/lodepng/) | [Lode Vandevenne](https://lodev.org/) | [zlib](https://github.com/lvandeve/lodepng/blob/master/LICENSE) | Exporting and importing images in PNG format. |
| [json](https://github.com/nlohmann/json) | [nlohmann](https://github.com/nlohmann) | [MIT](https://github.com/nlohmann/json/blob/develop/LICENSE.MIT) | Used for exporting and importing AMF format to and from JSON. |
| [fifo_map](https://github.com/nlohmann/fifo_map) | [nlohmann](https://github.com/nlohmann) | [MIT](https://github.com/nlohmann/fifo_map/blob/master/LICENSE.MIT) | Used for ordered JSON. |
| [Catch2](https://github.com/catchorg/Catch2) | [Phil Nash](https://ndctechtown.com/speaker/phil-nash). Various contributors. | [BSL-1.0](https://github.com/catchorg/Catch2/blob/master/LICENSE.txt) | Used for testing. |
Table generated with: https://www.tablesgenerator.com/markdown_tables
## Credits
Project badge images created with https://shields.io/.