Search Issue Tracker
Won't Fix
Votes
9
Found in
5.6.1p4
Issue ID
923400
Regression
No
[Android] VideoPlayer.Prepare with multiple videos freezes the application(NdkMediaCodec: sf error code: -38)
Steps to reproduce:
1) Download attached project 'ReproStripped.zip' and open in Unity
2) Build and Run 'MainStage' scene on a device
While initializing application and VideoPlayer.Prepare starts preparing videos, application will freeze and 'NdkMediaCodec: sf error code: -38' error will be spawned in the logcat
Expected result: Videos should be loaded without freeze
Actual result: Application freezes while preparing multiple videos
Reproduced with:
5.6.2p1, 2017.1.0f1, 2017.2.0b1
Devices under test:
Reproduced with:
Samsung SM G800F (Galaxy S5 Mini)*, OS:6.0.1, CPU:armeabi-v7a, GPU:Mali-400 MP, Build:samsung/kminiltexx/kminilte:5.1.1/LMY47X/G800FXXU1BPC4:user/release-keys
Not reproduced with:
Google Nexus 5*, OS:6.0.1, CPU:armeabi-v7a, GPU:Adreno (TM) 330, Build:google/hammerhead/hammerhead:6.0.1/MOB31E/3142026:user/release-keys
Samsung SM G903F*, OS:6.0.1, CPU:armeabi-v7a, GPU:Mali-T720, Build:samsung/s5neoltexx/s5neolte:6.0.1/MMB29K/G903FXXU1BPF4:user/release-keys
Xiaomi Mi 4i*, OS:5.0.2, CPU:arm64-v8a, GPU:Adreno (TM) 405, Build:Xiaomi/ferrari/ferrari:5.0.2/LRX22G/V8.1.5.0.LXIMIDI:user/release-keys
Google Nexus 4*, OS:5.1.1, CPU:armeabi-v7a, GPU:Adreno (TM) 320, Build:google/occam/mako:5.1.1/LMY48T/2237560:user/release-keys
Htc HTC One mini 2*, OS:4.4.2, CPU:armeabi-v7a, GPU:Adreno (TM) 305, Build:htc/htc_europe/htc_memul:4.4.2/KOT49H/405590.2:user/release-keys
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- [Linux] Crash on System.Runtime.InteropServices.Marshal:copy_from_unmanaged_fixed when accessing shared memory
- Misaligned text in Preferences window > 2D > Animation, Asperite and Sprite Editor preferences
- Unable to Install ZivaRT Player deprecated package
- Inconsistent Label Popup UI in Package Manager
- All active Audio Sources play their Clips when the "Play On Awake" checkbox is enabled and Scene view Audio is unmuted
Resolution Note (2020.1.X):
This appears to be an issue with Google's MediaExtractor and MediaCodec libraries, which we are currently dependent on for video playback on Android. If you try to play too many videos, we crash or hang. I can't find a reasonable work-around as we can't query for the max number of video instances and we don't seem to get a reasonable error back that we can use to shut down the Xth version of the video player.
Having said that, on a fairly wide range of relatively new phones I tried (released in the last few years), Android does seem to be able to support up to 8 H.264 videos consistently. If playing so many, and the phone can't reliably play them all back in real time, it is a good idea to turn off the VideoPlayer's "SkipOnDrop" property. Otherwise, each video will continuously seek ahead to try to catch up to where it should be and this greatly degrades performance.
If your app requires this functionality (playing several videos at once), I think it will require testing on a bunch of different Android devices to confirm that it works consistently.