Crash when starting Bink video on BinkAudioDecompressResetStartFrameBink()

The crash occurs more often in Development builds and is less frequent in Test builds.

[Attachment Removed]

Steps to Reproduce
We initialize video playback using the following sequence:

BinkPlayer->OpenUrl(Url);
BinkPlayer->SetVolume(Volume);
BinkPlayer->Play();

[Attachment Removed]

Callstack:

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION writing address 0x0000000000447000

PlayGround_Win64_Test!BinkAudioDecompressOpenBink()

PlayGround_Win64_Test!ExpandBink2SplitFinish()

PlayGround_Win64_Test!ExpandBink2SplitFinish()

PlayGround_Win64_Test!ExpandBink2()

PlayGround_Win64_Test!LowBinkDoFrameAsync()

PlayGround_Win64_Test!bink_async_thread_proc()

PlayGround_Win64_Test!rrThreadSpinHyperYield23()

kernel32

ntdll

[Attachment Removed]

These issues were not present in version 5.7.3 and only started appearing after the 5.8 integration.

After upgrading to 5.8, we have random crashes during Bink video startup in game. In addition, the audio sounds heavily compressed or distorted when played through Bink player in editor.

However, when the same video file is opened in an external media player, the audio plays correctly without any quality issues.

[Attachment Removed]

Additional callstack in PIE with a similar repro:

UnrealEditor-BinkMediaPlayer.dll!bink2_idct_and_mo_deswizzle()

UnrealEditor-BinkMediaPlayer.dll!ExpandBink2SplitFinish()

UnrealEditor-BinkMediaPlayer.dll!destroy_async_sema()

UnrealEditor-BinkMediaPlayer.dll!BinkClose()

UnrealEditor-RenderCore.dll!ExecuteCommand(FRHICommandList * RHICmdList, const TVariant<TUniqueFunction<void __cdecl(void)>,TUniqueFunction<void __cdecl(FRHICommandList &)>,TUniqueFunction<void __cdecl(FRHICommandListImmediate &)>> & Function, const FRenderCommandTag & Tag)

[Inline Frame] UnrealEditor-RenderCore.dll!FRenderThreadCommandPipe::ExecuteCommands::__l2::<lambda_1>::operator()(TVariant<TUniqueFunction<void __cdecl(void)>,TUniqueFunction<void __cdecl(FRHICommandList &)>,TUniqueFunction<void __cdecl(FRHICommandListImmediate &)>> &&)

UnrealEditor-RenderCore.dll!UE::RenderCommandPipe::FCommandList::ConsumeCommands<`FRenderThreadCommandPipe::ExecuteCommands’::`2’::<lambda_1>>(const FRenderThreadCommandPipe::ExecuteCommands::__l2::<lambda_1> & Lambda)

[Inline Frame] UnrealEditor-RenderCore.dll!FRenderThreadCommandPipe::ExecuteCommands(UE::RenderCommandPipe::FCommandList &)

UnrealEditor-RenderCore.dll!FRenderThreadCommandPipe::EnqueueAndLaunch::__l5::<lambda_1>::operator()()

[Inline Frame] UnrealEditor-RenderCore.dll!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(void)>::operator()()

[Inline Frame] UnrealEditor-RenderCore.dll!TFunctionGraphTaskImpl<void __cdecl(void),1>::DoTaskImpl(TUniqueFunction<void __cdecl(void)> &)

[Inline Frame] UnrealEditor-RenderCore.dll!TFunctionGraphTaskImpl<void __cdecl(void),1>::DoTask(ENamedThreads::Type)

UnrealEditor-RenderCore.dll!TGraphTask<TFunctionGraphTaskImpl<void __cdecl(void),1>>::ExecuteTask()

UnrealEditor-Core.dll!UE::Tasks::Private::FTaskBase::TryExecuteTask()

[Inline Frame] UnrealEditor-Core.dll!FBaseGraphTask::Execute(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> &)

UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread(int QueueIndex, bool bAllowStall)

UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksUntilQuit(int QueueIndex)

UnrealEditor-RenderCore.dll!RenderingThreadMain(FEvent * TaskGraphBoundSyncEvent)

UnrealEditor-RenderCore.dll!FRenderingThread::Run()

UnrealEditor-Core.dll!FRunnableThreadWin::Run()

UnrealEditor-Core.dll!FRunnableThreadWin::GuardedRun()

[Attachment Removed]

What is the sound format of the Bink file? Can you do a File Info in the Bink tools and cut and paste it?

[Attachment Removed]

Gosh, if it’s in standalone builds, then something is VERY weird, since that has shipped with a ton of games. I wonder if your binary files are just weird. Can you email me at jeff.roberts[Content removed] since that is easy…

[Attachment Removed]

Hi Jeff,

I am experiencing the same problem.

It doesn’t crash 100% of the time.

// Thread BinkT03 or BinkT02

> ProjectName-Win64-Debug.exe!BinkAudioDecompressResetStartFrameBink()

ProjectName-Win64-Debug.exe!bink2_idct_and_mo_deswizzle()

ProjectName-Win64-Debug.exe!bink2_idct_and_mo_deswizzle()

ProjectName-Win64-Debug.exe!ExpandBink2()

ProjectName-Win64-Debug.exe!LowBinkDoFrameAsync()

ProjectName-Win64-Debug.exe!bink_async_thread_proc()

ProjectName-Win64-Debug.exe!rrThreadSpinHyperYield23()

kernel32.dll!00007ffc5509e957()

ntdll.dll!00007ffc55647c1c()

The engine code is obtained from Perforce.

UE5.7.4(//UE5/Release-5.7) -> UE5.8.0(//UE5/Release-5.8/…@55116800)

I tried it after the libraries were updated in CL-55785160, but the issue still reproduces.

Sincerely,

kitano

[Attachment Removed]

That’s down in the Bink decoder - so the texture memory that’s being passed into BinkHLRegisterTextureBuffers() has got to be bad. I can’t repro this in the 5.8 stuff, so assuming this might be an RHI change or something that we now depend on. If you can put together a repro case from your upgraded UE, I could have [mention removed]​ look at it next week sometime…

[Attachment Removed]

Hi Jeff,

We are also experiencing the same crash in cooked builds. It doesn’t always happen so it is a bit random. We have the same call stack as [Shunsuke [Content removed]

Cheers,

Brian

[Attachment Removed]

Hey there, I think I have a fix for you. Can you try this?

In BinkMediaPlayerModule.cpp replace the BinkCloseOnRenderThread with

void BinkCloseOnRenderThread(struct BINK*& InOutBnk, struct FBinkTextures*& InOutTextures)

{

HBINK OldBnk = InOutBnk;

FBinkTextures* OldTextures = InOutTextures;

InOutBnk = nullptr;

InOutTextures = nullptr;

if (OldBnk || OldTextures)

{

ENQUEUE_RENDER_COMMAND(BinkClose)([OldBnk, OldTextures](FRHICommandListImmediate& RHICmdList)

{

// BinkClose must run BEFORE the texture buffers are freed: the bink async

// worker threads decode directly into the CPU buffers registered via

// BinkHLRegisterTextureBuffers, and BinkClose is what waits for any

// in-flight frame decode to finish. Freeing the buffers first lets the

// decoder scribble into freed memory (access violation on BinkTxx threads).

if (OldBnk) { BinkClose(OldBnk); }

if (OldTextures) { OldTextures->Destroy(); }

});

}

}

[Attachment Removed]

Can you try this? https://drive.google.com/file/d/1cAoDL\-pVuQy\-7QYkiuHosWW\_HGn\-2jGw/view?usp\=sharing

[Attachment Removed]

I think this call stack is broken - BinkAudioDecompressOpenBink just happens in BinkOpen, not in mid-frame.

ExpandBink2SplitFinish is also bogus, since ExpandBink2 doesn’t call it, so maybe it’s just crashing in ExpandBink2() which is just the memory->memory Bink expander. Biggest possible problem there is just that the output texture isn’t big enough (or a random scribbler).

Is it always the same Bink file? What are the dimensions? Only at startup?

[Attachment Removed]

This callstack is really crazy - not sure we can trust much of it…

[Attachment Removed]

The distorted sound is a weird one - what is the sound frequency of the Bink file? We use WASAPI now (vs Xaudio), I wonder if there is something weird there?

[Attachment Removed]

Information on FCAC_KM1.bk2

Video format: Bink 2.8

Width: 3840

Height: 2160

Frames: 5,376

Color depth: 32

Alpha plane: No

Frames per second: 30.00

Milliseconds per frame: 33.33

Total time: 2 minutes 59 seconds

Total size: 1,496,290,420

Average data rate: 8,349,834

Average frame size: 278,327

File type: Color

Uses full y-cr-cb colorspace.

Compressed with Bink 2025.5.0

Video slices (maximum CPUs): 4

Largest frame size: 924,640

Highest one second data rate: 11,028,396

Highest one second data rate frame: 39

Track ID 48000 Hz, 16 bit, Stereo sound (BA2.0)

Last modified on 6/18/2026 at 6:21 pm

Attributes: archive-yes read only-no hidden-no system-no

[Attachment Removed]

Hi Jeff,

Just wanted to give you a quick update.

Additionally, with the new version, we started noticing clear sound artifacts and audio issues in every Bink video.

As far as we understand, Bink was updated in 5.8 to support future platforms, so we reverted it back to the 5.7.3 version — and that fully resolved the problem.

After reverting to 5.7.3, all audio issues disappeared.

Best regards,

Igor

[Attachment Removed]

This is just on Windows right? I think this is the difference between Xaudio and WASAPI support - could you give me the sound driver type and I’ll try to set that up here?

[Attachment Removed]

And the sound distortion is in editor only? ([mention removed]​ fyi)

[Attachment Removed]

  1. This occurs on both Windows and XSX (though it is slightly less noticeable on XSX), but we haven’t encountered it on PS5. Regarding the driver type, our logs show that the engine initializes the audio mixer using the WASAPI platform API (LogAudioMixer: Display: Initializing audio mixer using platform API: ‘WASAPIMixer’). The issue happens across the board for our whole PC team. For reference, our sound designer is currently using the Focusrite driver (version 4.143.0.261).
  2. No, it is not exclusive to the editor; it occurs in standalone/cooked builds as well.

Thanks for looking into this and for all your help! Let me know if you need any logs or further info from our side.

[Attachment Removed]