Closed
Bug 1343793
Opened 8 years ago
Closed 8 years ago
Presentation time is odd in dom/media/test/test_eme_non_mse_fails.html
Categories
(Core :: Audio/Video: Playback, defect)
Core
Audio/Video: Playback
Tracking
()
RESOLVED
FIXED
mozilla55
Tracking | Status | |
---|---|---|
firefox55 | --- | fixed |
People
(Reporter: ayang, Assigned: ayang)
References
Details
Attachments
(2 files)
Rust mp4 parser gets presentation time mismatches comparing to stagefright in test_eme_non_mse_fails.html.
I found the first and second sample time are odd in stagefright. It should be a negative value due to presentation shift in 'elst' box.
The 'elst' box is:
EditListBox { edits: [Edit { segment_duration: 441, media_time: 1600, media_rate_integer: 1, media_rate_fraction: 0 }] }
[MediaPDecoder #2]: I/MP4Metadata Preferring rust demuxer
[MediaPDecoder #2]: W/MP4Metadata media time is 36281
[MediaPDecoder #2]: W/MP4Metadata media time is 36281
[MediaPDecoder #2]: D/MP4Metadata track codec aac (1)
[MediaPDecoder #2]: D/MP4Metadata s_o: 6992, e_o: 7363, s_c: 18446744073709515335, e_c: 18446744073709538554, s_d: 0, sync: 1
[MediaPDecoder #2]: D/MP4Metadata s_o: 7363, e_o: 7735, s_c: 18446744073709538554, e_c: 10158, s_d: 23219, sync: 1
[MediaPDecoder #2]: D/MP4Metadata s_o: 7735, e_o: 8106, s_c: 10158, e_c: 33378, s_d: 46439, sync: 1
[MediaPDecoder #2]: D/MP4Metadata s_o: 8106, e_o: 8478, s_c: 33378, e_c: 56598, s_d: 69659, sync: 1
[MediaPDecoder #2]: D/MP4Metadata s_o: 8478, e_o: 8849, s_c: 56598, e_c: 79818, s_d: 92879, sync: 1
[MediaPDecoder #2]: D/MP4Metadata s_o: 8849, e_o: 9221, s_c: 79818, e_c: 103038, s_d: 116099, sync: 1
[MediaPDecoder #2]: D/MP4Metadata s_o: 9221, e_o: 9592, s_c: 103038, e_c: 126258, s_d: 139319, sync: 1
[MediaPDecoder #2]: D/MP4Metadata s_o: 9592, e_o: 9964, s_c: 126258, e_c: 149478, s_d: 162539, sync: 1
In MediaData, mTime is i64 [1], so it must be somewhere they convert it from u64.
[1] https://dxr.mozilla.org/mozilla-central/rev/e150eaff1f83e4e4a97d1e30c57d233859efe9cb/dom/media/MediaData.h#311
Assignee | ||
Comment 1•8 years ago
|
||
It converts to i64 here [1]. So I think I'll change composition time from u64 to i64 in mp4parse_indice.
[1] https://dxr.mozilla.org/mozilla-central/rev/e150eaff1f83e4e4a97d1e30c57d233859efe9cb/media/libstagefright/binding/Index.cpp#101
Assignee | ||
Comment 2•8 years ago
|
||
Comment hidden (mozreview-request) |
Comment 4•8 years ago
|
||
mozreview-review |
Comment on attachment 8843167 [details]
Bug 1343793 - use i64 instead of u64 in presentation time.
https://reviewboard.mozilla.org/r/116928/#review119018
::: media/libstagefright/binding/MP4Metadata.cpp:353
(Diff revision 1)
> for (uint32_t i = 0; i < data.length; i++) {
> MOZ_DIAGNOSTIC_ASSERT(data.indices[i].start_offset == aDest[i].start_offset);
> MOZ_DIAGNOSTIC_ASSERT(data.indices[i].end_offset == aDest[i].end_offset);
> - MOZ_DIAGNOSTIC_ASSERT(llabs(int64_t(data.indices[i].start_composition - aDest[i].start_composition)) <= 1);
> - MOZ_DIAGNOSTIC_ASSERT(llabs(int64_t(data.indices[i].end_composition - aDest[i].end_composition)) <= 1);
> - MOZ_DIAGNOSTIC_ASSERT(llabs(int64_t(data.indices[i].start_decode - aDest[i].start_decode)) <= 1);
> + MOZ_DIAGNOSTIC_ASSERT(llabs((data.indices[i].start_composition - (int64_t)aDest[i].start_composition)) <= 1);
> + MOZ_DIAGNOSTIC_ASSERT(llabs((data.indices[i].end_composition - (int64_t)aDest[i].end_composition)) <= 1);
> + MOZ_DIAGNOSTIC_ASSERT(llabs((data.indices[i].start_decode - (int64_t)aDest[i].start_decode)) <= 1);
Use C++-style int64_t(aDest[i].start_decode) casts.
Attachment #8843167 -
Flags: review?(kinetik) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 7•8 years ago
|
||
mozreview-review |
Comment on attachment 8844718 [details]
Bug 1343793 - update rust mp4parser.
https://reviewboard.mozilla.org/r/118024/#review119860
Attachment #8844718 -
Flags: review?(kinetik) → review+
Pushed by ayang@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fdbfc2cba91f
use i64 instead of u64 in presentation time. r=kinetik
https://hg.mozilla.org/integration/autoland/rev/6644decaf685
update rust mp4parser. r=kinetik
Comment 9•8 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/fdbfc2cba91f
https://hg.mozilla.org/mozilla-central/rev/6644decaf685
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox55:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
You need to log in
before you can comment on or make changes to this bug.
Description
•