Files
UnrealEngineUWP/Engine/Source/Runtime/AVEncoder/Public/CodecPacket.h
Nick Pace db7ffa0445 Integrate Dev-TensorWorks PixelStreaming/AVEncoder changes into Main
#JIRA UCS-1831
#fyi luke.bermingham, marco.anastasi
#rb aidan.possemiers

[CL 17920208 by Nick Pace in ue5-main branch]
2021-10-26 01:05:06 -04:00

42 lines
860 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "VideoCommon.h"
#include <HAL/CriticalSection.h>
namespace AVEncoder
{
class AVENCODER_API FCodecPacketImpl : public FCodecPacket
{
public:
~FCodecPacketImpl();
// clone packet if a longer term copy is needed
const FCodecPacket* Clone() const override;
// release a cloned copy
void ReleaseClone() const override;
class FClone : public FCodecPacket
{
public:
~FClone();
void Copy(const FCodecPacketImpl& InOriginal);
// clone packet if a longer term copy is needed
const FCodecPacket* Clone() const override;
// release a cloned copy
void ReleaseClone() const override;
private:
mutable FThreadSafeCounter RefCounter = 0;
};
private:
mutable FCriticalSection ProtectClone;
mutable const FClone* MyClone = nullptr;
};
} /* namespace AVEncoder */