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

Emit warnings in log + visible warnings in sample player when playback issues are possible due to nonconforming content #3339

Closed
sandersaares opened this issue Jul 17, 2020 · 2 comments
Assignees
Milestone

Comments

@sandersaares
Copy link
Member

sandersaares commented Jul 17, 2020

It is normal that a player attempts to play back even abnormal content, for some definitions of abnormal. After all, a player is not a validation tool.

Yet, many people often use the player as a validation tool! "It plays, therefore it is valid" is a very widespread attitude. As DASH-IF, we should be doing our utmost to educate the DASH community on best practices, so this situation is suboptimal.

I propose dash.js be modified to better guide users toward creating good content as follows.

Mechanism for educating users

When dash.js detects that content does not follow DASH-IF guidelines (including those inherited from DASH or other specs/standards):

  1. A warning is emitted in the log.
  2. A "conformance violation" event is raised via the API.

The warning text should briefly describe the violation and a call-to-action to use the DASH-IF conformance tooling for additional validation, something like:

Warning: (Description of violation). You may experience playback failures. For detailed validation use https://conformance.dashif.org/

In case of missing UTCTiming element, for example, it would be:

Warning: No UTCTiming element is present in the manifest. You may experience playback failures. For detailed validation use https://conformance.dashif.org/

In the DASH-IF reference player, the "conformance violation" event is hooked up to a visual non-modal warning message, to make it as obvious as possible to developers.

image

What is a conformance violation?

Profile signaling in the MPD is not reliable. People do not mark the right profile. So we cannot know what the intent really is. All we know from dash.js perspective is "hmmm this might get you in trouble". So let's roll with that.

Warn on any violation of any should/shall statement in relevant MPEG standards, DASH-IF guidelines and partner organization guidelines (e.g. DVB) that may cause issues for dash.js playback. The idea is not to validate conformance, the idea is to educate on aspects we know are problematic, regardless of profiling and intent of content author.

@dsilhavy dsilhavy added this to the 3.1.4 milestone Jul 20, 2020
@dsilhavy dsilhavy self-assigned this Jul 20, 2020
@dsilhavy dsilhavy modified the milestones: 3.2.0, 3.2.1 Nov 18, 2020
@dsilhavy
Copy link
Collaborator

This is a good idea. Aligning with @sandersaares proposal, we should do the following:

  • Add a new event like CONFORMANCE_VALIDATION.
  • This event is dispatched whenever we are seeing a conformance error.
  • The event can be picked up by every application
  • In case of the reference client implementation we register for that event and show a notification.

@dsilhavy
Copy link
Collaborator

Implemented in #3522 . Additional violation warnings will be added over time.

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

2 participants