Project Layout - darkxanter/ffmpeg-kit GitHub Wiki
Files in this project are organised according to the layout below.
ffmpeg-kit/
├── .tmp/
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── android/
│ ├── ffmpeg-kit-android-lib/
│ └── jni/
├── android.sh
├── apple/
│ └── src/
├── apple.sh
├── docs/
├── flutter/
├── ios.sh
├── linux/
│ └── src/
├── linux.sh
├── macos.sh
├── prebuilt/
├── react-native/
├── scripts/
│ ├── android/
│ └── apple/
├── src/
├── tools/
└── tvos.sh
Project root includes nine directories, five top level build scripts (android.sh, ios.sh, linux.sh, macos.sh and tvos.sh), one combine script (apple.sh) for Apple platforms, one LICENSE file and three markdown files (README.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md).
-
androidfolder contains files necessary to buildFFmpegKitAndroid library. These files are;- Configuration files required by
gradle - Documentation configuration file for
doxygen - Library source code inside the
ffmpeg-kit-android-libfolder - NDK build files under the
jnifolder - README.md file
- Configuration files required by
-
appledirectory includes files necessary to buildFFmpegKitObjective-C library for iOS, macOS and tvOS. They are;- Configuration files required by
Autotools - Documentation configuration for
doxygen - Library source code inside the
srcfolder - README.md file
- Configuration files required by
-
docsfolder contains the documentation and digital assets. -
flutterfolder contains the files of theflutterplugin that supportsAndroid,iOSandmacOSplatforms. -
linuxdirectory includes files necessary to buildFFmpegKitC++ library for Linux. These files are;- Configuration files required by
Autotools - Documentation configuration for
doxygen - Library source code inside the
srcfolder - README.md file
- Configuration files required by
-
react-nativefolder contains the files of thereact-nativeplugin that supportsAndroidandiOSplatforms. -
scriptsdirectory includes all scripts called by the top-level build scripts.- Scripts responsible for cross-compiling external libraries are grouped according to the platform name; they can be found under the
android,appleandlinuxfolders respectively functionscripts contain platform specific bash functionsmainscripts are responsible for building an architecture for a platformrunscripts execute cross compilation scripts under theandroid,appleandlinuxfolderssource.shcontains external library repository urls and their versionsvariable.shincludes common variables used by all platforms
- Scripts responsible for cross-compiling external libraries are grouped according to the platform name; they can be found under the
-
srcdirectory is empty by default. The source code of enabled external libraries is downloaded into this directory by the top level build scripts. -
toolsdirectory includes patch files and release scripts. -
A temporary folder named
.tmpis created at the beginning to save temporary files needed by the scripts, e.g.gas-preprocessor.pl,gnu-configproject. -
After the compilation, all compiled objects (libraries, universal binaries, frameworks, xcframeworks, android archives, etc.) are created under the
prebuiltdirectory.Androidarchive (.aar file) forMainbuilds is located under thebundle-android-aarfolderAndroidarchive (.aar file) forLTSbuilds is located under thebundle-android-aar-ltsfolderiOSxcframeworksforMainbuilds are located under thebundle-apple-xcframework-iosfolderiOSframeworksforMainbuilds are located under thebundle-apple-framework-iosfolderiOSframeworksforLTSbuilds are located under thebundle-apple-framework-ios-ltsfolderLinuxheaders and libraries are located under thebundle-linuxfoldermacOSxcframeworksforMainbuilds are located under thebundle-apple-xcframework-macosfoldermacOSframeworksforMainbuilds are located under thebundle-apple-framework-macosfoldermacOSframeworksforLTSbuilds are located under thebundle-apple-framework-macos-ltsfoldertvOSxcframeworksforMainbuilds are located under thebundle-apple-xcframework-tvosfoldertvOSframeworksforMainbuilds are located under thebundle-apple-framework-tvosfoldertvOSframeworksforLTSbuilds are located under thebundle-apple-framework-tvos-ltsfolder