From c9a29d57972ebf559b54f09fe598a1f0df810a92 Mon Sep 17 00:00:00 2001 From: Jamie Stackhouse Date: Wed, 30 Jan 2019 21:23:57 -0400 Subject: [PATCH 1/2] Clear audio tick interval when we stopLoad. --- src/controller/audio-stream-controller.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/controller/audio-stream-controller.js b/src/controller/audio-stream-controller.js index 0a13ce03e6b..cd1dfdff7a0 100644 --- a/src/controller/audio-stream-controller.js +++ b/src/controller/audio-stream-controller.js @@ -111,6 +111,7 @@ class AudioStreamController extends BaseStreamController { this.demuxer.destroy(); this.demuxer = null; } + this.clearInterval(); this.state = State.STOPPED; } From 3eaaa40fc947de6970133a277b5dcaa72a52148a Mon Sep 17 00:00:00 2001 From: Jamie Stackhouse Date: Sun, 3 Feb 2019 14:23:55 -0400 Subject: [PATCH 2/2] Keep track of alt audio in buffer controller. --- src/controller/buffer-controller.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/controller/buffer-controller.ts b/src/controller/buffer-controller.ts index a5eb9c5c8bc..08a90296161 100644 --- a/src/controller/buffer-controller.ts +++ b/src/controller/buffer-controller.ts @@ -46,6 +46,9 @@ class BufferController extends EventHandler { // signals that mediaSource should have endOfStream called private _needsEos: boolean = false; + // Track whether the parsed manifest signaled alternate audio + private _altAudio: boolean = false; + // this is optional because this property is removed from the class sometimes public audioTimestampOffset?: number; @@ -138,6 +141,7 @@ class BufferController extends EventHandler { // sourcebuffers will be created all at once when the expected nb of tracks will be reached // in case alt audio is not used, only one BUFFER_CODEC event will be fired from main stream controller // it will contain the expected nb of source buffers, no need to compute it + this._altAudio = data.altAudio; this.bufferCodecEventsExpected = data.altAudio ? 2 : 1; logger.log(`${this.bufferCodecEventsExpected} bufferCodec event(s) expected`); } @@ -203,6 +207,7 @@ class BufferController extends EventHandler { this.flushRange = []; this.segments = []; this.appended = 0; + this.bufferCodecEventsExpected = this._altAudio ? 2 : 1; } this.hls.trigger(Events.MEDIA_DETACHED);