Closed
Bug 1211328
Opened 9 years ago
Closed 9 years ago
When sourcebuffer.mode = sequence, timestampOffset is incorrectly calculated
Categories
(Core :: Audio/Video: Playback, defect, P1)
Core
Audio/Video: Playback
Tracking
()
RESOLVED
FIXED
mozilla44
People
(Reporter: jya, Assigned: jya)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
4.39 KB,
patch
|
mozbugz
:
review+
Sylvestre
:
approval-mozilla-aurora+
Sylvestre
:
approval-mozilla-beta+
|
Details | Diff | Splinter Review |
Per spec :http://w3c.github.io/media-source/index.html#sourcebuffer-coded-frame-processing
when mode = sequence: Set timestampOffset equal to group start timestamp - presentation timestamp.
This is required to ensure that when in sequence mode: "The timestampOffset attribute will be updated if a new offset is needed to make the new media segments adjacent to the previous media segment. " (http://w3c.github.io/media-source/index.html#idl-def-AppendMode.sequence).
However, our implementation set timestampOffset to group start timestamp ; and as such is always positive.
This result in the next segment being appended to be incorrectly added and create an even greater discontinuity.
Assignee | ||
Updated•9 years ago
|
Assignee | ||
Updated•9 years ago
|
Priority: -- → P1
Assignee | ||
Updated•9 years ago
|
Version: 43 Branch → Trunk
Assignee | ||
Comment 1•9 years ago
|
||
Attachment #8669513 -
Flags: review?(gsquelart)
Comment on attachment 8669513 [details] [diff] [review]
[MSE] Fix timestampOffset attribute calculation in sequence mode.
Review of attachment 8669513 [details] [diff] [review]:
-----------------------------------------------------------------
r+ with nit.
::: dom/media/mediasource/TrackBuffersManager.cpp
@@ +1353,5 @@
> mProcessingPromise.ResolveIfExists(aResolveValue, __func__);
> }
>
> void
> +TrackBuffersManager::CheckSequenceDiscontinuity(const media::TimeUnit& aPresentationTime)
No need for "media::" here.
Attachment #8669513 -
Flags: review?(gsquelart) → review+
Comment 4•9 years ago
|
||
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
Assignee | ||
Comment 5•9 years ago
|
||
Comment on attachment 8669513 [details] [diff] [review]
[MSE] Fix timestampOffset attribute calculation in sequence mode.
Approval Request Comment
[Feature/regressing bug #]: 1171330. 42 is the first release officially supporting this API.
[User impact if declined]: Invalid behaviour of DOM MSE function, media playback stalls.
[Describe test coverage new/current, TreeHerder]: local test, webref, extra test pages created.
[Risks and why]: Nonexistent, only updating a variable as per spec.
[String/UUID change made/needed]: None
Attachment #8669513 -
Flags: approval-mozilla-beta?
Attachment #8669513 -
Flags: approval-mozilla-aurora?
Comment 6•9 years ago
|
||
Comment on attachment 8669513 [details] [diff] [review]
[MSE] Fix timestampOffset attribute calculation in sequence mode.
Polish MSE, taking in beta (should be in 42 beta 4)
Attachment #8669513 -
Flags: approval-mozilla-beta?
Attachment #8669513 -
Flags: approval-mozilla-beta+
Attachment #8669513 -
Flags: approval-mozilla-aurora?
Attachment #8669513 -
Flags: approval-mozilla-aurora+
Comment 7•9 years ago
|
||
Assignee | ||
Comment 8•9 years ago
|
||
Here is a test page to reproduce the issue:
http://people.mozilla.org/~jyavenard/tests/mse_mp4/sequence-test.html
If the problem is fixed, the video.buffered showing should be continuous, and sourceBuffer.timestampOffset should have a value < 0.
e.g.:
Bad:
398: video.buffered ={{ 0,0.801666 }{ 4.004999,4.806666 }}
398: sourceBuffer.timestampOffset = 0.801666
Good:
886: video.buffered ={{ 0,1.603333 }}
887: sourceBuffer.timestampOffset = -2.401667
Comment 9•9 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•