mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 01:00:18 +02:00
- Per-frame timing on the Mac's clock (capture, encode, network, decode, draw), viewer clock sync and reports, input echo, /stats and a HUD. - scripts/macview-bench.py: repeatable runs on the real Frame, a shaping relay (no sudo), interleaved A/B between agent settings; results in bench/results/. - Adaptive controller: ack-based send gate with jitter-aware slack, AIMD bitrate that knows when a stream is app-limited, fps then size tiers. On a 50->3->50 Mbit/s step, scroll p95 went from 4.7 s to 72 ms; no cost on a clean link. - Separate mode: real AppKit event loop (HiDPI and NSScreen now work), cropped capture for fixed-size windows, windows kept on their display, graceful quit restores windows; stop/start races fixed. - Encoder timeline clamp (no oversized frame after a pause). - Frame Control shows each live stream's fps, delay, bitrate and tier. Reviewed by GPT-6 Astra xhigh (read-only), 7 rounds; findings fixed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
29 lines
1.2 KiB
Objective-C
29 lines
1.2 KiB
Objective-C
// Private CoreGraphics classes for virtual displays (as used by DeskPad,
|
|
// BetterDisplay and quest-display). Not in any SDK; see
|
|
// docs/mac-window-separation.md.
|
|
#import <Foundation/Foundation.h>
|
|
#import <CoreGraphics/CoreGraphics.h>
|
|
@interface CGVirtualDisplayDescriptor : NSObject
|
|
@property (retain, nonatomic) dispatch_queue_t queue;
|
|
@property (retain, nonatomic) NSString *name;
|
|
@property (nonatomic) unsigned int maxPixelsHigh;
|
|
@property (nonatomic) unsigned int maxPixelsWide;
|
|
@property (nonatomic) CGSize sizeInMillimeters;
|
|
@property (nonatomic) unsigned int serialNum;
|
|
@property (nonatomic) unsigned int productID;
|
|
@property (nonatomic) unsigned int vendorID;
|
|
@property (copy, nonatomic) void (^terminationHandler)(id, id);
|
|
@end
|
|
@interface CGVirtualDisplayMode : NSObject
|
|
- (instancetype)initWithWidth:(unsigned int)width height:(unsigned int)height refreshRate:(double)refreshRate;
|
|
@end
|
|
@interface CGVirtualDisplaySettings : NSObject
|
|
@property (retain, nonatomic) NSArray *modes;
|
|
@property (nonatomic) unsigned int hiDPI;
|
|
@end
|
|
@interface CGVirtualDisplay : NSObject
|
|
@property (readonly, nonatomic) unsigned int displayID;
|
|
- (instancetype)initWithDescriptor:(CGVirtualDisplayDescriptor *)descriptor;
|
|
- (BOOL)applySettings:(CGVirtualDisplaySettings *)settings;
|
|
@end
|