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

DASH-IF player cannot properly render ttml with multiple lines #1340

Closed
faiyeah opened this issue Apr 19, 2016 · 7 comments
Closed

DASH-IF player cannot properly render ttml with multiple lines #1340

faiyeah opened this issue Apr 19, 2016 · 7 comments
Milestone

Comments

@faiyeah
Copy link

faiyeah commented Apr 19, 2016

Issue observed:
In 1.5.1 player, 2 out of 4 lines are rendered in the player. (as attached as 1_5_1_2_lines_only)
In 2.1.0 player, 1 and a half lines out of 4 lines are rendered in the player. (as attached as 2_1_0_1_and_a_half_line_only)

Expected behavior:
All 4 lines are fully rendered and displayed in the player.

Player that can reproduce the issue:
http://dashif.org/reference/players/javascript/v1.5.1/samples/dash-if-reference-player/
http://dashif.org/reference/players/javascript/v2.1.0/samples/dash-if-reference-player/

Content that can reproduce the issue:
(as attached as 4lines.zip)

Thanks!
Ryan Chan
1_5_1_2_lines_only
2_1_0_1_and_a_half_line_only
4lines.zip

@davemevans
Copy link
Contributor

dash.js certainly can render multi-line TTML:

However, the TTML parser in dash.js was originally designed as an EBU-TT-D [1] parser which means its only supports a constrained subset of TTML. I assume something in your TTML does not meet these constraints.

[1] https://tech.ebu.ch/docs/tech/tech3380.pdf

@nigelmegitt
Copy link
Contributor

nigelmegitt commented Apr 19, 2016

Can you give us access to the TTML content? [Update: I see that it's visible in the zip file]

@faiyeah
Copy link
Author

faiyeah commented Apr 19, 2016

Hi Nigel,

The generated dash content is already attached and submitted with the ticket. Please review.

We are pretty sure the content conforms to specification, just the decoder has some limitations in properly rendering the ttml. Please advise.

Many thanks.

Best regards,
Ryan Chan

  • sent from my iPhone

On 19 Apr 2016, at 16:39, Nigel Megitt notifications@github.com wrote:

Can you give us access to the TTML content?


You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

@nigelmegitt
Copy link
Contributor

Thanks Ryan, I've found it.

It certainly is non-compliant against EBU-TT-D and doesn't validate against the schema, and this is related to the symptom in this case.

The TTML here defines region style attributes on a style element that is then referenced from the region using the style's xml:id. Strictly in EBU-TT-D this is not permitted, because region-only style attributes are prohibited from being placed in style elements; the code acts strictly here and prunes out the prohibited style attributes so they never get through to the region.

This is an area where EBU-TT-D is stricter than TTML; this syntactical approach (of referencing style elements from a region and putting region-applicable style elements in those style elements) is permitted in TTML.

Arguably a more forgiving implementation would not prune out the prohibited style attributes but would honour them anyway, thus making it more broadly applicable to TTML in general.

However I don't understand why the behaviour you're seeing is occurring - the default/initial values for extent and origin would apply in the absence of other style attributes, and text should not fall off the bottom in that case. There's possibly something else at play too.

@faiyeah
Copy link
Author

faiyeah commented Apr 20, 2016

Thanks for fixing the issue, David.
I have ported the fix to master branch and verified the fix is working for me.
Do you have plan to merge it to master branch, so that the fix would appear in nightly build of DASH-IF player?

Thanks for quick resolution of the issue.

Ryan Chan

@davemevans
Copy link
Contributor

Great, thanks for the confirmation.

Assuming no one else howls, @AkamaiDASH will need to do the merge. I imagine it will happen once 2.1.1 has been released which will probably be in the next couple of days.

@faiyeah
Copy link
Author

faiyeah commented Apr 22, 2016

Got it. Thanks a lot :)

dsparacio pushed a commit that referenced this issue Apr 25, 2016
Fixes #1340 - make TTMLParser more permissive of non-EBU-TT-D
@davemevans davemevans added this to the 2.2.0 milestone Jul 6, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants