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

HLS - Embed Closed Captions not shown when seeking back #4641

Closed
g-meola opened this issue Nov 1, 2022 · 2 comments · Fixed by #4643 or #4424
Closed

HLS - Embed Closed Captions not shown when seeking back #4641

g-meola opened this issue Nov 1, 2022 · 2 comments · Fixed by #4643 or #4424
Assignees
Labels
component: captions/subtitles The issue involves captions or subtitles component: HLS The issue involves Apple's HLS manifest format 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

@g-meola
Copy link
Contributor

g-meola commented Nov 1, 2022

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

What version of Shaka Player are you using?
4.2.2

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?
Chrome, Edge in Windows 10

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

What are the manifest and license server URIs?

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,"logLicenseExchange":false,"updateExpirationTime":1,"preferredKeySystems":[],"keySystemsMapping":{},"parseInbandPsshEnabled":false},"manifest":{"retryParameters":{"maxAttempts":3,"baseDelay":1000,"backoffFactor":2,"fuzzFactor":0.5,"timeout":30000,"stallTimeout":5000,"connectionTimeout":10000},"availabilityWindowOverride":100000,"disableAudio":false,"disableVideo":false,"disableText":false,"disableThumbnails":false,"defaultPresentationDelay":0,"segmentRelativeVttTiming":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"}},"hls":{"ignoreTextStreamFailures":false,"ignoreImageStreamFailures":false,"defaultAudioCodec":"mp4a.40.2","defaultVideoCodec":"avc1.42E01E","ignoreManifestProgramDateTime":false,"mediaPlaylistFullMimeType":"video/mp2t; codecs="avc1.42E01E, mp4a.40.2""}},"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":true,"startAtSegmentBoundary":false,"gapDetectionThreshold":0.5,"durationBackoff":1,"forceTransmuxTS":false,"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},"offline":{"usePersistentLicense":true,"numberOfParallelDownloads":5},"abr":{"enabled":false,"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,"ignoreDevicePixelRatio":false},"preferredAudioLanguage":"","preferredTextLanguage":"eng","preferredVariantRole":"","preferredTextRole":"","preferredAudioChannelCount":2,"preferredVideoCodecs":[],"preferredAudioCodecs":[],"preferForcedSubs":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}}

What did you do?
Using an HLS stream with CEA-X08 captions, select this from the captions list and seek forward and backward.

What did you expect to happen?
See the captions.

What actually happened?
If you seek forward yo see the captions, but if you then seek backward, the captions are not shown.

@g-meola g-meola added the type: bug Something isn't working correctly label Nov 1, 2022
@github-actions github-actions bot added this to the v4.3 milestone Nov 1, 2022
@avelad avelad added component: HLS The issue involves Apple's HLS manifest format component: captions/subtitles The issue involves captions or subtitles labels Nov 1, 2022
@avelad
Copy link
Member

avelad commented Nov 1, 2022

I used https://livesim.dashif.org/dash/vod/testpic_2s/cea608.mpd and I can not reproduce the error, can you share your manifest? Thanks!

@g-meola
Copy link
Contributor Author

g-meola commented Nov 1, 2022

It happens with HLS streams, when using mux.js to transmux. I'm working in a PR. I have a manifest, but it has a problem with the INSTREAM-ID for the cea708 cc.

@avelad avelad added the priority: P2 Smaller impact or easy workaround label Nov 1, 2022
avelad pushed a commit that referenced this issue Nov 3, 2022
For HLS non native, Shaka gets the captions from mux.js transmuxer. This
 works until you seek back before the buffered range. In mux.js there is
 a condition that ignores a caption if this belongs to a DTS that is
behind the latest it already has parsed.

To handle seeks, it adds a reset method that is called by the
transmuxer.resetCaptions() method in mp4\transmuxer.js in mux.js. But
Shaka Player is not calling it. So I added the resetCaptions() method to
the mux.js extern definition and we called it in the appendBuffer method
in media_source_engine.js before sending the data to transmux and only
if the seeked parameter is True.

Closes #4641
joeyparrish pushed a commit that referenced this issue Nov 8, 2022
For HLS non native, Shaka gets the captions from mux.js transmuxer. This
 works until you seek back before the buffered range. In mux.js there is
 a condition that ignores a caption if this belongs to a DTS that is
behind the latest it already has parsed.

To handle seeks, it adds a reset method that is called by the
transmuxer.resetCaptions() method in mp4\transmuxer.js in mux.js. But
Shaka Player is not calling it. So I added the resetCaptions() method to
the mux.js extern definition and we called it in the appendBuffer method
in media_source_engine.js before sending the data to transmux and only
if the seeked parameter is True.

Closes #4641
joeyparrish pushed a commit that referenced this issue Nov 8, 2022
For HLS non native, Shaka gets the captions from mux.js transmuxer. This
 works until you seek back before the buffered range. In mux.js there is
 a condition that ignores a caption if this belongs to a DTS that is
behind the latest it already has parsed.

To handle seeks, it adds a reset method that is called by the
transmuxer.resetCaptions() method in mp4\transmuxer.js in mux.js. But
Shaka Player is not calling it. So I added the resetCaptions() method to
the mux.js extern definition and we called it in the appendBuffer method
in media_source_engine.js before sending the data to transmux and only
if the seeked parameter is True.

Closes #4641
@github-actions github-actions bot added the status: archived Archived and locked; will not be updated label Jan 2, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 2, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
component: captions/subtitles The issue involves captions or subtitles component: HLS The issue involves Apple's HLS manifest format 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
2 participants