Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Timeshift won't use all the DVR window after version 3.0.0 onwards #8001

Open
makisp opened this issue Feb 3, 2025 · 1 comment
Open

Timeshift won't use all the DVR window after version 3.0.0 onwards #8001

makisp opened this issue Feb 3, 2025 · 1 comment
Labels
component: DASH The issue involves the MPEG DASH manifest format status: waiting on response Waiting on a response from the reporter(s) of the issue type: bug Something isn't working correctly
Milestone

Comments

@makisp
Copy link

makisp commented Feb 3, 2025

Have you read the FAQ and checked for duplicate open issues?
Yes, there is nothing similar to it.

If the problem is related to FairPlay, have you read the tutorial?
It is not.

What version of Shaka Player are you using?
4.12.6 but all version >=v3.0.0 are affected.
NOTE: All versions prior to v3.0.0 work as expected in timeshift

Can you reproduce the issue with our latest release version?
Yes.

Can you reproduce the issue with the latest code from main?
Yes.

Are you using the demo app or your own custom app?
Custom app.

If custom app, can you reproduce the issue using our demo app?
Yes.

What browser and OS are you using?
Latest Chrome / Windows & Tizen / WebOS.

For embedded devices (smart TVs, etc.), what model and firmware version are you using?
Any model year reproduces this issue.

What are the manifest and license server URIs?
<?xml version="1.0" encoding="UTF-8"?> <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:cenc="urn:mpeg:cenc:2013" xmlns:mspr="urn:microsoft:playready" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="dynamic" availabilityStartTime="2025-01-16T09:52:02Z" minimumUpdatePeriod="PT24H" minBufferTime="PT4.0S" maxSegmentDuration="PT4.0S" publishTime="2025-02-03T08:46:24Z" timeShiftBufferDepth="PT7200S" suggestedPresentationDelay="PT4.0S" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"> <Period start="PT0S" id="1"> <AdaptationSet mimeType="video/mp4" startWithSAP="1" segmentAlignment="true" par="16:9" templateParsed="true"> <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/> <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95"><cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAADBHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAuTkAgAAAQABANoCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgAxADIAcgBkAEIALwBMAFoANgBrAGkAUwBzAHYATwBSAGkAVQBSAHMAZQBBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AFMATQBjAG0AeABiAHQAYgBEAGsAVQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGMAeQB0AGEALgBsAGkAdgBlAC4AbwB0AHQALgBpAHIAZABlAHQAbwAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQBTAGUAcgB2AGUAcgAvAHAAbABhAHkAcgBlAGEAZAB5AC8AdgAxAC8AYwB5AHQAYQAvAGEAYwBxAHUAaQByAGUATABpAGMAZQBuAHMAZQA/AGMAbwBuAHQAZQBuAHQASQBkAD0AMQAxADgANAA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh></ContentProtection> <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAAAPXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAB0IARIQB91q19nySOqSsvORiURseCIEMTE4NDiIDg==</cenc:pssh></ContentProtection> <SegmentTemplate timescale="10000000" presentationTimeOffset="0" duration="40000000" startNumber="1" media="$RepresentationID$_Segment-$Number$.m4v?playseek=20250203064630-&amp;timezone=UTC&amp;hw_dash=1&amp;servicetype=2&amp;accountinfo=Ax7J5sDyidhcdJtbkaCYH4ajbjFXeV7r0rrIUUrQGrbUuSqMtwanSeJ%2Fgzi6UkMkhQV0Vh9iYNvieHQ2utfGvf6iZQQz9to7WVweEsLf40pbKu7O3MZBNTxe71cqNihlf3ead484de5497225df7d0b04eaf8264%3A20250203084626%3AUTC%2C10001000582195%2C79.166.153.38%2C20250203084626%2Curn%3AHuawei%3AliveTV%3AXTV216459%2C10001000582195%2C-1%2C0%2C1%2C%2C%2C7%2C600101%2C%2C%2C4%2C10000092801556%2C0%2C10000017284556%2C10001000581569%2C%2C%2C2%2C1%2C55644397%2CEND&amp;GuardEncType=2&amp;rrsip=195.14.144.114&amp;zoneoffset=0&amp;limitflux=-1&amp;limitdur=-1&amp;tenantId=35701&amp;online=1738572386" initialization="20250116095150_$RepresentationID$_init.m4i?playseek=20250203064630-&amp;timezone=UTC&amp;hw_dash=1&amp;servicetype=2&amp;accountinfo=Ax7J5sDyidhcdJtbkaCYH4ajbjFXeV7r0rrIUUrQGrbUuSqMtwanSeJ%2Fgzi6UkMkhQV0Vh9iYNvieHQ2utfGvf6iZQQz9to7WVweEsLf40pbKu7O3MZBNTxe71cqNihlf3ead484de5497225df7d0b04eaf8264%3A20250203084626%3AUTC%2C10001000582195%2C79.166.153.38%2C20250203084626%2Curn%3AHuawei%3AliveTV%3AXTV216459%2C10001000582195%2C-1%2C0%2C1%2C%2C%2C7%2C600101%2C%2C%2C4%2C10000092801556%2C0%2C10000017284556%2C10001000581569%2C%2C%2C2%2C1%2C55644397%2CEND&amp;GuardEncType=2&amp;rrsip=195.14.144.114&amp;zoneoffset=0&amp;limitflux=-1&amp;limitdur=-1&amp;tenantId=35701&amp;online=1738572386"/> <Representation width="960" height="540" frameRate="25" codecs="avc1.640029" scanType="progressive" sar="1:1" id="01item" bandwidth="2000000"/> <Representation width="1280" height="720" frameRate="25" codecs="avc1.640029" scanType="progressive" sar="1:1" id="02item" bandwidth="3000000"/> <Representation width="1920" height="1080" frameRate="25" codecs="avc1.640029" scanType="progressive" sar="1:1" id="03item" bandwidth="4000000"/> </AdaptationSet> <AdaptationSet mimeType="audio/mp4" startWithSAP="1" lang="eng" segmentAlignment="true" templateParsed="true"> <ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"/> <ContentProtection schemeIdUri="urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95"><cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAADBHBzc2gAAAAAmgTweZhAQoarkuZb4IhflQAAAuTkAgAAAQABANoCPABXAFIATQBIAEUAQQBEAEUAUgAgAHgAbQBsAG4AcwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAEQAUgBNAC8AMgAwADAANwAvADAAMwAvAFAAbABhAHkAUgBlAGEAZAB5AEgAZQBhAGQAZQByACIAIAB2AGUAcgBzAGkAbwBuAD0AIgA0AC4AMAAuADAALgAwACIAPgA8AEQAQQBUAEEAPgA8AFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBFAFkATABFAE4APgAxADYAPAAvAEsARQBZAEwARQBOAD4APABBAEwARwBJAEQAPgBBAEUAUwBDAFQAUgA8AC8AQQBMAEcASQBEAD4APAAvAFAAUgBPAFQARQBDAFQASQBOAEYATwA+ADwASwBJAEQAPgAxADIAcgBkAEIALwBMAFoANgBrAGkAUwBzAHYATwBSAGkAVQBSAHMAZQBBAD0APQA8AC8ASwBJAEQAPgA8AEMASABFAEMASwBTAFUATQA+AFMATQBjAG0AeABiAHQAYgBEAGsAVQA9ADwALwBDAEgARQBDAEsAUwBVAE0APgA8AEwAQQBfAFUAUgBMAD4AaAB0AHQAcABzADoALwAvAGMAeQB0AGEALgBsAGkAdgBlAC4AbwB0AHQALgBpAHIAZABlAHQAbwAuAGMAbwBtAC8AbABpAGMAZQBuAHMAZQBTAGUAcgB2AGUAcgAvAHAAbABhAHkAcgBlAGEAZAB5AC8AdgAxAC8AYwB5AHQAYQAvAGEAYwBxAHUAaQByAGUATABpAGMAZQBuAHMAZQA/AGMAbwBuAHQAZQBuAHQASQBkAD0AMQAxADgANAA8AC8ATABBAF8AVQBSAEwAPgA8AC8ARABBAFQAQQA+ADwALwBXAFIATQBIAEUAQQBEAEUAUgA+AA==</cenc:pssh></ContentProtection> <ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh xmlns:cenc="urn:mpeg:cenc:2013">AAAAPXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAB0IARIQB91q19nySOqSsvORiURseCIEMTE4NDiIDg==</cenc:pssh></ContentProtection> <SegmentTemplate timescale="10000000" presentationTimeOffset="0" duration="40000000" startNumber="1" media="$RepresentationID$_Segment-$Number$.m4a?playseek=20250203064630-&amp;timezone=UTC&amp;hw_dash=1&amp;servicetype=2&amp;accountinfo=Ax7J5sDyidhcdJtbkaCYH4ajbjFXeV7r0rrIUUrQGrbUuSqMtwanSeJ%2Fgzi6UkMkhQV0Vh9iYNvieHQ2utfGvf6iZQQz9to7WVweEsLf40pbKu7O3MZBNTxe71cqNihlf3ead484de5497225df7d0b04eaf8264%3A20250203084626%3AUTC%2C10001000582195%2C79.166.153.38%2C20250203084626%2Curn%3AHuawei%3AliveTV%3AXTV216459%2C10001000582195%2C-1%2C0%2C1%2C%2C%2C7%2C600101%2C%2C%2C4%2C10000092801556%2C0%2C10000017284556%2C10001000581569%2C%2C%2C2%2C1%2C55644397%2CEND&amp;GuardEncType=2&amp;rrsip=195.14.144.114&amp;zoneoffset=0&amp;limitflux=-1&amp;limitdur=-1&amp;tenantId=35701&amp;online=1738572386" initialization="20250116095150_$RepresentationID$_init.m4i?playseek=20250203064630-&amp;timezone=UTC&amp;hw_dash=1&amp;servicetype=2&amp;accountinfo=Ax7J5sDyidhcdJtbkaCYH4ajbjFXeV7r0rrIUUrQGrbUuSqMtwanSeJ%2Fgzi6UkMkhQV0Vh9iYNvieHQ2utfGvf6iZQQz9to7WVweEsLf40pbKu7O3MZBNTxe71cqNihlf3ead484de5497225df7d0b04eaf8264%3A20250203084626%3AUTC%2C10001000582195%2C79.166.153.38%2C20250203084626%2Curn%3AHuawei%3AliveTV%3AXTV216459%2C10001000582195%2C-1%2C0%2C1%2C%2C%2C7%2C600101%2C%2C%2C4%2C10000092801556%2C0%2C10000017284556%2C10001000581569%2C%2C%2C2%2C1%2C55644397%2CEND&amp;GuardEncType=2&amp;rrsip=195.14.144.114&amp;zoneoffset=0&amp;limitflux=-1&amp;limitdur=-1&amp;tenantId=35701&amp;online=1738572386"/> <Representation audioSamplingRate="48000" codecs="mp4a.40.2" id="04item" bandwidth="95000"/> </AdaptationSet> </Period> </MPD>

What configuration are you using? What is the output of player.getNonDefaultConfiguration()?

{
    "drm": {
        "retryParameters": {
            "baseDelay": 300,
            "fuzzFactor": 0.2,
            "connectionTimeout": 20000
        },
        "servers": {
            "com.widevine.alpha": "our license server"
        },
        "advanced": {
            "com.widevine.alpha": {
                "distinctiveIdentifierRequired": false,
                "persistentStateRequired": false,
                "videoRobustness": "SW_SECURE_CRYPTO",
                "audioRobustness": "SW_SECURE_CRYPTO",
                "sessionType": "",
                "serverCertificateUri": "",
                "individualizationServer": ""
            }
        }
    },
    "manifest": {
        "dash": {
            "clockSyncUri": "https://time.akamai.com?iso&amp;ms"
        }
    },
    "abr": {
        "switchInterval": 2
    },
    "preferredAudioLanguage": "en",
    "preferredTextLanguage": "el"
}

What did you do?

  • Live content is playing
  • Seek backwards into timeshift buffered depth

What did you expect to happen?

  • To be able to seek and properly play the full timeshift window (in this case 7200s)

What actually happened?

  • It seeks backwards to a max of ~70mins. If you go backwards from there, it always starts playing from the 70min frame. It jumps there because it thinks there is a gap.
  • It seems like Shaka cannot buffer the full timeshift window and keep around 70mins from live
  • By using debug version i get this error every time i seek backwards of ~70min:
    Jumping forward 852.2477959999815 seconds because of gap before start time of 616777.679337

Steps we tried

  • Checked manifest file and everything seems OK to us
  • Shaka seems to understand the timeshift window as the output of seekRange() seems correct
  • Tried playing with streaming parameters to no difference at all

NOTE: All versions prior to v3.0.0 work as expected in timeshift

Some breaking changes seem to have taken place from v3.0.0.
Can you help us better understand the issue?
Is it manifest related?

Thank you!

@makisp makisp added the type: bug Something isn't working correctly label Feb 3, 2025
@avelad avelad added the component: DASH The issue involves the MPEG DASH manifest format label Feb 3, 2025
@shaka-bot shaka-bot added this to the v4.14 milestone Feb 3, 2025
@avelad
Copy link
Member

avelad commented Feb 6, 2025

try to change manifest.dash.initialSegmentLimit to a higher value: https://shaka-player-demo.appspot.com/docs/api/shaka.extern.html#.DashManifestConfiguration

The maximum number of initial segments to generate for SegmentTemplate with fixed-duration segments. This is limited to avoid excessive memory consumption with very large timeShiftBufferDepth values.
Defaults to 1000.

@avelad avelad added the status: waiting on response Waiting on a response from the reporter(s) of the issue label Feb 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: DASH The issue involves the MPEG DASH manifest format status: waiting on response Waiting on a response from the reporter(s) of the issue type: bug Something isn't working correctly
Projects
None yet
Development

No branches or pull requests

3 participants