feat: use CAPABILITY_PULL_RENDERER for legacy pacing mode

This commit is contained in:
Acaki committed 2025-08-26 03:06:19 +08:00
1 parent 8547cee1b9
commit ebf46042ba
2 files changed
+87 -16

No files matched your search

+14 -4
View File
@@ -9,6 +9,7 @@
#import "Connection.h"
#import "Plot.h"
#import "Utils.h"
#import "DataManager.h"
#import <VideoToolbox/VideoToolbox.h>
@@ -505,10 +506,19 @@ void ClSetControllerLED(uint16_t controllerNumber, uint8_t r, uint8_t g, uint8_t
LiInitializeVideoCallbacks(&_drCallbacks);
_drCallbacks.setup = DrDecoderSetup;
_drCallbacks.cleanup = DrCleanup;
_drCallbacks.submitDecodeUnit = DrSubmitDecodeUnit;
_drCallbacks.capabilities = CAPABILITY_DIRECT_SUBMIT |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_AV1;
// Use pull renderer for legacy frame pacing, direct submit for modern frame pacing
DataManager* dataMan = [[DataManager alloc] init];
if ([[dataMan getSettings].framePacingMode integerValue] == FramePacingModeLegacy) {
_drCallbacks.capabilities = CAPABILITY_PULL_RENDERER |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_AV1;
_drCallbacks.submitDecodeUnit = NULL;
} else {
_drCallbacks.capabilities = CAPABILITY_DIRECT_SUBMIT |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_HEVC |
CAPABILITY_REFERENCE_FRAME_INVALIDATION_AV1;
_drCallbacks.submitDecodeUnit = DrSubmitDecodeUnit;
}
LiInitializeAudioCallbacks(&_arCallbacks);
_arCallbacks.init = ArInit;