[Tizen 2020] Problem with stream start for CSAI streams
Hi, I get quite strange behaviour only on Tizen 2020 and CSAI streams with ads, the stream doesn't start, it gets stuck in seeking.
Logic flow looks like that:
- Get main stream info from API
- Get ads info from API
- Add main video element and load
- If ads then stop main video, remove video element and start ad break
- Add ad video element, set ad source etc.
- Run ads...
- End ad break
- Remove ad video element
- Add main video element
- Set main stream and reload
Only Tizen 2020 have this issue, tried with Tizen 2018/2019, Webos 2018-2020, etc. and it works perfectly there.
Data from console:
416555.00 [log] AVSB: pushing segment video video P: 1 A: 3 R: video=2439078 S: init console.ts:40 416570.70 [log] SBI: receiving order to push data to the SourceBuffer video console.ts:40 416585.00 [log] SBI: updating codec video/mp4;codecs="avc1.4D401F" console.ts:40 416599.30 [log] SBI: re-setting
appendWindowEndtoInfinityconsole.ts:40 416612.10 [log] SBI: pushing segment video console.ts:40 416627.70 [log] SQ: no more init segment to request. Cancelling queue. video console.ts:40 416643.30 [log] SF: Segment request cancelled video P: 1 A: 3 R: video=2439078 S: init console.ts:40 416657.10 [log] SF: Segment request ended with success video P: 1 A: 3 R: video=2439078 S: init console.ts:40 ---- {appConfig: {…}, playbackConfig: {…}, userConfig: {…}, trackers: {…}, features: {…}, …} console.ts:40 [WebPlayerManagerDebugger] ⏩ Player state is "SEEKING" console.ts:40 416754.50 [log] API: current media element state tick event internal-seeking position 0.001 seeking 1 internalSeek true rebuffering false freezing false ended false paused true playbackRate 1 readyState 3 pendingPosition null console.ts:40 416762.00 [log] API: current playback timeline: 0.00|==1.92==|1.92 ^0.001 seeking console.ts:40 416766.00 [log] SI: synchronizing video buffered ranges: 0-1.92 console.ts:40 416770.40 [log] SI: synchronizing audio buffered ranges: 0-3.806 console.ts:40 416777.00 [log] ABR: Choosing representation with bandwidth estimation. 2439078 video=2439078 console.ts:40 416790.00 [info] MMSI: Merging 2 segments together for perf audio console.ts:40 416793.90 [log] SBI: pushing segment audio console.ts:40 416797.50 [log] SI: Pushing segment strictly after previous one. audio 1.92 1.886 console.ts:40 416808.20 [log] SI: synchronizing audio buffered ranges: 0-3.806 console.ts:40 416819.10 [log] SI: found true buffered end audio 3.806 3.84 console.ts:40 416830.50 [log] SI: current audio inventory timeline: 0.00|A|3.84 [A] P: 1 || R: audio=128000(128000) console.ts:40 416874.20 [log] AVSB: receiving order to push data to the SourceBuffer video video P: 1 A: 3 R: video=2439078 S: 1.92-1.92 console.ts:40 416889.20 [log] AVSB: pushing segment video video P: 1 A: 3 R: video=2439078 S: 1.92-1.92 console.ts:40 416906.70 [log] SBI: receiving order to push data to the SourceBuffer video console.ts:40 416920.90 [log] SF: Segment request ended with success video P: 1 A: 3 R: video=2439078 S: 1.92-1.92 console.ts:40 416933.40 [log] ABR: New last stable representation 2439078 console.ts:40 416946.50 [log] SF: Beginning request video P: 1 A: 3 R: video=2439078 S: 3.84-1.92 console.ts:40 416964.10 [log] XHR: Sending GET https://stream-od.akamaized.net/pfr/18334daf-dbd1-4313-8196-5d75f64c070c/mp4/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2.ism/dash/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2-video=2439078-2304.dash type=arraybuffer to=30 cto=15 console.ts:40 417021.40 [info] Init: Updating duration 2635.349333333333 console.ts:40 417025.10 [log] SBI: settingappendWindowEnd2635.46 console.ts:40 417028.30 [log] SBI: pushing segment video console.ts:40 417031.10 [log] SI: synchronizing video buffered ranges: 0-1.92 console.ts:40 417043.50 [log] ABR: Incrementing blocking raise in BufferBasedChooser due to unstable quality 15000 console.ts:40 417055.50 [log] ABR: Choosing representation with bandwidth estimation. 2439078 video=2439078 console.ts:40 417080.10 [log] Stream: new video bitrate estimate 5485318.035061888 console.ts:40 417107.00 [log] SI: Pushing segment strictly after previous one. audio 3.84 3.84 console.ts:40 417122.80 [log] SI: synchronizing audio buffered ranges: 0-7.646 console.ts:40 417133.70 [log] SI: range end too far from expected end audio 7.646 5.76 console.ts:40 417147.30 [log] SI: current audio inventory timeline: 0.00|A|5.76 [A] P: 1 || R: audio=128000(128000) console.ts:40 417157.80 [log] SI: Pushing segment strictly after previous one. audio 5.76 5.76 console.ts:40 417172.50 [log] SI: synchronizing audio buffered ranges: 0-7.646 console.ts:40 417184.10 [log] SI: found true buffered end audio 7.646 7.68 console.ts:40 417196.90 [log] SI: current audio inventory timeline: 0.00|A|7.68 [A] P: 1 || R: audio=128000(128000) console.ts:40 417279.60 [info] Init: Updating duration 2635.349333333333 console.ts:40 417284.10 [log] SI: Pushing segment strictly after previous one. video 1.92 1.92 console.ts:40 417296.50 [log] SI: synchronizing video buffered ranges: 0-3.84 console.ts:40 417309.40 [log] SI: found true buffered end video 3.84 3.84 console.ts:40 417327.00 [log] SI: current video inventory timeline: 0.00|A|1.92 ~ 1.92|B|3.84 [A] P: 1 || R: video=5460642(5460642) [B] P: 1 || R: video=2439078(2439078) console.ts:40 417343.00 [log] ABR: Incrementing blocking raise in BufferBasedChooser due to unstable quality 15000 console.ts:40 417355.90 [log] ABR: Choosing representation with bandwidth estimation. 2439078 video=2439078 console.ts:40 417413.90 [log] AVSB: receiving order to push data to the SourceBuffer video video P: 1 A: 3 R: video=2439078 S: 3.84-1.92 console.ts:40 417428.10 [log] AVSB: pushing segment video video P: 1 A: 3 R: video=2439078 S: 3.84-1.92 console.ts:40 417450.40 [log] SBI: receiving order to push data to the SourceBuffer video console.ts:40 417470.70 [log] SBI: pushing segment video console.ts:40 417487.00 [log] SF: Segment request ended with success video P: 1 A: 3 R: video=2439078 S: 3.84-1.92 console.ts:40 417500.30 [log] SF: Beginning request audio P: 1 A: 1 R: audio=128000 S: 7.68-1.92 console.ts:40 417519.00 [log] XHR: Sending GET https://stream-od.akamaized.net/pfr/18334daf-dbd1-4313-8196-5d75f64c070c/mp4/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2.ism/dash/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2-audio=128000-368640.dash type=arraybuffer to=30 cto=15 console.ts:40 417536.80 [log] SF: Beginning request video P: 1 A: 3 R: video=2439078 S: 5.76-1.92 console.ts:40 417565.20 [log] XHR: Sending GET https://stream-od.akamaized.net/pfr/18334daf-dbd1-4313-8196-5d75f64c070c/mp4/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2.ism/dash/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2-video=2439078-3456.dash type=arraybuffer to=30 cto=15 console.ts:40 417613.80 [log] AVSB: receiving order to push data to the SourceBuffer audio audio P: 1 A: 1 R: audio=128000 S: 7.68-1.92 console.ts:40 417629.30 [log] AVSB: pushing segment audio audio P: 1 A: 1 R: audio=128000 S: 7.68-1.92 console.ts:40 417643.80 [log] SBI: receiving order to push data to the SourceBuffer audio console.ts:40 417658.50 [log] SBI: pushing segment audio console.ts:40 417673.30 [log] SF: Segment request ended with success audio P: 1 A: 1 R: audio=128000 S: 7.68-1.92 console.ts:40 417708.70 [log] SI: Pushing segment strictly after previous one. audio 7.68 7.68 console.ts:40 417722.50 [log] SI: synchronizing audio buffered ranges: 0-9.566 console.ts:40 417736.30 [log] SI: found true buffered end audio 9.566 9.6 console.ts:40 417750.20 [log] SI: current audio inventory timeline: 0.00|A|9.60 [A] P: 1 || R: audio=128000(128000) console.ts:40 417765.40 [info] Init: Updating duration 2635.349333333333 console.ts:40 417769.50 [log] SI: Pushing segment strictly after previous one. video 3.84 3.84 console.ts:40 417783.40 [log] SI: synchronizing video buffered ranges: 0-5.76 console.ts:40 417796.30 [log] SI: found true buffered end video 5.76 5.76 console.ts:40 417809.60 [log] SI: current video inventory timeline: 0.00|A|1.92 ~ 1.92|B|5.76 [A] P: 1 || R: video=5460642(5460642) [B] P: 1 || R: video=2439078(2439078) console.ts:40 417822.60 [log] ABR: Incrementing blocking raise in BufferBasedChooser due to unstable quality 15000 console.ts:40 417835.30 [log] ABR: Choosing representation with bandwidth estimation. 2439078 video=2439078 console.ts:40 417848.60 [log] Stream: new video bitrate estimate 5666000.161762986 console.ts:40 417865.70 [log] API: current media element state tick event timeupdate position 0.001 seeking 1 internalSeek true rebuffering false freezing false ended false paused true playbackRate 1 readyState 3 pendingPosition null console.ts:40 417874.20 [log] API: current playback timeline: 0.00|==5.76==|5.76 ^0.001 timeupdate console.ts:40 417877.60 [log] SI: synchronizing video buffered ranges: 0-5.76 console.ts:40 417882.00 [log] SI: current video inventory timeline: 0.00|A|1.92 ~ 1.92|B|5.76 [A] P: 1 || R: video=5460642(5460642) [B] P: 1 || R: video=2439078(2439078) console.ts:40 417886.70 [log] SI: synchronizing audio buffered ranges: 0-9.566 console.ts:40 417891.80 [log] SI: current audio inventory timeline: 0.00|A|9.57 [A] P: 1 || R: audio=128000(128000) console.ts:40 417896.30 [log] ABR: Choosing representation with bandwidth estimation. 2439078 video=2439078 console.ts:40 418078.10 [log] AVSB: receiving order to push data to the SourceBuffer video video P: 1 A: 3 R: video=2439078 S: 5.76-1.92 console.ts:40 418094.00 [log] AVSB: pushing segment video video P: 1 A: 3 R: video=2439078 S: 5.76-1.92 console.ts:40 418108.40 [log] SBI: receiving order to push data to the SourceBuffer video console.ts:40 418125.90 [log] SBI: pushing segment video console.ts:40 418159.60 [log] SF: Segment request ended with success video P: 1 A: 3 R: video=2439078 S: 5.76-1.92 console.ts:40 418180.10 [log] SF: Beginning request video P: 1 A: 3 R: video=2439078 S: 7.68-1.92 console.ts:40 418199.50 [log] XHR: Sending GET https://stream-od.akamaized.net/pfr/18334daf-dbd1-4313-8196-5d75f64c070c/mp4/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2.ism/dash/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2-video=2439078-4608.dash type=arraybuffer to=30 cto=15 console.ts:40 418290.30 [info] Init: Updating duration 2635.349333333333 console.ts:40 418302.80 [log] SI: Pushing segment strictly after previous one. video 5.76 5.76 console.ts:40 418332.30 [log] SI: synchronizing video buffered ranges: 0-7.68 console.ts:40 418351.10 [log] SI: found true buffered end video 7.68 7.68 console.ts:40 418373.80 [log] SI: current video inventory timeline: 0.00|A|1.92 ~ 1.92|B|7.68 [A] P: 1 || R: video=5460642(5460642) [B] P: 1 || R: video=2439078(2439078) console.ts:40 418393.10 [log] ABR: Incrementing blocking raise in BufferBasedChooser due to unstable quality 15000 console.ts:40 418411.30 [log] ABR: Choosing representation with bandwidth estimation. 2439078 video=2439078 console.ts:40 418432.40 [log] Stream: new video bitrate estimate 6680164.379487849 console.ts:40 418759.80 [log] AVSB: receiving order to push data to the SourceBuffer video video P: 1 A: 3 R: video=2439078 S: 7.68-1.92 console.ts:40 418777.50 [log] AVSB: pushing segment video video P: 1 A: 3 R: video=2439078 S: 7.68-1.92 console.ts:40 418793.10 [log] SBI: receiving order to push data to the SourceBuffer video console.ts:40 418808.40 [log] SBI: pushing segment video console.ts:40 418825.70 [log] SF: Segment request ended with success video P: 1 A: 3 R: video=2439078 S: 7.68-1.92 console.ts:40 418840.80 [log] SF: Beginning request audio P: 1 A: 1 R: audio=128000 S: 9.6-1.92 console.ts:40 418859.40 [log] XHR: Sending GET https://stream-od.akamaized.net/pfr/18334daf-dbd1-4313-8196-5d75f64c070c/mp4/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2.ism/dash/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2-audio=128000-460800.dash type=arraybuffer to=30 cto=15 console.ts:40 418882.10 [log] SF: Beginning request video P: 1 A: 3 R: video=2439078 S: 9.6-1.92 console.ts:40 418911.30 [log] XHR: Sending GET https://stream-od.akamaized.net/pfr/18334daf-dbd1-4313-8196-5d75f64c070c/mp4/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2.ism/dash/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2-video=2439078-5760.dash type=arraybuffer to=30 cto=15 console.ts:40 418966.10 [log] AVSB: receiving order to push data to the SourceBuffer audio audio P: 1 A: 1 R: audio=128000 S: 9.6-1.92 console.ts:40 418983.80 [log] AVSB: pushing segment audio audio P: 1 A: 1 R: audio=128000 S: 9.6-1.92 console.ts:40 418999.70 [log] SBI: receiving order to push data to the SourceBuffer audio console.ts:40 419015.70 [log] SBI: pushing segment audio console.ts:40 419033.10 [log] SF: Segment request ended with success audio P: 1 A: 1 R: audio=128000 S: 9.6-1.92 console.ts:40 419051.40 [log] SF: Beginning request audio P: 1 A: 1 R: audio=128000 S: 11.52-1.92 console.ts:40 419071.40 [log] XHR: Sending GET https://stream-od.akamaized.net/pfr/18334daf-dbd1-4313-8196-5d75f64c070c/mp4/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2.ism/dash/18334daf_dbd1_4313_8196_5d75f64c070c(1815711_ISMUSP)_v2-audio=128000-552960.dash type=arraybuffer to=30 cto=15 console.ts:40 419109.60 [log] API: current media element state tick event timeupdate position 0.001 seeking 1 internalSeek true rebuffering false freezing false ended false paused true playbackRate 1 readyState 3 pendingPosition null console.ts:40 419115.50 [log] API: current playback timeline: 0.00|==7.72==|7.72 ^0.001 timeupdate console.ts:40 419120.10 [log] SI: synchronizing video buffered ranges: 0-7.72 console.ts:40 419124.20 [log] SI: current video inventory timeline: 0.00|A|1.92 ~ 1.92|B|7.72 [A] P: 1 || R: video=5460642(5460642) [B] P: 1 || R: video=2439078(2439078) console.ts:40 419128.80 [log] SI: synchronizing audio buffered ranges: 0-9.566 console.ts:40 419132.60 [log] SI: current audio inventory timeline: 0.00|A|9.57 [A] P: 1 || R: audio=128000(128000) console.ts:40 419138.10 [info] ABR: exit starvation mode. console.ts:40 419142.40 [log] ABR: Choosing representation with bandwidth estimation. 2439078 video=2439078 console.ts:40 419147.20 [log] Stream: new video bitrate estimate 7441010.275431079 console.ts:40 419174.90 [log] SI: Pushing segment strictly after previous one. audio 9.6 9.566 console.ts:40 419190.20 [log] SI: synchronizing audio buffered ranges: 0-11.486 console.ts:40 419205.50 [log] SI: found true buffered end audio 11.486 11.52 console.ts:40 419222.20 [log] SI: current audio inventory timeline: 0.00|A|11.52 [A] P: 1 || R: audio=128000(128000) console.ts:40 419258.00 [info] Init: Updating duration 2635.349333333333 console.ts:40 419261.80 [log] SI: Segment pushed updates end of previous one video 7.68 9.6 5.76 7.72 console.ts:40 419277.90 [log] SI: synchronizing video buffered ranges: 0-9.6 console.ts:40 419291.60 [log] SI: calculating buffered end of contiguous segment video 7.68 7.68 console.ts:40 419305.00 [log] SI: found true buffered end video 9.6 9.6 console.ts:40 419320.70 [log] SI: current video inventory timeline: 0.00|A|1.92 ~ 1.92|B|9.60 [A] P: 1 || R: video=5460642(5460642) [B] P: 1 || R: video=2439078(2439078)
Here are some events that we get, it's quite strange that it gets duration change and also emptied 🤔
We also have shaka player integration and it works ok there.