Ahmed Seif
Ahmed Seif

Reputation: 11

Crash on importing audio after packaging game EXCEPTION_ACCESS_VIOLATION OVRlipsync Plugin UE4

Been working on a lipsync project on UE4.27 and the Oculus OVRlipsync and the project has been working very well on UE editor. Packaging the game to ship it to the client, I started facing issues that is related on cooking frame sequence from WAV files resulting in crash in the packaged app.

The resulted crash log is

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000024bc963002c

OVRLipSync
OVRLipSync
OVRLipSync
OVRLipSync
MyProject_Win64_Shipping!ovrLipSync_ProcessFrameEx() [\software\coretech\src\engines\tracking\facetracking\facewave\ovrlipsyncshim.cpp:389]
MyProject_Win64_Shipping!<lambda_04cfcd2176d25e5a0c33289e1c33f647>::operator()() [D:\Unreal Projects\Lipsync\fix2\MyProject\Plugins\OVRLipSync\Source\OVRLipSync\Private\CreateFrameSequenceAsset.cpp:79]
MyProject_Win64_Shipping!TAsyncRunnable<void>::Run()
MyProject_Win64_Shipping!FRunnableThreadWin::Run()

Tracing the error at CreateFrameSequenceAsset.cpp:79 which was part of the plugin source code I found the following function context.ProcessFrame(PCMData + offs, ChunkSizeSamples, Visemes, LaughterScore, FrameDelayInMs,NumChannels > 1);

putting efforts back on the declaration and definition of the function found nothing useful, except that I tried looking up the file ovrlipsyncshim.cpp and found nothing so I tried searching my project for ProcessFrameEx() I found another part of it in /ThirdParty/Include/OVRLipSync.h as follows

ovrLipSyncResult ovrLipSync_ProcessFrameEx(
    ovrLipSyncContext context,
    const void* audioBuffer,
    int sampleCount,
    ovrLipSyncAudioDataType dataType,
    ovrLipSyncFrame* pFrame);

though tracing all this up couldn't find anything useful to handle the exception or tell the cause of it.

Anyone ever faced such a problem or having any experience solving such an issue

Upvotes: 0

Views: 450

Answers (1)

IULIA-ANDREEA BARBU
IULIA-ANDREEA BARBU

Reputation: 1

I had the same issue. I've changed a line in OvrLipSyncEditorModule.cpp:

From:

UOVRLipSyncContextWrapper context(ovrLipSyncContextProvider_Enhanced, SampleRate, 4096, ModelPath);

To:

UOVRLipSyncContextWrapper context(ovrLipSyncContextProvider_Enhanced, SampleRate, 8192, ModelPath);

(basically I've increased the buffer size)

And I've also added this line:

SoundWave->LoadingBehavior = ESoundWaveLoadingBehavior::ForceInline;

before the call:

DecompressSoundWave(SoundWave);

Now it doesn't crash anymore and it generates a sequence, but when I attach the sequence to the model, it does nothing.. It's weird, it seems to not be a working sequence even though I've checked and the sequence is not empty.

Upvotes: 0

Related Questions