Video decoder null reference exception on startup
See original GitHub issueDescribe the crash: The OSU program crashes on initialization with the following error messages.
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at osu.Framework.Graphics.Video.VideoDecoder.GetConversionMatrix()
at osu.Framework.Graphics.Video.VideoSprite.get_ConversionMatrix()
at osu.Framework.Graphics.Video.VideoSpriteDrawNode..ctor(VideoSprite source)
at osu.Framework.Graphics.Video.VideoSprite.CreateDrawNode()
at osu.Framework.Graphics.Drawable.GenerateDrawNodeSubtree(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.addFromComposite(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode, Int32& j, CompositeDrawable parentComposite, List`1 target)
at osu.Framework.Graphics.Containers.CompositeDrawable.GenerateDrawNodeSubtree(UInt64 frame, Int32 treeIndex, Boolean forceNewDrawNode)
at osu.Framework.Platform.GameHost.UpdateFrame()
at osu.Framework.Threading.GameThread.ProcessFrame()
at osu.Framework.Threading.GameThread.runWork()
--- End of stack trace from previous location where exception was thrown ---
at osu.Framework.Platform.GameHost.<>c__DisplayClass93_0.<handleException>b__0()
at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
at osu.Framework.Threading.Scheduler.Update()
at osu.Framework.Threading.GameThread.ProcessFrame()
at osu.Framework.Platform.GameHost.handleInput()
at osuTK.GameWindow.RaiseUpdateFrame(Stopwatch watch, Double elapsed, Double& timestamp)
at osuTK.GameWindow.DispatchUpdateFrame(Stopwatch watch)
at osuTK.GameWindow.Run(Double updates_per_second, Double frames_per_second)
at osuTK.GameWindow.Run()
at osu.Framework.Platform.GameWindow.Run()
at osu.Framework.Platform.GameHost.Run(Game game)
at osu.Desktop.Program.Main(String[] args) in /var/lib/buildkite-agent/builds/debian-gnu-linux-vm-1/ppy/osu/osu.Desktop/Program.cs:line 57
Aborted (core dumped)
It seems to be related to this PR since the bug does not exist before #7935 update-framework
.
osu!lazer version: Commits after 000787a766582bd43fae3464908bcb05e3385b36.
Computer Specifications:
- Ubuntu 18.04.4 LTS
- Memory 15.6 GB
- Processor Intel Core i7-4720HQ
- Graphics GeForce GTX 965M
Issue Analytics
- State:
- Created 4 years ago
- Comments:17 (2 by maintainers)
Top Results From Across the Web
Null Reference Exception when playing video
NullReferneceException mean you tried to use a null variable. My best bet is MyVideoPlayer = GetComponent<VideoPlayer> is not called, or you ...
Read more >How can I fix the error: System.NullReferenceException
A NullReferenceException exception is thrown when you try to access a member on a type whose value is null. A NullReferenceException exception ...
Read more >In Unity (C#), why am I getting a NullReferenceException ...
It's possible that you have something in Awake() or Start() that's negating the reference, and you'll see the inspector switch to None ....
Read more >MediaCodec
Quickly bring your app to life with less code, using a modern declarative approach to UI, and the simplicity of Kotlin. ... Start...
Read more >Object reference not set to an instance of an object.
This code is blowing up on me, on the last line. No other errors thrown. This is some generated code from a Blazor...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
While this crash should be better-handled framework-side, at least in my case it turned out that one of the issues was a missing
libavformat.so
. Therefore for the time being you could try to install the distribution-appropriate packages containinglibavformat
.Confirmation that this is the case for you can be obtained by examining runtime logs (should have an entry about missing libraries right before the crash stack) or passing
LD_DEBUG=libs
.For example, on my xenial 16.04, I got video fully working by installing ffmpeg 4 along with
libavformat
& co. from an external PPA. Note that installing ffmpeg pre-v4 might alleviate crashes, but not make video work as framework does not currently support those versions (the decoding process is missingav_register_all()
calls at the start of decoding, which are no longer necessary and therefore deprecated with version 4).Also please double-check that your symlinks in
/usr/lib/x86_64-linux-gnu
or similar are correctly hooked up. The root.so
s should be pointing at newlibavcodec
/libavformat
versions, not any old ones possibly leftover from the default ubuntu install.Maybe related to the ffmpeg version. I’m running Arch Linux with ffmpeg 4.2.2 and do not have this issue.