Files
MatchLiveTv/native/ios/MatchLiveTv/Streaming/StreamVideoPreset.swift
T
eminuxandCursor f92ab3a813 Aggiunge bitrate adattivo con qualità minima da regia e telemetria del telefono.
L'encoder scende in congestione e risale piano; la regia imposta il pavimento, mostra lo stato del telefono e apre il selettore dal bitrate colorato.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-13 20:05:16 +02:00

34 lines
1.1 KiB
Swift

import Foundation
enum StreamVideoPreset {
struct Dimensions: Sendable {
let width: Int
let height: Int
}
static func dimensions(for qualityPreset: String?) -> Dimensions {
if qualityPreset?.hasPrefix("1080p") == true {
return Dimensions(width: 1920, height: 1080)
}
return Dimensions(width: 1280, height: 720)
}
static func broadcastConfig(for session: StreamSession, rtmpUrl: String) -> BroadcastConfig {
let dims = dimensions(for: session.qualityPreset)
let ceiling = StreamQualityLadder.encoderCeiling(
sessionTarget: session.targetBitrate,
minPresetId: session.minQualityPreset
)
let floor = StreamQualityLadder.encoderFloor(minPresetId: session.minQualityPreset, ceiling: ceiling)
return BroadcastConfig(
rtmpUrl: rtmpUrl,
width: dims.width,
height: dims.height,
videoBitrate: ceiling,
minVideoBitrate: floor,
audioBitrate: 128_000,
fps: session.targetFps
)
}
}