import AndroidAbrMethod from './AndroidAbrMethod'; import AndroidAbrTrackSelection from './AndroidAbrTrackSelection'; /** @group Interfaces */ export default interface AndroidAbrConfiguration { /** * A value between 0 and 1 that is used as a penalty when * a buffer degradation or a download time issue is detected. */ degradationPenalty?: number; /** * The recovery applied on each selection * after a {@link AndroidAbrConfiguration.degradationPenalty} was applied. */ degradationRecovery?: number; /** * Safety factor that is applied to download time calculations */ downloadTimeFactor?: number; /** * The initial track selection can be used to manually select a track * by index initially, in combination with {@link AndroidAbrConfiguration.keepInitialSelection}. * The default value is {@link AndroidAbrTrackSelection.VideoQualityAdaptive}. */ initialTrackSelection?: AndroidAbrTrackSelection; /** * True if the first selection should be kept. */ keepInitialSelection?: boolean; /** * The maximum amount of data that is expected * to be buffered before a quality decrease is permitted. */ maxDurationForQualityDecreaseMs?: number; /** * The bandwidth estimation in bits per second that is used * when the bandwidth estimator reports that it cannot estimate * due to lack of information. */ maxInitialBitrate?: number; /** * The ABR method. */ method?: AndroidAbrMethod; /** * The minium number of segments observed * before buffer degradation detection is permitted. */ minDegradationSamples?: number; /** * The minimum amount of that data is expected * to be buffered before a quality increase is permitted. */ minDurationForQualityIncreaseMs?: number; /** * Duration of the buffer to retain after discarding chunks. * For example, discarding SD chunks to replace with better HD quality. */ minDurationToRetainAfterDiscardMs?: number; /** * The min number of totally transferred bytes * before the ABR calculations are considered reliable, * applicable to {@link AndroidAbrMethod.CommonNba}. */ minSampledBytes?: number; /** * The percentile, * applicable to {@link AndroidAbrMethod.CommonNba}. */ percentile?: number; /** * The weight used for the sliding percentile bandwidth estimator. */ percentileWeight?: number; /** * Minimum target buffer considered safe. */ safeBufferSizeMs?: number; /** * * The min time in milliseconds before transferred bytes and * times are used for ABR calculations, * applicable to {@link AndroidAbrMethod.CommonNba}. */ timeThresholdMs?: number; /** * When enabled, the Player will try to parse the CMSD-Dynamic header * to extract the backend-informed estimated bandwidth (the etp field) and * use it as the estimation for quality selection. */ useCmsd?: boolean; }