All users were logged out of Bugzilla on October 13th, 2018
Bug 1039149 (DASH-IF)

Tracking bug for DASH-IF player support for EME/MSE

RESOLVED WORKSFORME

Status

()

P5
normal
RESOLVED WORKSFORME
4 years ago
3 years ago

People

(Reporter: kentuckyfriedtakahe, Unassigned)

Tracking

(Depends on: 1 bug, Blocks: 1 bug)

Trunk
x86_64
Linux
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox44 verified, firefox45 verified, firefox46 verified, firefox47 verified)

Details

(URL)

Attachments

(2 obsolete attachments)

The dashif player doesn't work in the same configuration that is working for YouTube on MP4. See also 

https://bugzilla.mozilla.org/show_bug.cgi?id=778617#c20

Comment 1

4 years ago
The DASH IF uses the dash.js project https://github.com/Dash-Industry-Forum/dash.js as its reference player. We're eager to get it working with Firefox. It is built to play back DASH presentations conforming to the DASH-AVC/264 guidelines http://dashif.org/w/2013/08/DASH-AVC-264-v2.00-hd-mca.pdf (essentially ISOBMFF containers, H.264 video codec, HE-AACv2 audio, SMPTE-TT captions, ondemand and live profiles, common encryption). Conforming test vectors can be found at http://dashif.org/testvectors/. If there are any questions, reach us via our list server at https://groups.google.com/d/forum/dashjs. Bugs against dash.js can be filed at https://github.com/Dash-Industry-Forum/dash.js/issues?state=open. Identify yourself as Mozilla and we'll hop on it :)

Cheers

Will
(on behalf of Microsoft, Akamai, Digital Primates, Google and the other dash.js contributors).
Summary: Support needed for dashif player → Tracking bug for dashif player support
Depends on: 1040550
(In reply to Will Law from comment #1)
> Conforming test vectors can be found at http://dashif.org/testvectors/.

YouTube plays successfully with patch and prefs in 1040550 although the adaptive is broken as per bug 1024858. I tried the Single Resolution Multi-Rate Test Vector 1 (among others) and it sat with a buffer length at 0.

I will investigate this further next week. However I would also welcome any clues that you can give me.
Created attachment 8459972 [details] [diff] [review]
Allow streams with missing ftyp atom
Assignee: nobody → ajones
Status: NEW → ASSIGNED
Unassigning because this is a tracking bug.
Assignee: ajones → nobody
Status: ASSIGNED → NEW

Comment 6

4 years ago
@AnthonyJones - The ftyp should be present in the init segments but is not required in the media segments. Can you reference a url that shows an example of content that is missing the 'ftyp' atom and we'll look in to it?
Blocks: 1032660
Depends on: 1044713
Depends on: 1044714
Depends on: 1045909
(In reply to Will Law from comment #6)
> @AnthonyJones - The ftyp should be present in the init segments but is not
> required in the media segments. Can you reference a url that shows an
> example of content that is missing the 'ftyp' atom and we'll look in to it?

The first test vector starts with a 'moov' atom. http://dashif.org/reference/players/javascript/1.0.0/index.html?mpd=http://dash.edgesuite.net/dash264/TestCases/1a/netflix/exMPD_BIP_TC1.mpd
Depends on: 1045915
Created attachment 8464326 [details] [diff] [review]
Add a pref to test streams with a missing ftyp atom
Attachment #8464326 - Flags: review?(kinetik)
Assignee: nobody → ajones
Status: NEW → ASSIGNED
Attachment #8464326 - Attachment is obsolete: true
Attachment #8464326 - Flags: review?(kinetik)
Attachment #8459972 - Attachment is obsolete: true
Assignee: ajones → nobody

Comment 9

4 years ago
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #7)
> (In reply to Will Law from comment #6)
> > @AnthonyJones - The ftyp should be present in the init segments but is not
> > required in the media segments. Can you reference a url that shows an
> > example of content that is missing the 'ftyp' atom and we'll look in to it?
> 
> The first test vector starts with a 'moov' atom.
> http://dashif.org/reference/players/javascript/1.0.0/index.html?mpd=http://
> dash.edgesuite.net/dash264/TestCases/1a/netflix/exMPD_BIP_TC1.mpd

That manifest specifies two source files

http://dash.edgesuite.net/dash264/TestCases/1a/netflix/ElephantsDream_H264BPL30_0500.264.dash
http://dash.edgesuite.net/dash264/TestCases/1a/netflix/ElephantsDream_AAC48K_064.mp4.dash

Both do contain 'ftyp' as the first box. the character-mapped (hex to ascii) first 32 bytes containing the ftyp box for the representations respectively are:

... ftypiso2....isomiso2dashiso6

and

... ftypmp42....isomiso2dashiso6

It should be noted though that this is on-demand profile content, hence there is no separate initialization segment, the single segment provided is self-initializing. In other words, all top-level boxes (ftyp, moov, moof and mdat) exist in this single segment.
Depends on: 1047180
The 'ftyp' is in the file but the player is only returning a range for the 'moov' box and that dictates what gets appended. It can be demonstrated by this change here:

--- a/app/js/dash/BaseURLExtensions.js
+++ b/app/js/dash/BaseURLExtensions.js
@@ -220,7 +220,7 @@ Dash.dependencies.BaseURLExtensions = function () {
                 // We have the entire range, so continue.
                 start = pos - 8;
                 end = start + size - 1;
-                irange = start + "-" + end;
+                irange = 0 + "-" + end;
 
                 self.debug.log("Found the initialization.  Range: " + irange);
                 deferred.resolve(irange);

The range for the 'ftyp' box needs to be plumbed up so that gets appended as well.
Depends on: 1049133
Depends on: 1051666
Depends on: 1054153
Depends on: 1055843
Depends on: 1056485
Depends on: 1057203
Depends on: 1057225
Depends on: 1060704
Depends on: 1065827
This bug is necessary for basic playback of EME video on Windows.
Blocks: 1098156
No longer blocks: 1098156
Priority: -- → P5
The current plan is that Yury will be helping with DASH-IF support.
Alias: DASH-IF
Assignee: nobody → ydelendik
Summary: Tracking bug for dashif player support → Tracking bug for DASH-IF player support for EME/MSE
State of DASH-IF:

- The current version of DASH-IF was migrated to the event based framework (dijon), which make it harder to implement/use current EME API (see https://github.com/Dash-Industry-Forum/dash.js/pull/377)
- Created pilot patch for the reference implementation to make EME implemented per new spec in Firefox Nightly work with the player (which similar to the PR 377; see https://github.com/yurydelendik/dash.js/)
- Online demo of the player that uses video encoded with clearkey at http://people.mozilla.org/~ydelendik/tmp/eme-3/test.html
- Old format of the requestMediaKeySystemAccess parameter does not match the new spec -- see bug 1134066.
Depends on: 1140688
Depends on: 1140690
Depends on: 1140729
Anthony: does DASH-IF support need to block Adobe MVP? Do you think we should create a new tracking bug just for the subset of adobe-eme bugs that block partner testing/release?
Flags: needinfo?(ajones)
It no longer needs to block.
No longer blocks: 1032660
Flags: needinfo?(ajones)
Blocks: 1185611
Depends on: 1136050
Depends on: 1189987
Component: Audio/Video → Audio/Video: Playback

Updated

3 years ago
Depends on: 1131952
DASH.js works in Firefox. The ftyp atom issue from comment has been fixed in DASH.js [1]. We have been reporting other DASH.js issues on their GitHub issue tracker.

[1] https://github.com/Dash-Industry-Forum/dash.js/pull/210
Assignee: ydelendik → nobody
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
status-firefox44: --- → verified
status-firefox45: --- → verified
status-firefox46: --- → verified
status-firefox47: --- → verified
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.