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

XML text subtitles (bg)color not applied to doubly nested cues #3521

Closed
david-hm-morgan opened this issue Jul 13, 2021 · 2 comments
Closed
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

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

What version of Shaka Player are you using?
v3.1.1

Can you reproduce the issue with our latest release version?
Yes
https://shaka-player-demo.appspot.com/demo/#audiolang=en-US;textlang=en-US;uilang=en-US;asset=https://livesim.dashif.org/dash/vod/testpic_2s/xml_subs.mpd;panel=CUSTOM%20CONTENT;build=uncompiled

Can you reproduce the issue with the latest code from master?
Yes

Are you using the demo app or your own custom app?
Shaka Demo but also own custom app

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

What browser and OS are you using?
Windows 10 & Mac Big Sur
Chrome 91

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

What are the manifest and license server URIs?

[Clear] https://livesim.dashif.org/dash/vod/testpic_2s/xml_subs.mpd

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

Default configuration

What did you do?

Play this stream.
Enable English Captions
View the subtitles rendered at 0h0m1s to 0h0m2s

What did you expect to happen?
Should see Blue background Yellow text
image

What actually happened?

White text on black
image

Please assign this to me as I have written a failing UT and have a proposed fix for it.
It is a side effect of changes to XML parsing changes in recent versions.

@joeyparrish joeyparrish added type: bug Something isn't working correctly and removed needs triage labels Jul 13, 2021
@joeyparrish joeyparrish added this to the v3.2 milestone Jul 13, 2021
@joeyparrish joeyparrish added the priority: P2 Smaller impact or easy workaround label Jul 13, 2021
@joeyparrish joeyparrish modified the milestones: v3.2, v3.3 Jul 13, 2021
@avelad
Copy link
Member

avelad commented Nov 3, 2021

Note: the same issue occurs with font-size

@david-hm-morgan
Copy link
Contributor Author

Hi @TheModMaker
thanks for the elegant solution to this issue. I just retested with the nightly demo

I wonder if there is a small tweak needed to deal with the extra piece of background fill that appears to the right of the first of a two line cue.
image

@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Jan 2, 2022
@shaka-project shaka-project locked and limited conversation to collaborators Jan 2, 2022
joeyparrish pushed a commit that referenced this issue Jan 5, 2022
First, the positioning of cues was incorrect.  We need to explicitly
set all the position attributes when we position elements with the
"absolute" position.

Second, if we position a text <span> manually, the background will fill
the whole region.  So to keep the background wrapping the text, we need
to add another <span> for the text.

Third, the background and font color should not be set on every <span>
element since it won't allow parent cues to set the inherited value.
So this moves the defaults to the top-level text element and allows
parent cue elements to override this.  It also would make app CSS
easier to override.  Because background color isn't inherited through
CSS, the default is set in JavaScript instead.

Fixes #3521
Fixes #3600
Closes #3713

Backported to v3.1.x

Change-Id: I45fc88dcac4a0a062e1474087f24c80d98eef619
joeyparrish pushed a commit that referenced this issue Jan 5, 2022
First, the positioning of cues was incorrect.  We need to explicitly
set all the position attributes when we position elements with the
"absolute" position.

Second, if we position a text <span> manually, the background will fill
the whole region.  So to keep the background wrapping the text, we need
to add another <span> for the text.

Third, the background and font color should not be set on every <span>
element since it won't allow parent cues to set the inherited value.
So this moves the defaults to the top-level text element and allows
parent cue elements to override this.  It also would make app CSS
easier to override.  Because background color isn't inherited through
CSS, the default is set in JavaScript instead.

Fixes #3521
Fixes #3600
Closes #3713

Backported to v3.2.x

Change-Id: I45fc88dcac4a0a062e1474087f24c80d98eef619
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
4 participants