2020-09-08 18:12:55 -04:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "IAudioCodec.h"
|
|
|
|
|
#include "UObject/NameTypes.h"
|
|
|
|
|
#include "AudioDecompress.h"
|
|
|
|
|
|
|
|
|
|
class ICompressedAudioInfo; // Forward declares.
|
|
|
|
|
|
|
|
|
|
namespace Audio
|
|
|
|
|
{
|
2023-06-02 15:27:25 -04:00
|
|
|
PRAGMA_DISABLE_DEPRECATION_WARNINGS
|
|
|
|
|
|
2020-09-08 18:12:55 -04:00
|
|
|
struct FBackCompatInput : public IDecoderInput
|
|
|
|
|
{
|
|
|
|
|
FName OldFormatName;
|
2021-02-26 02:30:51 -04:00
|
|
|
FSoundWaveProxyPtr Wave;
|
2020-09-08 18:12:55 -04:00
|
|
|
mutable FFormatDescriptorSection Desc;
|
|
|
|
|
mutable TUniquePtr<ICompressedAudioInfo> OldInfoObject;
|
|
|
|
|
|
|
|
|
|
FBackCompatInput(
|
|
|
|
|
FName InOldFormatName,
|
2021-02-26 02:30:51 -04:00
|
|
|
const FSoundWaveProxyPtr& InWave)
|
2020-09-08 18:12:55 -04:00
|
|
|
: OldFormatName(InOldFormatName)
|
2021-02-26 02:30:51 -04:00
|
|
|
, Wave(InWave)
|
2020-09-08 18:12:55 -04:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool HasError() const override;
|
|
|
|
|
bool IsEndOfStream() const override;
|
|
|
|
|
|
|
|
|
|
ICompressedAudioInfo* GetInfo(
|
|
|
|
|
FFormatDescriptorSection* OutDescriptor = nullptr) const;
|
|
|
|
|
|
|
|
|
|
bool FindSection(FEncodedSectionBase& OutSection) override;
|
|
|
|
|
int64 Tell() const override;
|
2021-03-15 22:10:18 -04:00
|
|
|
|
2022-03-15 16:40:51 -04:00
|
|
|
bool SeekToTime(const float InSeconds) override;
|
2020-09-08 18:12:55 -04:00
|
|
|
|
|
|
|
|
TArrayView<const uint8> PeekNextPacket(
|
|
|
|
|
int32 InMaxPacketLength) const override;
|
|
|
|
|
|
|
|
|
|
TArrayView<const uint8> PopNextPacket(
|
|
|
|
|
int32 InPacketSize) override;
|
|
|
|
|
};
|
2023-06-02 15:27:25 -04:00
|
|
|
|
|
|
|
|
PRAGMA_ENABLE_DEPRECATION_WARNINGS
|
2020-09-08 18:12:55 -04:00
|
|
|
}
|