UNPKG

fcr-core

Version:

Core APIs for building online scenes

122 lines 3.64 kB
import { getPlatform, FcrApplicationPlatform } from '../imports'; import { FcrDegradationPreference } from '../schema'; const COMMON_HIGH_CAMERA_CONFIG = { dimensions: { width: 1280, height: 720 }, bitrate: 1250, frameRate: 24, degradationPreference: FcrDegradationPreference.FRAME_RATE }; const COMMON_LOW_CAMERA_CONFIG = { dimensions: { width: 384, height: 216 }, bitrate: 300, frameRate: 10, degradationPreference: FcrDegradationPreference.FRAME_RATE }; const COMMON_FULL_HIGH_CAMERA_CONFIG = { dimensions: { width: 1920, height: 1080 }, bitrate: 2500, frameRate: 20, degradationPreference: FcrDegradationPreference.FRAME_RATE }; const COMMON_CLARITY_SCREEN_CONFIG = { dimensions: { width: 1920, height: 1080 }, bitrate: 1500, frameRate: 15, degradationPreference: FcrDegradationPreference.QUALITY }; const COMMON_SMOOTH_SCREEN_CONFIG = { dimensions: { width: 1920, height: 1080 }, bitrate: 1500, frameRate: 30, degradationPreference: FcrDegradationPreference.FRAME_RATE }; const MOBILE_HIGH_CAMERA_CONFIG = { dimensions: { width: 960, height: 540 }, bitrate: 1000, frameRate: 15, degradationPreference: FcrDegradationPreference.FRAME_RATE }; const LINUX_HIGH_CAMERA_CONFIG = { dimensions: { width: 960, height: 540 }, bitrate: 1000, frameRate: 15, degradationPreference: FcrDegradationPreference.FRAME_RATE }; const HIGH_CAMERA_CONFIG_MAP = { [FcrApplicationPlatform.HARMONY]: MOBILE_HIGH_CAMERA_CONFIG, [FcrApplicationPlatform.WEB_MOBILE]: MOBILE_HIGH_CAMERA_CONFIG, [FcrApplicationPlatform.LINUX]: LINUX_HIGH_CAMERA_CONFIG }; const LOW_CAMERA_CONFIG_MAP = {}; const FULL_HIGH_CAMERA_CONFIG_MAP = {}; const CLARITY_SCREEN_CONFIG_MAP = { [FcrApplicationPlatform.WEB_DESKTOP]: { dimensions: { width: 1920, height: 1080 }, bitrate: 1950, frameRate: 15, degradationPreference: FcrDegradationPreference.QUALITY } }; const SMOOTH_SCREEN_CONFIG_MAP = { [FcrApplicationPlatform.WEB_DESKTOP]: { dimensions: { width: 1920, height: 1080 }, bitrate: 1950, frameRate: 30, degradationPreference: FcrDegradationPreference.FRAME_RATE } }; export let FcrVideoEncoderConfig; (function (_FcrVideoEncoderConfig) { function createDefaultHighCameraConfig() { const platform = getPlatform(); return HIGH_CAMERA_CONFIG_MAP[platform] ?? COMMON_HIGH_CAMERA_CONFIG; } _FcrVideoEncoderConfig.createDefaultHighCameraConfig = createDefaultHighCameraConfig; function createDefaultLowCameraConfig() { const platform = getPlatform(); return LOW_CAMERA_CONFIG_MAP[platform] ?? COMMON_LOW_CAMERA_CONFIG; } _FcrVideoEncoderConfig.createDefaultLowCameraConfig = createDefaultLowCameraConfig; function createDefaultFullHighCameraConfig() { const platform = getPlatform(); return FULL_HIGH_CAMERA_CONFIG_MAP[platform] ?? COMMON_FULL_HIGH_CAMERA_CONFIG; } _FcrVideoEncoderConfig.createDefaultFullHighCameraConfig = createDefaultFullHighCameraConfig; function createDefaultClarityScreenConfig() { const platform = getPlatform(); return CLARITY_SCREEN_CONFIG_MAP[platform] ?? COMMON_CLARITY_SCREEN_CONFIG; } _FcrVideoEncoderConfig.createDefaultClarityScreenConfig = createDefaultClarityScreenConfig; function createDefaultSmoothScreenConfig() { const platform = getPlatform(); return SMOOTH_SCREEN_CONFIG_MAP[platform] ?? COMMON_SMOOTH_SCREEN_CONFIG; } _FcrVideoEncoderConfig.createDefaultSmoothScreenConfig = createDefaultSmoothScreenConfig; })(FcrVideoEncoderConfig || (FcrVideoEncoderConfig = {}));