StreamController
Extends:
Constructor Summary
Public Constructor | ||
public |
|
Member Summary
Public Members | ||
public |
|
|
public |
|
|
public |
|
|
public |
|
|
public |
|
|
public |
config: * |
|
public get |
currentLevel: * |
|
public |
demuxer: * |
|
public |
|
|
public |
fragCurrent: * |
|
public |
fragLastKbps: * |
|
public |
|
|
public |
fragPlaying: * |
|
public |
fragPrevious: * |
|
public |
|
|
public |
|
|
public |
|
|
public |
level: * |
|
public |
|
|
public |
levels: * |
|
public get |
|
|
public set |
|
|
public |
|
|
public |
media: * |
|
public |
mediaBuffer: * |
|
public get |
|
|
public get |
nextLevel: * |
|
public |
|
|
public |
|
|
public |
onvended: * |
|
public |
onvseeked: * |
|
public |
onvseeking: * |
|
public |
|
|
public |
|
|
public |
retryDate: * |
|
public |
|
|
public |
|
|
public |
|
|
public |
|
|
public set |
|
|
public get |
state: * |
|
public |
stats: * |
|
public |
videoBuffer: * |
Private Members | ||
private |
|
|
private |
_state: * |
Method Summary
Public Methods | ||
public |
computeLivePosition(sliding: *, levelDetails: *): * |
|
public |
doTick() |
|
public |
flushMainBuffer(startOffset: *, endOffset: *) |
|
public |
followingBufferedFrag(frag: *): * |
|
public |
getBufferedFrag(position: *): * |
|
public |
|
|
public |
on immediate level switch end, after new fragment has been buffered:
|
|
public |
try to switch ASAP without breaking video playback: in order to ensure smooth but quick level switching, we need to find the next flushable buffer range we should take into account new segment fetch time |
|
public |
onAudioTrackSwitched(data: *) |
|
public |
onAudioTrackSwitching(data: *) |
|
public |
onBufferAppended(data: *) |
|
public |
onBufferCreated(data: *) |
|
public |
|
|
public |
onError(data: *) |
|
public |
|
|
public |
onFragLoaded(data: *) |
|
public |
onFragParsed(data: *) |
|
public |
onFragParsingData(data: *) |
|
public |
onFragParsingInitSegment(data: *) |
|
public |
|
|
public |
|
|
public |
|
|
public |
onLevelLoaded(data: *) |
|
public |
|
|
public |
onManifestParsed(data: *) |
|
public |
onMediaAttached(data: *) |
|
public |
|
|
public |
|
|
public |
|
|
public |
|
|
public |
startLoad(startPosition: *) |
|
public |
stopLoad() |
|
public |
|
Private Methods | ||
private |
|
|
private |
|
|
private |
|
|
private |
|
|
private |
_ensureFragmentAtLivePoint(levelDetails: *, bufferEnd: *, start: *, end: *, fragPrevious: *, fragments: *, fragLen: *): * |
|
private |
_fetchPayloadOrEos(pos: *, bufferInfo: *, levelDetails: *) |
|
private |
_findFragment(start: *, fragPrevious: *, fragLen: *, fragments: *, bufferEnd: *, end: *, levelDetails: *): * |
|
private |
_findFragmentByPDT(fragments: *, PDTValue: *): * |
|
private |
_findFragmentBySN(fragPrevious: *, fragments: *, bufferEnd: *, end: *): * |
|
private |
_loadFragmentOrKey(frag: *, level: *, levelDetails: *, pos: *, bufferEnd: *) |
|
private |
_reduceMaxBufferLength(minLength: *): boolean |
Inherited Summary
From class EventHandler | ||
public |
|
|
public |
hls: * |
|
public |
|
|
public |
destroy() |
|
public |
isEventHandler(): * |
|
public |
onEvent(event: *, data: *) arguments: event (string), data (any) |
|
public |
onEventGeneric(event: *, data: *) |
|
public |
|
|
public |
|
|
public |
|
|
public |
|
From class TaskLoop | ||
private |
|
|
private |
|
|
public |
|
|
public |
destroy() |
|
public abstract |
doTick() For subclass to implement task logic |
|
public |
|
|
public |
setInterval(millis: number): boolean |
|
public |
|
Public Constructors
Public Members
public audioCodecSwitch: * source
public config: * source
public get currentLevel: * source
public demuxer: * source
public fragCurrent: * source
public fragLastKbps: * source
public fragPlaying: * source
public fragPrevious: * source
public fragmentTracker: * source
public lastCurrentTime: * source
public level: * source
public levelLastLoaded: * source
public levels: * source
public get liveSyncPosition: * source
public set liveSyncPosition source
public media: * source
public mediaBuffer: * source
public get nextBufferedFrag: * source
public get nextLevel: * source
public nextLoadPosition: * source
public onvended: * source
public onvseeked: * source
public onvseeking: * source
public previouslyPaused: * source
public retryDate: * source
public startPosition: * source
public set state source
public get state: * source
public stats: * source
public videoBuffer: * source
Private Members
private _liveSyncPosition: * source
private _state: * source
Public Methods
public computeLivePosition(sliding: *, levelDetails: *): * source
Params:
Name | Type | Attribute | Description |
sliding | * | ||
levelDetails | * |
Return:
* |
public flushMainBuffer(startOffset: *, endOffset: *) source
Params:
Name | Type | Attribute | Description |
startOffset | * | ||
endOffset | * |
public followingBufferedFrag(frag: *): * source
Params:
Name | Type | Attribute | Description |
frag | * |
Return:
* |
public getBufferedFrag(position: *): * source
Params:
Name | Type | Attribute | Description |
position | * |
Return:
* |
public immediateLevelSwitch() source
public immediateLevelSwitchEnd() source
on immediate level switch end, after new fragment has been buffered:
- nudge video decoder by slightly adjusting video currentTime (if currentTime buffered)
- resume the playback if needed
public nextLevelSwitch() source
try to switch ASAP without breaking video playback: in order to ensure smooth but quick level switching, we need to find the next flushable buffer range we should take into account new segment fetch time
public onAudioTrackSwitched(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onAudioTrackSwitching(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onBufferAppended(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onBufferCreated(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onBufferFlushed() source
public onError(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onFragLoadEmergencyAborted() source
public onFragLoaded(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onFragParsed(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onFragParsingData(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onFragParsingInitSegment(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onKeyLoaded() source
public onLevelLoaded(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onManifestLoading() source
public onManifestParsed(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onMediaAttached(data: *) source
Params:
Name | Type | Attribute | Description |
data | * |
public onMediaDetaching() source
public onMediaEnded() source
public onMediaSeeked() source
public onMediaSeeking() source
public startLoad(startPosition: *) source
Params:
Name | Type | Attribute | Description |
startPosition | * |
public stopLoad() source
public swapAudioCodec() source
Private Methods
private _checkAppendedParsed() source
private _checkBuffer() source
private _checkFragmentChanged() source
private _doTickIdle() source
private _ensureFragmentAtLivePoint(levelDetails: *, bufferEnd: *, start: *, end: *, fragPrevious: *, fragments: *, fragLen: *): * source
Params:
Name | Type | Attribute | Description |
levelDetails | * | ||
bufferEnd | * | ||
start | * | ||
end | * | ||
fragPrevious | * | ||
fragments | * | ||
fragLen | * |
Return:
* |
private _fetchPayloadOrEos(pos: *, bufferInfo: *, levelDetails: *) source
Params:
Name | Type | Attribute | Description |
pos | * | ||
bufferInfo | * | ||
levelDetails | * |
private _findFragment(start: *, fragPrevious: *, fragLen: *, fragments: *, bufferEnd: *, end: *, levelDetails: *): * source
Params:
Name | Type | Attribute | Description |
start | * | ||
fragPrevious | * | ||
fragLen | * | ||
fragments | * | ||
bufferEnd | * | ||
end | * | ||
levelDetails | * |
Return:
* |
private _findFragmentByPDT(fragments: *, PDTValue: *): * source
Params:
Name | Type | Attribute | Description |
fragments | * | ||
PDTValue | * |
Return:
* |
private _findFragmentBySN(fragPrevious: *, fragments: *, bufferEnd: *, end: *): * source
Params:
Name | Type | Attribute | Description |
fragPrevious | * | ||
fragments | * | ||
bufferEnd | * | ||
end | * |
Return:
* |
private _loadFragmentOrKey(frag: *, level: *, levelDetails: *, pos: *, bufferEnd: *) source
Params:
Name | Type | Attribute | Description |
frag | * | ||
level | * | ||
levelDetails | * | ||
pos | * | ||
bufferEnd | * |