Aja corvid 88 reports error on output start and crashes if it restarted

Summary

On video output capture start I get the following error for the first second or so:

LogAjaCore: Error: SetVideoFrameData: Can’t set the video. The buffer is invalid or the buffer size is not the same as the AJA Video Format for output channel 7 on device Corvid88 - 0.

After that it settles and the output is working, but in my project I need to restart it and that’s when I get a crash from Aja OutputChannelThread

What Type of Bug are you experiencing?

AI

Steps to Reproduce

  1. Start media capture
    FReply SAjaMediaOutputControl::OnStartClicked()
    {
    UMediaOutput* Output = SelectedMediaOutput.Get();
    if (!Output)
    {
    return FReply::Handled();
    }

    // Stop any existing capture on this output before creating a new one
    if (ActiveCapture.IsValid())
    {
    ActiveCapture->StopCapture(false);
    ActiveCapture.Reset();
    }

    UMediaCapture* Capture = Output->CreateMediaCapture();
    if (Capture)
    {
    FMediaCaptureOptions Options;
    Options.ResizeMethod = EMediaCaptureResizeMethod::ResizeSource;
    if (Capture->CaptureActiveSceneViewport(Options))
    {
    ActiveCapture = TStrongObjectPtr(Capture);
    bIsCapturing = true;
    }
    }

    return FReply::Handled();
    }

  2. Stop media capture and instantly start again (or next frame)
    Start()
    and then:
    FReply SAjaMediaOutputControl::OnStopClicked()
    {
    if (ActiveCapture.IsValid())
    {
    ActiveCapture->StopCapture(false);
    ActiveCapture.Reset();
    }
    bIsCapturing = false;

    return FReply::Handled();
    }

Expected Result

Output viewport on channel 7 of Aja card

Observed Result

Crash

Affects Versions

5.8

Platform(s)

Windows

For crash reports, include your callstack

LoginId:d7bd3635415d24fd535356b2a3fd6cde
EpicAccountId:d5eea72d363644919189be3bde1b7cd3

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000050

UnrealEditor_AjaCore!AJA::Private::OutputChannelThread::SetVideoFrameData() [D:\build++UE5\Sync\Engine\Plugins\Media\AjaMedia\Source\Aja\Private\OutputChannel.cpp:659]
UnrealEditor_AjaMediaOutput!UAjaMediaCapture::OnFrameCapturedInternal_AnyThread() [D:\build++UE5\Sync\Engine\Plugins\Media\AjaMedia\Source\AjaMediaOutput\Private\AjaMediaCapture.cpp:866]
UnrealEditor_AjaMediaOutput!UAjaMediaCapture::OnFrameCaptured_AnyThread() [D:\build++UE5\Sync\Engine\Plugins\Media\AjaMedia\Source\AjaMediaOutput\Private\AjaMediaCapture.cpp:696]
UnrealEditor_MediaIOCore!UE::MediaCaptureData::FMediaCaptureHelper::OnReadbackComplete() [D:\build++UE5\Sync\Engine\Plugins\Media\MediaIOFramework\Source\MediaIOCore\Private\MediaCaptureHelper.cpp:356]
UnrealEditor_MediaIOCore!UE::MediaCaptureData::FSyncPointWatcher::ProcessPendingCapture() [D:\build++UE5\Sync\Engine\Plugins\Media\MediaIOFramework\Source\MediaIOCore\Private\MediaCaptureSyncPointWatcher.cpp:107]
UnrealEditor_MediaIOCore!UE::MediaCaptureData::FSyncPointWatcher::Run() [D:\build++UE5\Sync\Engine\Plugins\Media\MediaIOFramework\Source\MediaIOCore\Private\MediaCaptureSyncPointWatcher.cpp:42]
UnrealEditor_Core!FRunnableThreadWin::Run() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Private\Windows\WindowsRunnableThread.cpp:167]

I also noticed that it crashes on fill and key mode on capture start:

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000050

UnrealEditor_AjaCore!AJA::Private::OutputChannelThread::SetVideoFrameData() [D:\build++UE5\Sync\Engine\Plugins\Media\AjaMedia\Source\Aja\Private\OutputChannel.cpp:659]
UnrealEditor_AjaMediaOutput!UAjaMediaCapture::OnFrameCapturedInternal_AnyThread() [D:\build++UE5\Sync\Engine\Plugins\Media\AjaMedia\Source\AjaMediaOutput\Private\AjaMediaCapture.cpp:866]
UnrealEditor_AjaMediaOutput!UAjaMediaCapture::OnFrameCaptured_AnyThread() [D:\build++UE5\Sync\Engine\Plugins\Media\AjaMedia\Source\AjaMediaOutput\Private\AjaMediaCapture.cpp:696]
UnrealEditor_MediaIOCore!UE::MediaCaptureData::FMediaCaptureHelper::OnReadbackComplete() [D:\build++UE5\Sync\Engine\Plugins\Media\MediaIOFramework\Source\MediaIOCore\Private\MediaCaptureHelper.cpp:356]
UnrealEditor_MediaIOCore!UE::MediaCaptureData::FSyncPointWatcher::ProcessPendingCapture() [D:\build++UE5\Sync\Engine\Plugins\Media\MediaIOFramework\Source\MediaIOCore\Private\MediaCaptureSyncPointWatcher.cpp:107]
UnrealEditor_MediaIOCore!UE::MediaCaptureData::FSyncPointWatcher::Run() [D:\build++UE5\Sync\Engine\Plugins\Media\MediaIOFramework\Source\MediaIOCore\Private\MediaCaptureSyncPointWatcher.cpp:42]
UnrealEditor_Core!FRunnableThreadWin::Run() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Private\Windows\WindowsRunnableThread.cpp:167]