From 1668d4f0993b84c420a379cbb5a7fcb35d9759a3 Mon Sep 17 00:00:00 2001 From: Daniel Silhavy Date: Wed, 7 May 2025 08:42:41 +0200 Subject: [PATCH 1/4] Use ESM syntax in index.d.ts --- index.d.ts | 2 +- package-lock.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/index.d.ts b/index.d.ts index 7cd4336177..8bca3b6a94 100644 --- a/index.d.ts +++ b/index.d.ts @@ -5,7 +5,7 @@ import { ResponseInterceptor } from '@svta/common-media-library/request' -export = dashjs; +export default dashjs; export as namespace dashjs; declare namespace dashjs { diff --git a/package-lock.json b/package-lock.json index 23f51ca91a..bc773fbef1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "dashjs", - "version": "5.0.1", + "version": "5.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dashjs", - "version": "5.0.1", + "version": "5.1.0", "license": "BSD-3-Clause", "dependencies": { "@svta/common-media-library": "^0.11.0", From 43887328c7fa2bc9b9d445a0a4c049522c80bec8 Mon Sep 17 00:00:00 2001 From: Daniel Silhavy Date: Wed, 7 May 2025 08:43:56 +0200 Subject: [PATCH 2/4] Change version number to 5.0.2 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index bc773fbef1..cda8301945 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "dashjs", - "version": "5.1.0", + "version": "5.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dashjs", - "version": "5.1.0", + "version": "5.0.2", "license": "BSD-3-Clause", "dependencies": { "@svta/common-media-library": "^0.11.0", diff --git a/package.json b/package.json index efe4aa4e6c..d74659bf28 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dashjs", - "version": "5.1.0", + "version": "5.0.2", "description": "A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers.", "author": "Dash Industry Forum", "license": "BSD-3-Clause", From dfa12b076374c3026d95b106fb56d1b563fcdc16 Mon Sep 17 00:00:00 2001 From: Daniel Silhavy Date: Mon, 13 Oct 2025 10:44:11 +0200 Subject: [PATCH 3/4] Fix indents in index.d.ts --- index.d.ts | 718 ++++++++++++++++++++++++++--------------------------- 1 file changed, 359 insertions(+), 359 deletions(-) diff --git a/index.d.ts b/index.d.ts index a077bdb571..7ec95e8678 100644 --- a/index.d.ts +++ b/index.d.ts @@ -412,9 +412,9 @@ export interface DashManifestModel { getCodec(adaptation: object, representationIndex: number, addResolutionInfo: boolean): string; - getCodecForPreselection(preselection: Preselection, adaptations: AdaptationSet[], addResolutionInfo: boolean): string; + getCodecForPreselection(preselection: Preselection, adaptations: AdaptationSet[], addResolutionInfo: boolean): string; - getContentProtectionByAdaptation(adaptation: object): any; + getContentProtectionByAdaptation(adaptation: object): any; getContentProtectionByManifest(manifest: object): any[]; @@ -426,7 +426,7 @@ export interface DashManifestModel { getEndTimeForLastPeriod(voPeriod: Period): number; - getEssentialProperties(element: object): DescriptorType | []; + getEssentialProperties(element: object): DescriptorType | []; getEventStreamForAdaptationSet(manifest: object, adaptation: object): EventStream[]; @@ -466,23 +466,23 @@ export interface DashManifestModel { getLoction(manifest: object): MpdLocation | []; - getMainAdaptationSetForPreselection(preselection: Preselection, adaptations: AdaptationSet[]): AdaptationSet | undefined; + getMainAdaptationSetForPreselection(preselection: Preselection, adaptations: AdaptationSet[]): AdaptationSet | undefined; - getCommonRepresentationForPreselection(preselection: Preselection, adaptations: AdaptationSet[]): Representation | undefined; + getCommonRepresentationForPreselection(preselection: Preselection, adaptations: AdaptationSet[]): Representation | undefined; - getManifestUpdatePeriod(manifest: object, latencyOfLastUpdate?: number): number; + getManifestUpdatePeriod(manifest: object, latencyOfLastUpdate?: number): number; getMimeType(adaptation: object): object; getMpd(manifest: object): Mpd; - getPatchLocation(manifest: object): PatchLocation[]; + getPatchLocation(manifest: object): PatchLocation[]; - getPreselectionIsTypeOf(preselection: Preselection, adaptations: AdaptationSet[], type: MediaType): boolean; + getPreselectionIsTypeOf(preselection: Preselection, adaptations: AdaptationSet[], type: MediaType): boolean; - getPreselectionsForPeriod(voPeriod: object): Preselection[]; + getPreselectionsForPeriod(voPeriod: object): Preselection[]; - getPeriodId(realPeriod: Period, i: number): string; + getPeriodId(realPeriod: Period, i: number): string; getProducerReferenceTimesForAdaptation(adaptation: object): any[]; @@ -518,7 +518,7 @@ export interface DashManifestModel { getSuggestedPresentationDelay(mpd: Mpd): any; - getSupplementalProperties(element: object): DescriptorType | []; + getSupplementalProperties(element: object): DescriptorType | []; getUTCTimingSources(manifest: object): any[]; @@ -677,12 +677,12 @@ export interface TimelineSegmentsGetter { * Dash - Vo **/ - export class AdaptationSet { - period: Period | null; - id: string | null; - index: number; - type: string | null; - } +export class AdaptationSet { + period: Period | null; + id: string | null; + index: number; + type: string | null; +} export interface ThroughputDictEntry { downloadTimeInMs: number; @@ -875,33 +875,33 @@ export interface IPssh { __text: string; } - export class MediaInfo { - KID: any | null; - accessibility: DescriptorType[] | null; - audioChannelConfiguration: DescriptorType[] | null; - bitrateList: Bitrate[]; - codec: string | null; - contentProtection: any | null; - essentialProperties: object; - id: string | null; - index: number | null; - isEmbedded: any | null; - isFragmented: any | null; - isPreselection: boolean; - isText: boolean; - labels: { text: string, lang?: string }[]; - lang: string | null; - mimeType: string | null; - representationCount: number; - roles: DescriptorType[] | null; - segmentAlignment: boolean; - selectionPriority: number; - streamInfo: StreamInfo | null; - subSegmentAlignment: boolean; - supplementalProperties: object; - type: MediaType | null; - viewpoint: DescriptorType[] | null; - } +export class MediaInfo { + KID: any | null; + accessibility: DescriptorType[] | null; + audioChannelConfiguration: DescriptorType[] | null; + bitrateList: Bitrate[]; + codec: string | null; + contentProtection: any | null; + essentialProperties: object; + id: string | null; + index: number | null; + isEmbedded: any | null; + isFragmented: any | null; + isPreselection: boolean; + isText: boolean; + labels: { text: string, lang?: string }[]; + lang: string | null; + mimeType: string | null; + representationCount: number; + roles: DescriptorType[] | null; + segmentAlignment: boolean; + selectionPriority: number; + streamInfo: StreamInfo | null; + subSegmentAlignment: boolean; + supplementalProperties: object; + type: MediaType | null; + viewpoint: DescriptorType[] | null; +} export interface Mpd { availabilityEndTime: number; @@ -953,25 +953,25 @@ export interface Period { start: number; } - export interface Preselection { - period: Period | null; - index: number; - id: string | null; - order: string | null; - preselectionComponents: any[]; - tag: string | null; - type: string | null; - } +export interface Preselection { + period: Period | null; + index: number; + id: string | null; + order: string | null; + preselectionComponents: any[]; + tag: string | null; + type: string | null; +} - export interface ProducerReferenceTime { - UTCTiming: any; - applicationSchme: any; - id: any; - inband: boolean; - presentationTime: number; - type: 'encoder'; - wallClockTime: any; - } +export interface ProducerReferenceTime { + UTCTiming: any; + applicationSchme: any; + id: any; + inband: boolean; + presentationTime: number; + type: 'encoder'; + wallClockTime: any; +} export interface Representation { absoluteIndex: number; @@ -1063,7 +1063,7 @@ export interface DashAdapter { areMediaInfosEqual(mInfoOne: MediaInfo, mInfoTwo: MediaInfo): boolean; - getMainAdaptationForType(type: MediaType, streamInfo: object): IAdaptation | null; + getMainAdaptationForType(type: MediaType, streamInfo: object): IAdaptation | null; getAllMediaInfoForType(streamInfo: object, type: MediaType, externalManifest?: object | null): any[]; @@ -1075,15 +1075,15 @@ export interface DashAdapter { getCodec(adaptation: object, representationIndex: number, addResolutionInfo: boolean): string; - getCodecForPreselection(preselection: Preselection, adaptations: AdaptationSet[]): string; + getCodecForPreselection(preselection: Preselection, adaptations: AdaptationSet[]): string; + + getCommonRepresentationForPreselection(preselection: Preselection, adaptations: AdaptationSet[]): Representation | null; - getCommonRepresentationForPreselection(preselection: Preselection, adaptations: AdaptationSet[]): Representation | null; - - getContentSteering(manifest: object): object; + getContentSteering(manifest: object): object; getDuration(externalManifest?: object): number; - getEssentialProperties(element: AdaptationSet | Representation | Preselection): DescriptorType | []; + getEssentialProperties(element: AdaptationSet | Representation | Preselection): DescriptorType | []; getEvent(eventBox: object, eventStreams: object, mediaStartTime: number, voRepresentation: object): null | Event; @@ -1107,11 +1107,11 @@ export interface DashAdapter { getLocation(manifest: object): MpdLocation[]; - getMainAdaptationForType(type: string, streamInfo: object): object; - - getMainAdaptationSetForPreselection(preselection: Preselection, adaptations: AdaptationSet[]): AdaptationSet | undefined; + getMainAdaptationForType(type: string, streamInfo: object): object; - getManifestUpdatePeriod(manifest: object, latencyOfLastUpdate?: number): number; + getMainAdaptationSetForPreselection(preselection: Preselection, adaptations: AdaptationSet[]): AdaptationSet | undefined; + + getManifestUpdatePeriod(manifest: object, latencyOfLastUpdate?: number): number; getMediaInfoForType(streamInfo: object, type: MediaType): MediaInfo | null; @@ -1121,9 +1121,9 @@ export interface DashAdapter { getPeriodById(id: string): Period | null; - getPreselectionIsTypeOf(preselection: Preselection, adaptations: AdaptationSet[], type: MediaType): boolean; + getPreselectionIsTypeOf(preselection: Preselection, adaptations: AdaptationSet[], type: MediaType): boolean; - getProducerReferenceTime(streamInfo: StreamInfo, mediaInfo: MediaInfo): object | []; + getProducerReferenceTime(streamInfo: StreamInfo, mediaInfo: MediaInfo): object | []; getPublishTime(manifest: object): number | null; @@ -1139,11 +1139,11 @@ export interface DashAdapter { getSuggestedPresentationDelay(): string; - getSupplementalCodecs(representation: Representation): Array; + getSupplementalCodecs(representation: Representation): Array; getUTCTimingSources(): any[]; - getVoRepresentations(mediaInfo: MediaInfo): Representation[]; + getVoRepresentations(mediaInfo: MediaInfo): Representation[]; isPatchValid(manifest: object, patch: object): boolean; @@ -1656,304 +1656,304 @@ export class ProtectionMediaInfo { contentProtection: any | null; } - export class MediaPlayerSettingClass { - debug?: { - logLevel?: LogLevel; - dispatchEvent?: boolean; - }; - streaming?: { - abandonLoadTimeout?: number, - wallclockTimeUpdateInterval?: number, - manifestUpdateRetryInterval?: number, - liveUpdateTimeThresholdInMilliseconds?: number, - cacheInitSegments?: boolean, - applyServiceDescription?: boolean, - applyProducerReferenceTime?: boolean, - applyContentSteering?: boolean, - enableManifestDurationMismatchFix?: boolean, - parseInbandPrft?: boolean, - enableManifestTimescaleMismatchFix?: boolean, - capabilities?: { - filterUnsupportedEssentialProperties?: boolean, - supportedEssentialProperties?: [ - { schemeIdUri?: string, value?: RegExp } - ], - useMediaCapabilitiesApi?: boolean, - filterHDRMetadataFormatEssentialProperties?: boolean, - filterVideoColorimetryEssentialProperties?: boolean - }, - events?: { - eventControllerRefreshDelay?: number, - deleteEventMessageDataTimeout?: number +export class MediaPlayerSettingClass { + debug?: { + logLevel?: LogLevel; + dispatchEvent?: boolean; + }; + streaming?: { + abandonLoadTimeout?: number, + wallclockTimeUpdateInterval?: number, + manifestUpdateRetryInterval?: number, + liveUpdateTimeThresholdInMilliseconds?: number, + cacheInitSegments?: boolean, + applyServiceDescription?: boolean, + applyProducerReferenceTime?: boolean, + applyContentSteering?: boolean, + enableManifestDurationMismatchFix?: boolean, + parseInbandPrft?: boolean, + enableManifestTimescaleMismatchFix?: boolean, + capabilities?: { + filterUnsupportedEssentialProperties?: boolean, + supportedEssentialProperties?: [ + { schemeIdUri?: string, value?: RegExp } + ], + useMediaCapabilitiesApi?: boolean, + filterHDRMetadataFormatEssentialProperties?: boolean, + filterVideoColorimetryEssentialProperties?: boolean + }, + events?: { + eventControllerRefreshDelay?: number, + deleteEventMessageDataTimeout?: number + } + timeShiftBuffer?: { + calcFromSegmentTimeline?: boolean + fallbackToSegmentTimeline?: boolean + }, + metrics?: { + maxListDepth?: number + }, + delay?: { + liveDelayFragmentCount?: number, + liveDelay?: number, + useSuggestedPresentationDelay?: boolean + }, + protection?: { + keepProtectionMediaKeys?: boolean, + keepProtectionMediaKeysMaximumOpenSessions?: number, + ignoreEmeEncryptedEvent?: boolean, + detectPlayreadyMessageFormat?: boolean, + ignoreKeyStatuses?: boolean, + }, + buffer?: { + enableSeekDecorrelationFix?: boolean, + fastSwitchEnabled?: boolean, + flushBufferAtTrackSwitch?: boolean, + reuseExistingSourceBuffers?: boolean, + bufferPruningInterval?: number, + bufferToKeep?: number, + bufferTimeAtTopQuality?: number, + bufferTimeAtTopQualityLongForm?: number, + initialBufferLevel?: number, + bufferTimeDefault?: number, + longFormContentDurationThreshold?: number, + stallThreshold?: number, + lowLatencyStallThreshold?: number, + useAppendWindow?: boolean, + setStallState?: boolean + avoidCurrentTimeRangePruning?: boolean + useChangeType?: boolean + mediaSourceDurationInfinity?: boolean + resetSourceBuffersForTrackSwitch?: boolean + syntheticStallEvents?: { + enabled?: boolean + ignoreReadyState?: boolean } - timeShiftBuffer?: { - calcFromSegmentTimeline?: boolean - fallbackToSegmentTimeline?: boolean - }, - metrics?: { - maxListDepth?: number - }, - delay?: { - liveDelayFragmentCount?: number, - liveDelay?: number, - useSuggestedPresentationDelay?: boolean - }, - protection?: { - keepProtectionMediaKeys?: boolean, - keepProtectionMediaKeysMaximumOpenSessions?: number, - ignoreEmeEncryptedEvent?: boolean, - detectPlayreadyMessageFormat?: boolean, - ignoreKeyStatuses?: boolean, - }, - buffer?: { - enableSeekDecorrelationFix?: boolean, - fastSwitchEnabled?: boolean, - flushBufferAtTrackSwitch?: boolean, - reuseExistingSourceBuffers?: boolean, - bufferPruningInterval?: number, - bufferToKeep?: number, - bufferTimeAtTopQuality?: number, - bufferTimeAtTopQualityLongForm?: number, - initialBufferLevel?: number, - bufferTimeDefault?: number, - longFormContentDurationThreshold?: number, - stallThreshold?: number, - lowLatencyStallThreshold?: number, - useAppendWindow?: boolean, - setStallState?: boolean - avoidCurrentTimeRangePruning?: boolean - useChangeType?: boolean - mediaSourceDurationInfinity?: boolean - resetSourceBuffersForTrackSwitch?: boolean - syntheticStallEvents?: { - enabled?: boolean - ignoreReadyState?: boolean - } - }, - gaps?: { - jumpGaps?: boolean, - jumpLargeGaps?: boolean, - smallGapLimit?: number, - threshold?: number, - enableSeekFix?: boolean, - enableStallFix?: boolean, - stallSeek?: number - }, - utcSynchronization?: { - enabled?: boolean, - useManifestDateHeaderTimeSource?: boolean, - backgroundAttempts?: number, - timeBetweenSyncAttempts?: number, - maximumTimeBetweenSyncAttempts?: number, - minimumTimeBetweenSyncAttempts?: number, - timeBetweenSyncAttemptsAdjustmentFactor?: number, - maximumAllowedDrift?: number, - enableBackgroundSyncAfterSegmentDownloadError?: boolean, - defaultTimingSource?: { - scheme?: string, - value?: string - } + }, + gaps?: { + jumpGaps?: boolean, + jumpLargeGaps?: boolean, + smallGapLimit?: number, + threshold?: number, + enableSeekFix?: boolean, + enableStallFix?: boolean, + stallSeek?: number + }, + utcSynchronization?: { + enabled?: boolean, + useManifestDateHeaderTimeSource?: boolean, + backgroundAttempts?: number, + timeBetweenSyncAttempts?: number, + maximumTimeBetweenSyncAttempts?: number, + minimumTimeBetweenSyncAttempts?: number, + timeBetweenSyncAttemptsAdjustmentFactor?: number, + maximumAllowedDrift?: number, + enableBackgroundSyncAfterSegmentDownloadError?: boolean, + defaultTimingSource?: { + scheme?: string, + value?: string + } + }, + scheduling?: { + defaultTimeout?: number, + lowLatencyTimeout?: number, + scheduleWhilePaused?: boolean + }, + text?: { + defaultEnabled?: boolean, + dispatchForManualRendering?: boolean, + extendSegmentedCues?: boolean, + imsc?: { + displayForcedOnlyMode?: boolean, + enableRollUp?: boolean }, - scheduling?: { - defaultTimeout?: number, - lowLatencyTimeout?: number, - scheduleWhilePaused?: boolean + webvtt?: { + customRenderingEnabled?: number + } + }, + liveCatchup?: { + maxDrift?: number; + playbackRate?: { + min?: number, + max?: number }, - text?: { - defaultEnabled?: boolean, - dispatchForManualRendering?: boolean, - extendSegmentedCues?: boolean, - imsc?: { - displayForcedOnlyMode?: boolean, - enableRollUp?: boolean + playbackBufferMin?: number, + enabled?: boolean + mode?: string + } + lastBitrateCachingInfo?: { + enabled?: boolean; + ttl?: number; + }; + lastMediaSettingsCachingInfo?: { + enabled?: boolean; + ttl?: number; + }; + saveLastMediaSettingsForCurrentStreamingSession?: boolean; + cacheLoadThresholds?: { + video?: number; + audio?: number; + }; + trackSwitchMode?: { + video?: TrackSwitchMode; + audio?: TrackSwitchMode; + }; + includePreselectionsInMediainfo?: boolean; + includePreselectionsForInitialTrackSelection?: boolean; + ignoreSelectionPriority?: boolean; + prioritizeRoleMain?: boolean; + assumeDefaultRoleAsMain?: boolean; + selectionModeForInitialTrack?: TrackSelectionMode; + fragmentRequestTimeout?: number; + fragmentRequestProgressTimeout?: number; + manifestRequestTimeout?: number; + retryIntervals?: { + 'MPD'?: number; + 'XLinkExpansion'?: number; + 'MediaSegment'?: number; + 'InitializationSegment'?: number; + 'BitstreamSwitchingSegment'?: number; + 'IndexSegment'?: number; + 'FragmentInfoSegment'?: number; + 'license'?: number; + 'other'?: number; + 'lowLatencyReductionFactor'?: number; + }; + retryAttempts?: { + 'MPD'?: number; + 'XLinkExpansion'?: number; + 'MediaSegment'?: number; + 'InitializationSegment'?: number; + 'BitstreamSwitchingSegment'?: number; + 'IndexSegment'?: number; + 'FragmentInfoSegment'?: number; + 'license'?: number; + 'other'?: number; + 'lowLatencyMultiplyFactor'?: number; + }; + abr?: { + limitBitrateByPortal?: boolean; + usePixelRatioInLimitBitrateByPortal?: boolean; + enableSupplementalPropertyAdaptationSetSwitching?: boolean, + rules?: { + throughputRule?: { + active?: boolean }, - webvtt?: { - customRenderingEnabled?: number - } - }, - liveCatchup?: { - maxDrift?: number; - playbackRate?: { - min?: number, - max?: number + bolaRule?: { + active?: boolean }, - playbackBufferMin?: number, - enabled?: boolean - mode?: string - } - lastBitrateCachingInfo?: { - enabled?: boolean; - ttl?: number; - }; - lastMediaSettingsCachingInfo?: { - enabled?: boolean; - ttl?: number; - }; - saveLastMediaSettingsForCurrentStreamingSession?: boolean; - cacheLoadThresholds?: { - video?: number; - audio?: number; - }; - trackSwitchMode?: { - video?: TrackSwitchMode; - audio?: TrackSwitchMode; - }; - includePreselectionsInMediainfo?: boolean; - includePreselectionsForInitialTrackSelection?: boolean; - ignoreSelectionPriority?: boolean; - prioritizeRoleMain?: boolean; - assumeDefaultRoleAsMain?: boolean; - selectionModeForInitialTrack?: TrackSelectionMode; - fragmentRequestTimeout?: number; - fragmentRequestProgressTimeout?: number; - manifestRequestTimeout?: number; - retryIntervals?: { - 'MPD'?: number; - 'XLinkExpansion'?: number; - 'MediaSegment'?: number; - 'InitializationSegment'?: number; - 'BitstreamSwitchingSegment'?: number; - 'IndexSegment'?: number; - 'FragmentInfoSegment'?: number; - 'license'?: number; - 'other'?: number; - 'lowLatencyReductionFactor'?: number; - }; - retryAttempts?: { - 'MPD'?: number; - 'XLinkExpansion'?: number; - 'MediaSegment'?: number; - 'InitializationSegment'?: number; - 'BitstreamSwitchingSegment'?: number; - 'IndexSegment'?: number; - 'FragmentInfoSegment'?: number; - 'license'?: number; - 'other'?: number; - 'lowLatencyMultiplyFactor'?: number; - }; - abr?: { - limitBitrateByPortal?: boolean; - usePixelRatioInLimitBitrateByPortal?: boolean; - enableSupplementalPropertyAdaptationSetSwitching?: boolean, - rules?: { - throughputRule?: { - active?: boolean - }, - bolaRule?: { - active?: boolean - }, - insufficientBufferRule?: { - active?: boolean, - parameters?: { - throughputSafetyFactor?: number, - segmentIgnoreCount?: number - } - }, - switchHistoryRule?: { - active?: boolean, - parameters?: { - sampleSize?: number, - switchPercentageThreshold?: number - } - }, - droppedFramesRule?: { - active?: boolean, - parameters?: { - minimumSampleSize?: number, - droppedFramesPercentageThreshold?: number - } - }, - abandonRequestsRule?: { - active?: boolean, - parameters?: { - abandonDurationMultiplier?: number, - minSegmentDownloadTimeThresholdInMs?: number, - minThroughputSamplesThreshold?: number - } + insufficientBufferRule?: { + active?: boolean, + parameters?: { + throughputSafetyFactor?: number, + segmentIgnoreCount?: number } - l2ARule?: { - active?: boolean + }, + switchHistoryRule?: { + active?: boolean, + parameters?: { + sampleSize?: number, + switchPercentageThreshold?: number } - loLPRule?: { - active?: boolean + }, + droppedFramesRule?: { + active?: boolean, + parameters?: { + minimumSampleSize?: number, + droppedFramesPercentageThreshold?: number } }, - throughput?: { - averageCalculationMode?: ThroughputCalculationModes, - lowLatencyDownloadTimeCalculationMode?: LowLatencyDownloadTimeCalculationModes, - useResourceTimingApi?: boolean, - useNetworkInformationApi?: { - xhr?: boolean, - fetch?: boolean - }, - useDeadTimeLatency?: boolean, - bandwidthSafetyFactor?: number, - sampleSettings: { - live?: number, - vod?: number, - enableSampleSizeAdjustment?: boolean, - decreaseScale?: number, - increaseScale?: number, - maxMeasurementsToKeep?: number, - averageLatencySampleAmount?: number, - }, - ewma: { - throughputSlowHalfLifeSeconds?: number, - throughputFastHalfLifeSeconds?: number, - latencySlowHalfLifeCount?: number, - latencyFastHalfLifeCount?: number, - weightDownloadTmeMultiplicationFactor?: number + abandonRequestsRule?: { + active?: boolean, + parameters?: { + abandonDurationMultiplier?: number, + minSegmentDownloadTimeThresholdInMs?: number, + minThroughputSamplesThreshold?: number } } - maxBitrate?: { - audio?: number; - video?: number; - }; - minBitrate?: { - audio?: number; - video?: number; - }; - initialBitrate?: { - audio?: number; - video?: number; - }; - autoSwitchBitrate?: { - audio?: boolean; - video?: boolean; + l2ARule?: { + active?: boolean } - }, - cmcd?: { - applyParametersFromMpd?: boolean, - enabled?: boolean, - sid?: string | null, - cid?: string | null, - rtp?: number | null, - rtpSafetyFactor?: number, - mode?: 'query' | 'header', - enabledKeys?: Array, - includeInRequests?: Array, - version?: number - }, - cmsd?: { - enabled?: boolean, - abr?: { - applyMb: boolean, - etpWeightRatio?: number + loLPRule?: { + active?: boolean } }, - defaultSchemeIdUri?: { - viewpoint?: string, - audioChannelConfiguration?: string, - role?: string, - accessibility?: string + throughput?: { + averageCalculationMode?: ThroughputCalculationModes, + lowLatencyDownloadTimeCalculationMode?: LowLatencyDownloadTimeCalculationModes, + useResourceTimingApi?: boolean, + useNetworkInformationApi?: { + xhr?: boolean, + fetch?: boolean + }, + useDeadTimeLatency?: boolean, + bandwidthSafetyFactor?: number, + sampleSettings: { + live?: number, + vod?: number, + enableSampleSizeAdjustment?: boolean, + decreaseScale?: number, + increaseScale?: number, + maxMeasurementsToKeep?: number, + averageLatencySampleAmount?: number, + }, + ewma: { + throughputSlowHalfLifeSeconds?: number, + throughputFastHalfLifeSeconds?: number, + latencySlowHalfLifeCount?: number, + latencyFastHalfLifeCount?: number, + weightDownloadTmeMultiplicationFactor?: number + } } - }; - errors?: { - recoverAttempts?: { - mediaErrorDecode?: number + maxBitrate?: { + audio?: number; + video?: number; + }; + minBitrate?: { + audio?: number; + video?: number; + }; + initialBitrate?: { + audio?: number; + video?: number; + }; + autoSwitchBitrate?: { + audio?: boolean; + video?: boolean; + } + }, + cmcd?: { + applyParametersFromMpd?: boolean, + enabled?: boolean, + sid?: string | null, + cid?: string | null, + rtp?: number | null, + rtpSafetyFactor?: number, + mode?: 'query' | 'header', + enabledKeys?: Array, + includeInRequests?: Array, + version?: number + }, + cmsd?: { + enabled?: boolean, + abr?: { + applyMb: boolean, + etpWeightRatio?: number } + }, + defaultSchemeIdUri?: { + viewpoint?: string, + audioChannelConfiguration?: string, + role?: string, + accessibility?: string + } + }; + errors?: { + recoverAttempts?: { + mediaErrorDecode?: number } } +} export interface MediaFinishedInformation { mediaTimeOfLastSignaledSegment: number @@ -2209,7 +2209,7 @@ export interface MediaPlayerClass { removeExternalSubtitleById(id: string): void; - removeExternalSubtitleByUrl(url:string): void; + removeExternalSubtitleByUrl(url: string): void; removeAllABRCustomRule(): void; @@ -2251,7 +2251,7 @@ export interface MediaPlayerClass { setProtectionData(value: ProtectionDataSet): void; - setRepresentationForTypeById(type: MediaType, id: string, forceReplace?: boolean): void; + setRepresentationForTypeById(type: MediaType, id: string, forceReplace?: boolean): void; setRepresentationForTypeByIndex(type: MediaType, index: number, forceReplace?: boolean): void; @@ -5885,7 +5885,7 @@ export interface StreamProcessor { getType(): string; - handleNewMediaInfo(mediaInfo: MediaInfo): void; + handleNewMediaInfo(mediaInfo: MediaInfo): void; initialize(mediaSource: MediaSource, hasVideoTrack: boolean, isFragmented: boolean): void; From fed0e23632cf5cc52d470e5287a2dc262a3090a7 Mon Sep 17 00:00:00 2001 From: Daniel Silhavy Date: Mon, 13 Oct 2025 10:44:56 +0200 Subject: [PATCH 4/4] Fix version number --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ca98acda66..926e3076e0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dashjs", - "version": "5.0.2", + "version": "5.1.0", "description": "A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers.", "author": "Dash Industry Forum", "license": "BSD-3-Clause",