Skip to content

Commit 42e160a

Browse files
committed
Merge remote-tracking branch 'origin/master' into dev
2 parents a4f2709 + 8d6fd48 commit 42e160a

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

Source/BetaHubBugReporter/Private/BH_VideoEncoder.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include "HAL/PlatformProcess.h"
44
#include "Misc/Paths.h"
55
#include "Misc/FileHelper.h"
6+
#include "Misc/Guid.h"
67
#include "BH_Runnable.h"
78
#include "BH_FFmpeg.h"
89

@@ -27,6 +28,9 @@ BH_VideoEncoder::BH_VideoEncoder(
2728
SegmentCheckInterval(FTimespan::FromSeconds(15)),
2829
LastSegmentCheckTime(FDateTime::Now())
2930
{
31+
// Generate a random 5-character string for segmentPrefix
32+
segmentPrefix = FGuid::NewGuid().ToString(EGuidFormats::Digits).Left(5) + TEXT("_");
33+
3034
// check if width and height are multiples of 4
3135
if (screenWidth % 4 != 0 || screenHeight % 4 != 0)
3236
{
@@ -52,13 +56,13 @@ BH_VideoEncoder::BH_VideoEncoder(
5256
// Remove all existing segment files
5357
IFileManager& FileManager = IFileManager::Get();
5458
TArray<FString> SegmentFiles;
55-
FileManager.FindFiles(SegmentFiles, *(segmentsDir / TEXT("segment_*.mp4")), true, false);
59+
FileManager.FindFiles(SegmentFiles, *(segmentsDir / (segmentPrefix + TEXT("*.mp4"))), true, false);
5660
for (const FString& SegmentFile : SegmentFiles)
5761
{
5862
FileManager.Delete(*(segmentsDir / SegmentFile));
5963
}
6064

61-
outputFile = FPaths::Combine(segmentsDir, TEXT("segment_%06d.mp4"));
65+
outputFile = FPaths::Combine(segmentsDir, (segmentPrefix + TEXT("%06d.mp4")));
6266
encodingSettings = TEXT("-y -f rawvideo -pix_fmt bgra -s ") +
6367
FString::FromInt(screenWidth) + TEXT("x") + FString::FromInt(screenHeight) +
6468
TEXT(" -r ") + FString::FromInt(targetFPS) +
@@ -292,7 +296,7 @@ FString BH_VideoEncoder::MergeSegments(int32 MaxSegments)
292296
// Get the list of segment files
293297
IFileManager& FileManager = IFileManager::Get();
294298
TArray<FString> SegmentFiles;
295-
FileManager.FindFiles(SegmentFiles, *(segmentsDir / TEXT("segment_*.mp4")), true, false);
299+
FileManager.FindFiles(SegmentFiles, *(segmentsDir / (segmentPrefix + TEXT("*.mp4"))), true, false);
296300

297301
// Sort and take the last MaxSegments
298302
SegmentFiles.Sort();
@@ -372,7 +376,7 @@ void BH_VideoEncoder::RemoveOldSegments()
372376

373377
IFileManager& FileManager = IFileManager::Get();
374378
TArray<FString> SegmentFiles;
375-
FileManager.FindFiles(SegmentFiles, *(segmentsDir / TEXT("segment_*.mp4")), true, false);
379+
FileManager.FindFiles(SegmentFiles, *(segmentsDir / (segmentPrefix + TEXT("*.mp4"))), true, false);
376380

377381
// Sort segment files based on their numerical part
378382
SegmentFiles.Sort([](const FString& A, const FString& B)

Source/BetaHubBugReporter/Private/BH_VideoEncoder.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class BH_VideoEncoder : public FRunnable
1515
FString ffmpegPath;
1616
FString outputFile;
1717
FString segmentsDir;
18+
FString segmentPrefix;
1819
int32 targetFPS;
1920
int32 screenWidth;
2021
int32 screenHeight;

0 commit comments

Comments
 (0)