You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Change LiveLink client tick order to tick at the start of the frame. Request the live enabled in LiveLinkUI Change TimecodeSync tick order to after the frame. Change LiveLink buffering system. Add unit to livelink setting properties. Add interpolation with timecode to LiveLink #rb simon.therriault #jira UE-78355 #ROBOMERGE-SOURCE: CL 7773624 in //UE4/Release-4.23/... #ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v385-7708028) [CL 7773637 by patrick boutot in Main branch]
46 lines
1.8 KiB
C++
46 lines
1.8 KiB
C++
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/Object.h"
|
|
#include "UObject/ObjectMacros.h"
|
|
|
|
#include "LiveLinkRole.h"
|
|
#include "LiveLinkTypes.h"
|
|
#include "Templates/SubclassOf.h"
|
|
|
|
#include "LiveLinkFrameInterpolationProcessor.generated.h"
|
|
|
|
|
|
/**
|
|
* Basic object to interpolate live link frames
|
|
* Inherit from it to do custom blending for your data type
|
|
* @note It can be called from any thread
|
|
*/
|
|
class LIVELINKINTERFACE_API ILiveLinkFrameInterpolationProcessorWorker
|
|
{
|
|
public:
|
|
virtual TSubclassOf<ULiveLinkRole> GetRole() const = 0;
|
|
virtual void Interpolate(double InTime, const FLiveLinkStaticDataStruct& InStaticData, const TArray<FLiveLinkFrameDataStruct>& InSourceFrames, FLiveLinkSubjectFrameData& OutBlendedFrame) = 0;
|
|
virtual void Interpolate(const FQualifiedFrameTime& InTime, const FLiveLinkStaticDataStruct& InStaticData, const TArray<FLiveLinkFrameDataStruct>& InSourceFrames, FLiveLinkSubjectFrameData& OutBlendedFrame) = 0;
|
|
};
|
|
|
|
|
|
/**
|
|
* Basic object to interpolate live link frames
|
|
* Inherit from it to do custom blending for your data type
|
|
* @note It can only be used on the Game Thread. See ILiveLinkFrameInterpolationProcessorWorker for the any thread implementation.
|
|
*/
|
|
UCLASS(Abstract, editinlinenew, ClassGroup = (LiveLink))
|
|
class LIVELINKINTERFACE_API ULiveLinkFrameInterpolationProcessor : public UObject
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
using FWorkerSharedPtr = TSharedPtr<ILiveLinkFrameInterpolationProcessorWorker, ESPMode::ThreadSafe>;
|
|
|
|
virtual TSubclassOf<ULiveLinkRole> GetRole() const PURE_VIRTUAL(ULiveLinkFrameInterpolationProcessor::GetFromRole, return TSubclassOf<ULiveLinkRole>(););
|
|
virtual FWorkerSharedPtr FetchWorker() PURE_VIRTUAL(ULiveLinkFrameInterpolationProcessor::FetchWorker, return FWorkerSharedPtr(););
|
|
};
|