munim-ffmpeg 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -8
- package/android/build.gradle +6 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -137,17 +137,18 @@ Codec availability is determined by the native FFmpeg builds described in [Bundl
|
|
|
137
137
|
|
|
138
138
|
## Where this is verified
|
|
139
139
|
|
|
140
|
-
Every release runs the example's
|
|
140
|
+
Every release runs the example's 25-check device suite. For 0.4.x:
|
|
141
141
|
|
|
142
142
|
| Target | Result |
|
|
143
143
|
| --- | --- |
|
|
144
|
-
| iPad Air (M3), iOS 26 |
|
|
145
|
-
| iOS Simulator, arm64 |
|
|
146
|
-
| Galaxy A14 5G, arm64-v8a |
|
|
147
|
-
| Android emulator, arm64 |
|
|
148
|
-
| Android
|
|
144
|
+
| iPad Air (M3), iOS 26 | 25/25 |
|
|
145
|
+
| iOS Simulator, arm64 | 25/25 |
|
|
146
|
+
| Galaxy A14 5G, arm64-v8a | 25/25 |
|
|
147
|
+
| Android emulator, arm64 | Software encoding passes; hardware encoding does not — see below |
|
|
148
|
+
| Android emulator, `x86_64` | Same: `libopenh264` passes, MediaCodec does not |
|
|
149
|
+
| Android `armeabi-v7a` | Built and statically checked, not executed |
|
|
149
150
|
|
|
150
|
-
`x86_64`
|
|
151
|
+
`x86_64` was verified on an Intel Windows machine, since the Android emulator refuses non-native system images on Apple Silicon: FFmpeg 9.0.1, 185 encoders, and the software H.264 encode passes. `armeabi-v7a` has no hardware to hand, so it was checked statically instead — correct ELF architecture, the expected JNI exports, only system libraries unresolved, and the same FFmpeg and codec set as arm64.
|
|
151
152
|
|
|
152
153
|
### Android emulators cannot encode video
|
|
153
154
|
|
|
@@ -692,7 +693,7 @@ Nitrogen output under `nitrogen/generated` is committed. Change the `.nitro.ts`
|
|
|
692
693
|
|
|
693
694
|
### Example app
|
|
694
695
|
|
|
695
|
-
`example/` is an Expo app that runs a
|
|
696
|
+
`example/` is an Expo app that runs a 25-check device suite: H.264 and HEVC encoding, VP9/Opus in WebM, MP3, AAC, scaling and multi-step filter graphs, software H.264 via openh264, muxing, demuxing, trimming, concatenation, thumbnails, audio resampling, awkward file paths, concurrent sessions, single and global cancellation, protocol support, and both failure paths. Fixtures are generated in JavaScript, so the suite needs no network or bundled media. Results are rendered on screen, written to `munim-ffmpeg-suite.json` in the app's document directory, and logged as `MUNIM_FFMPEG_SUITE_RESULT`.
|
|
696
697
|
|
|
697
698
|
```bash
|
|
698
699
|
npm run example:ios
|
package/android/build.gradle
CHANGED
|
@@ -23,9 +23,12 @@ apply plugin: 'org.jetbrains.kotlin.android'
|
|
|
23
23
|
apply from: '../nitrogen/generated/android/NitroMunimFfmpeg+autolinking.gradle'
|
|
24
24
|
apply from: "./fix-prefab.gradle"
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
26
|
+
// Deliberately not applying the "com.facebook.react" plugin. Nitro generates its
|
|
27
|
+
// own bindings, so React Native's codegen has nothing to do here — and applying
|
|
28
|
+
// the plugin *without* a matching `react { libraryName = ... }` block makes it
|
|
29
|
+
// emit React Native's entire TurboModule spec set into this AAR. Those collide
|
|
30
|
+
// with the app's own copies and release builds fail with
|
|
31
|
+
// "Type com.facebook.fbreact.specs.* is defined multiple times".
|
|
29
32
|
|
|
30
33
|
def getExtOrDefault(name) {
|
|
31
34
|
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["NitroMunimFfmpeg_" + name]
|