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
-
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();
} -
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]