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

Cancelling trick play at seekable ends requires too much accuracy #6421

Closed
david-hm-morgan opened this issue Apr 9, 2024 · 0 comments · Fixed by #6422 or #5987
Closed

Cancelling trick play at seekable ends requires too much accuracy #6421

david-hm-morgan opened this issue Apr 9, 2024 · 0 comments · Fixed by #6422 or #5987
Assignees
Labels
priority: P2 Smaller impact or easy workaround status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Milestone

Comments

@david-hm-morgan
Copy link
Contributor

david-hm-morgan commented Apr 9, 2024

Have you read the FAQ and checked for duplicate open issues?
Yes

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

N/A

What version of Shaka Player are you using?
v4.7.11-uncompiled

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

Can you reproduce the issue with the latest code from main?
TBD

Are you using the demo app or your own custom app?
The demo

Easier to reprod in own app with trick play rates > 8, e.g. 20

If custom app, can you reproduce the issue using our demo app?
N/A

What browser and OS are you using?
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36

For embedded devices (smart TVs, etc.), what model and firmware version are you using?
N/A

What are the manifest and license server URIs?
uri= https://livesim2.dashif.org/livesim2/utc_head/testpic_2s/Manifest.mpd

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

{"drm":{"retryParameters":{"maxAttempts":2,"baseDelay":1000,"backoffFactor":2,"fuzzFactor":0.5,"timeout":30000,"stallTimeout":5000,"connectionTimeout":10000},"servers":{},"clearKeys":{},"advanced":{},"delayLicenseRequestUntilPlayed":false,"persistentSessionOnlinePlayback":false,"persistentSessionsMetadata":[],"logLicenseExchange":false,"updateExpirationTime":1,"preferredKeySystems":[],"keySystemsMapping":{},"parseInbandPsshEnabled":false,"minHdcpVersion":"","ignoreDuplicateInitData":true},"manifest":{"retryParameters":{"maxAttempts":2,"baseDelay":1000,"backoffFactor":2,"fuzzFactor":0.5,"timeout":30000,"stallTimeout":5000,"connectionTimeout":10000},"availabilityWindowOverride":null,"disableAudio":false,"disableVideo":false,"disableText":false,"disableThumbnails":false,"defaultPresentationDelay":0,"segmentRelativeVttTiming":false,"raiseFatalErrorOnManifestUpdateRequestFailure":false,"dash":{"clockSyncUri":"","ignoreDrmInfo":false,"disableXlinkProcessing":false,"xlinkFailGracefully":false,"ignoreMinBufferTime":false,"autoCorrectDrift":true,"initialSegmentLimit":1000,"ignoreSuggestedPresentationDelay":false,"ignoreEmptyAdaptationSet":false,"ignoreMaxSegmentDuration":false,"keySystemsByURI":{"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e":"org.w3.clearkey","urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb":"com.adobe.primetime"},"sequenceMode":false,"enableAudioGroups":false,"multiTypeVariantsAllowed":true},"hls":{"ignoreTextStreamFailures":false,"ignoreImageStreamFailures":false,"defaultAudioCodec":"mp4a.40.2","defaultVideoCodec":"avc1.42E01E","ignoreManifestProgramDateTime":false,"mediaPlaylistFullMimeType":"video/mp2t; codecs=\\"avc1.42E01E, mp4a.40.2\\"","useSafariBehaviorForLive":true,"liveSegmentsDelay":3,"sequenceMode":true,"ignoreManifestTimestampsInSegmentsMode":false,"disableCodecGuessing":false,"allowLowLatencyByteRangeOptimization":true},"mss":{"sequenceMode":false,"keySystemsBySystemId":{"9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready"}}},"streaming":{"retryParameters":{"maxAttempts":2,"baseDelay":1000,"backoffFactor":2,"fuzzFactor":0.5,"timeout":30000,"stallTimeout":5000,"connectionTimeout":10000},"rebufferingGoal":2,"bufferingGoal":10,"bufferBehind":30,"ignoreTextStreamFailures":false,"alwaysStreamText":false,"startAtSegmentBoundary":false,"gapDetectionThreshold":0.5,"gapJumpTimerTime":0.25,"durationBackoff":1,"safeSeekOffset":5,"stallEnabled":true,"stallThreshold":1,"stallSkip":0.1,"useNativeHlsOnSafari":true,"inaccurateManifestTolerance":2,"lowLatencyMode":false,"autoLowLatencyMode":false,"forceHTTPS":false,"preferNativeHls":false,"updateIntervalSeconds":1,"dispatchAllEmsgBoxes":false,"observeQualityChanges":false,"maxDisabledTime":30,"parsePrftBox":false,"segmentPrefetchLimit":0,"liveSync":false,"liveSyncMaxLatency":1,"liveSyncPlaybackRate":1.1,"liveSyncMinLatency":0,"liveSyncMinPlaybackRate":1,"allowMediaSourceRecoveries":true,"minTimeBetweenRecoveries":5},"mediaSource":{"codecSwitchingStrategy":"smooth","sourceBufferExtraFeatures":"","forceTransmux":false,"insertFakeEncryptionInInit":true},"offline":{"usePersistentLicense":true,"numberOfParallelDownloads":5},"abr":{"enabled":true,"useNetworkInformation":true,"defaultBandwidthEstimate":1000000,"switchInterval":8,"bandwidthUpgradeTarget":0.85,"bandwidthDowngradeTarget":0.95,"restrictions":{"minWidth":0,"maxWidth":null,"minHeight":0,"maxHeight":null,"minPixels":0,"maxPixels":null,"minFrameRate":0,"maxFrameRate":null,"minBandwidth":0,"maxBandwidth":null},"advanced":{"minTotalBytes":128000,"minBytes":16000,"fastHalfLife":2,"slowHalfLife":5},"restrictToElementSize":false,"restrictToScreenSize":false,"ignoreDevicePixelRatio":false,"clearBufferSwitch":false,"safeMarginSwitch":0},"autoShowText":3,"preferredAudioLanguage":"en","preferredAudioLabel":"","preferredTextLanguage":"en","preferredVariantRole":"","preferredTextRole":"","preferredAudioChannelCount":2,"preferredVideoHdrLevel":"AUTO","preferredVideoLayout":"","preferredVideoLabel":"","preferredVideoCodecs":[],"preferredAudioCodecs":[],"preferForcedSubs":false,"preferSpatialAudio":false,"preferredDecodingAttributes":[],"restrictions":{"minWidth":0,"maxWidth":null,"minHeight":0,"maxHeight":null,"minPixels":0,"maxPixels":null,"minFrameRate":0,"maxFrameRate":null,"minBandwidth":0,"maxBandwidth":null},"playRangeStart":0,"playRangeEnd":null,"cmcd":{"enabled":false,"sessionId":"","contentId":"","useHeaders":false},"cmsd":{"enabled":true,"applyMaximumSuggestedBitrate":true,"estimatedThroughputWeightRatio":0.5},"lcevc":{"enabled":false,"dynamicPerformanceScaling":true,"logLevel":0,"drawLogo":false},"ads":{"customPlayheadTracker":false}}

What did you do?

  1. Ensure trick play controls are enabled in UI config
  2. Play live stream
  3. Pause it for a short time so it drifts back from live edge
  4. click FFWD until 8x trick play is engaged
  5. wait for current time to reach live edge

What did you expect to happen?
As soon as reach live edge, player cancels trick play and resumes at 1x at live edge (see #6100)

What actually happened?

Play head knocks on the door of the live edge multiple times before surpassing it.
I added a log point to see how close it was getting, within a few ms multiple times before cancelling trick play:
(in this image within 62ms before needing another cycle)
image

With 20x trick play I saw at least 16 or more attempts to drop out of trick play:
image

I have a proposed fix for this please assign me so I can follow through with a pull request.

@avelad avelad added type: bug Something isn't working correctly priority: P2 Smaller impact or easy workaround labels Apr 9, 2024
@avelad avelad added this to the v5.0 milestone Apr 9, 2024
david-hm-morgan added a commit to david-hm-morgan/shaka-player that referenced this issue Apr 9, 2024
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Jun 8, 2024
@shaka-project shaka-project locked as resolved and limited conversation to collaborators Jun 8, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
priority: P2 Smaller impact or easy workaround status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Projects
None yet
3 participants