Граф коммитов

1343 Коммитов

Автор SHA1 Сообщение Дата
Razvan Maries adc6758e36 Backed out 2 changesets (bug 1564466) for perma fails on EnsureMTA.h. CLOSED TREE
Backed out changeset 8011dd41d7d3 (bug 1564466)
Backed out changeset b162d0e42bee (bug 1564466)
2019-07-17 22:48:41 +03:00
Emilio Cobos Álvarez 4cfbe11244 Bug 1564466 - Remove MediaSource::{Enabled,ExperimentalEnabled}, and use [Pref] on the IDL instead. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D38098

--HG--
extra : moz-landing-system : lando
2019-07-15 18:32:29 +00:00
Emilio Cobos Álvarez ec51c3a362 Bug 1564466 - Make MediaSource not call Preferences::GetBool off-main-thread. r=jya
Preferences::GetBool is not thread-safe, StaticPrefs are.
Also StaticPrefs are nicer anyway.

There's a lot of Preferences:: usage in dom/media which looks suspicious, though
I don't know if all that runs on the main thread.

Differential Revision: https://phabricator.services.mozilla.com/D38097

--HG--
extra : moz-landing-system : lando
2019-07-17 12:56:39 +00:00
Victor Porof 0a8ff0ad85 Bug 1561435 - Format dom/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D35951

--HG--
extra : source : 62f3501af4bc1c0bd1ee1977a28aee04706a6663
2019-07-05 10:44:55 +02:00
Victor Porof b5a4cb3848 Bug 1558517 - Pre 3.0: Remove conflicting eslint rules, and turn on "curly: all" everywhere, r=standard8
Differential Revision: https://phabricator.services.mozilla.com/D34535

--HG--
extra : source : 74ed7ee773393d305c4e948a57a1b1e32b1f12e8
extra : intermediate-source : 403d0757d61683e0a85d0bb07768eb39fbd0af72
2019-06-28 17:14:01 +02:00
Nicholas Nethercote d839ef58db Bug 1562331 - Make media.* static prefs follow the naming convention. r=KrisWright
This also removes the following prefs, because they're unused:
- media.autoplay.allow-muted pref
- media.autoplay.blackList-override-default

Differential Revision: https://phabricator.services.mozilla.com/D36396

--HG--
extra : rebase_source : 0570540496302b3efedadf4d5115ee5422d5c279
2019-06-28 14:09:05 +10:00
Edwin Gao 8361aefc97 Bug 1555454 - migrate mochitest-media to macosx1014 and turn off permafail tests r=gbrown,jmaher
Changes:
- rebalance chunk
- turn off three tests that are nearly permafail

Differential Revision: https://phabricator.services.mozilla.com/D34932

--HG--
extra : moz-landing-system : lando
2019-06-20 04:10:29 +00:00
Chris Pearce 337355aa9c Bug 1558364 - Convert TrackBuffersManager::mPendingInput into a MediaSpan. r=jya
This allows us to avoid a (probably small) copy when we stash the pending input.

Differential Revision: https://phabricator.services.mozilla.com/D34662

--HG--
extra : moz-landing-system : lando
2019-06-14 02:10:24 +00:00
Chris Pearce 42fd2adbaa Bug 1558364 - Add MediaSpan and use it for TrackBuffersManager::mInputBuffer. r=jya
As seen in this profile of a Twitch replay: https://perfht.ml/2K9Ydb3 we can
often end up spending time in TrackBuffersManager::CodedFrameProcessing()
shaving off bytes from the front off TrackBuffersManager::mInputBuffer. This
requires all the remaining bytes to be memmove'd down to the start of this
array. Sometimes we have close to 1MB in that buffer, and when we're just
trying to consume a few hundred bytes, that becomes high overhead.

So intead of using this "slice off, shuffle down" approach change
TrackBuffersManager::mInputBuffer to be a new type MediaSpan, which maintains a
RefPtr to a MediaByteBuffer and a span defining the subregion of the buffer we
care about. This means the RemoveElementsAt(0,N) operation becomes basically
free, and we can eliminate a few other copies we were doing as well.

Differential Revision: https://phabricator.services.mozilla.com/D34661

--HG--
extra : moz-landing-system : lando
2019-06-14 02:10:09 +00:00
Brindusan Cristian a7f24acb4b Backed out 2 changesets (bug 1558364) for build bustages at MediaSpan.h. CLOSED TREE
Backed out changeset 098ce3586133 (bug 1558364)
Backed out changeset 2e64d8db2b4b (bug 1558364)
2019-06-14 03:48:51 +03:00
Chris Pearce 8f2dd4a937 Bug 1558364 - Convert TrackBuffersManager::mPendingInput into a MediaSpan. r=jya
This allows us to avoid a (probably small) copy when we stash the pending input.

Differential Revision: https://phabricator.services.mozilla.com/D34662

--HG--
extra : moz-landing-system : lando
2019-06-14 00:31:06 +00:00
Chris Pearce d5f83d4740 Bug 1558364 - Add MediaSpan and use it for TrackBuffersManager::mInputBuffer. r=jya
As seen in this profile of a Twitch replay: https://perfht.ml/2K9Ydb3 we can
often end up spending time in TrackBuffersManager::CodedFrameProcessing()
shaving off bytes from the front off TrackBuffersManager::mInputBuffer. This
requires all the remaining bytes to be memmove'd down to the start of this
array. Sometimes we have close to 1MB in that buffer, and when we're just
trying to consume a few hundred bytes, that becomes high overhead.

So intead of using this "slice off, shuffle down" approach change
TrackBuffersManager::mInputBuffer to be a new type MediaSpan, which maintains a
RefPtr to a MediaByteBuffer and a span defining the subregion of the buffer we
care about. This means the RemoveElementsAt(0,N) operation becomes basically
free, and we can eliminate a few other copies we were doing as well.

Differential Revision: https://phabricator.services.mozilla.com/D34661

--HG--
extra : moz-landing-system : lando
2019-06-14 00:31:02 +00:00
Chris Pearce 51415ba462 Bug 1554075 - Allow direct access of source buffer's data from demuxer, eliminating most copies. r=jya
A lot of the overhead in MoofParser::RebuildFragmentedIndex(BoxContext&) is
copying data into the BoxReader's storage. In the MSE case the underlying data
being read is actually buffered in memory, so we may be able to just read the
in-memory data directly, avoiding the copy.

Note that the data may not be stored in a single contiguous ResourceItem in the
SourceBufferResource's ResourQueue. If so, it's not as straightforward to hand
out a uint8_t* to the underlying data. So we just copy it in that case for
simplicity. In most cases, the data in a single MP4 box would be appended in a
single append, and so is likely to be in a single ResourceItem.

Differential Revision: https://phabricator.services.mozilla.com/D33877

--HG--
extra : moz-landing-system : lando
2019-06-11 07:38:16 +00:00
Chris Pearce 693e4dc1c7 Bug 1554075 - Make ResourceQueue::GetOffsetAt() log(n). r=jya
The demuxer's low level byte reading abstraction is ResourceQueue::CopyData(),
but that's doing a linear scan through its list of ResourceItems in
GetOffsetAt() in order to find the ResourceItem in which the data to be read
lies. This sometimes shows up at the bottom of call stacks.

We could make this faster by doing a bisection search to find the ResourceItem
we need.

Differential Revision: https://phabricator.services.mozilla.com/D33871

--HG--
extra : moz-landing-system : lando
2019-06-11 07:36:58 +00:00
Oana Pop Rus 9fdfa8a955 Backed out 9 changesets (bug 1554075) for reftest failures in Intervals.h and MP4Interval.h on a CLOSED TREE
Backed out changeset d5543a60f833 (bug 1554075)
Backed out changeset 1ea15f85c789 (bug 1554075)
Backed out changeset a76688ee5b8a (bug 1554075)
Backed out changeset 85482315a53c (bug 1554075)
Backed out changeset c3f3e9e00279 (bug 1554075)
Backed out changeset ac24ec2e0349 (bug 1554075)
Backed out changeset b04fc8b0c07a (bug 1554075)
Backed out changeset 2cce329d894d (bug 1554075)
Backed out changeset 347b7b4eaab1 (bug 1554075)
2019-06-11 09:52:43 +03:00
Chris Pearce cfee488773 Bug 1554075 - Allow direct access of source buffer's data from demuxer, eliminating most copies. r=jya
A lot of the overhead in MoofParser::RebuildFragmentedIndex(BoxContext&) is
copying data into the BoxReader's storage. In the MSE case the underlying data
being read is actually buffered in memory, so we may be able to just read the
in-memory data directly, avoiding the copy.

Note that the data may not be stored in a single contiguous ResourceItem in the
SourceBufferResource's ResourQueue. If so, it's not as straightforward to hand
out a uint8_t* to the underlying data. So we just copy it in that case for
simplicity. In most cases, the data in a single MP4 box would be appended in a
single append, and so is likely to be in a single ResourceItem.

Differential Revision: https://phabricator.services.mozilla.com/D33877

--HG--
extra : moz-landing-system : lando
2019-06-11 05:10:20 +00:00
Chris Pearce ae72274a24 Bug 1554075 - Make ResourceQueue::GetOffsetAt() log(n). r=jya
The demuxer's low level byte reading abstraction is ResourceQueue::CopyData(),
but that's doing a linear scan through its list of ResourceItems in
GetOffsetAt() in order to find the ResourceItem in which the data to be read
lies. This sometimes shows up at the bottom of call stacks.

We could make this faster by doing a bisection search to find the ResourceItem
we need.

Differential Revision: https://phabricator.services.mozilla.com/D33871

--HG--
extra : moz-landing-system : lando
2019-06-11 05:09:01 +00:00
Andrea Marchesini f4c9f068fa Bug 1554847 - Improve cross-origin checks in canvas API - consider intermediate redirects, r=jya
Differential Revision: https://phabricator.services.mozilla.com/D32792

--HG--
extra : moz-landing-system : lando
2019-06-04 06:32:37 +00:00
Coroiu Cristina 73edc6621b Backed out 4 changesets (bug 1554847) for wpt failures at /service-workers/service-worker/fetch-canvas-tainting-video-cache.https.html
Backed out changeset 17e36d139ac2 (bug 1554847)
Backed out changeset 101bd1c2d688 (bug 1554847)
Backed out changeset 3ff9a221f3e5 (bug 1554847)
Backed out changeset 946e4d9420dd (bug 1554847)
2019-06-04 03:24:42 +03:00
Andrea Marchesini 8df66534cf Bug 1554847 - Improve cross-origin checks in canvas API - consider intermediate redirects, r=jya
Differential Revision: https://phabricator.services.mozilla.com/D32792

--HG--
extra : moz-landing-system : lando
2019-06-03 09:54:43 +00:00
Tarek Ziadé c48befbb9c Bug 1542674 - Make Media debug info machine parsable r=padenot,smaug,jya
This patch structurizes the media debug information via webidl dictionaries
that are returned by HTMLMediaElement::GetMozRequestDebugInfo() and
MediaSource::GetMozDebugReaderData().

Differential Revision: https://phabricator.services.mozilla.com/D27893

--HG--
extra : moz-landing-system : lando
2019-05-27 16:15:33 +00:00
shindli 9134ad98fa Backed out changeset c386ebfd9c6b (bug 1542674) as per tarek's request on IRC 2019-05-07 15:07:27 +03:00
Tarek Ziadé 446d5cdff7 Bug 1542674 - Make Media debug info machine parsable r=padenot,smaug
This patch structurizes the media debug information via webidl dictionaries
that are returned by HTMLMediaElement::GetMozRequestDebugInfo() and
MediaSource::GetMozDebugReaderData().

Differential Revision: https://phabricator.services.mozilla.com/D27893

--HG--
extra : moz-landing-system : lando
2019-05-06 16:39:58 +00:00
Brian Grinstead 0d460e3432 Bug 1544322 - Part 2.2 - Remove the [type] attribute for one-liner <script> tags loading files in /tests/SimpleTest/ in dom/ r=bzbarsky
This is split from the previous changeset since if we include dom/ the file size is too
large for phabricator to handle.

This is an autogenerated commit to handle scripts loading mochitest harness files, in
the simple case where the script src is on the same line as the tag.

This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170
using the `--part 2` argument.

Differential Revision: https://phabricator.services.mozilla.com/D27457

--HG--
extra : moz-landing-system : lando
2019-04-16 03:53:28 +00:00
Chris Pearce 8a1a29f279 Bug 1543669 - Disable test_isTypeSupported on android_version >= 28. r=jya
Disable test_isTypeSupported on android version >= 28 (Android 9.0) since our
infra there doesn't support cross origins there, at least until bug 1335740
is resolved.

Differential Revision: https://phabricator.services.mozilla.com/D27215

--HG--
extra : moz-landing-system : lando
2019-04-12 03:32:39 +00:00
Chris Pearce f1b4ef2942 Bug 1533129 - Add extended MIME parameter support to MediaSource.isTypeSupported on YouTube only. r=jya
YouTube.com/tv uses YouTube specific extensions to MediaSource.isTypeSupported
in order to determine whether it serves 4K. It checks with bogus values, and if
we reject the bogus values, it assumes we're responding truthfully to the other
queries. So add support to reject the bogus values on YouTube.com.

With this patch, we can play 4K on YouTube.com/tv.

Differential Revision: https://phabricator.services.mozilla.com/D26655

--HG--
extra : moz-landing-system : lando
2019-04-11 09:53:26 +00:00
shindli ab80016442 Backed out changeset e80a847a8b9b (bug 1533129) for causing perma mda failures in dom/media/mediasource/test/test_isTypeSupportedExtensions.html
--HG--
extra : rebase_source : 434f35ad3363c0c59eea03858f045d122cc3f114
2019-04-10 06:35:39 +03:00
Chris Pearce 2d1f469cd2 Bug 1533129 - Add extended MIME parameter support to MediaSource.isTypeSupported on YouTube only. r=jya
YouTube.com/tv uses YouTube specific extensions to MediaSource.isTypeSupported
in order to determine whether it serves 4K. It checks with bogus values, and if
we reject the bogus values, it assumes we're responding truthfully to the other
queries. So add support to reject the bogus values on YouTube.com.

With this patch, we can play 4K on YouTube.com/tv.

Differential Revision: https://phabricator.services.mozilla.com/D26655

--HG--
extra : moz-landing-system : lando
2019-04-09 23:23:35 +00:00
Sylvestre Ledru 03fc65347c Bug 1542146 - Apply the change with the option StatementMacros from clang-format-8 r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D26280

--HG--
extra : moz-landing-system : lando
2019-04-05 21:42:17 +00:00
Sylvestre Ledru 03c8e8c2dd Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D26098

--HG--
extra : moz-landing-system : lando
2019-04-05 21:41:42 +00:00
Csoregi Natalia ba58e936bd Backed out changeset 4ad80127f89f (bug 1519636) for bustage on MarkupMap.h and nsAccessibilityService.cpp. CLOSED TREE 2019-04-05 09:48:19 +03:00
Sylvestre Ledru d1c1878603 Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D26098

--HG--
extra : moz-landing-system : lando
2019-04-04 21:36:16 +00:00
Narcis Beleuzu 24dbe577a5 Backed out changeset 389b6bbd76db (bug 1519636) for bustages on MarkupMap.h . CLOSED TREE 2019-04-05 00:27:56 +03:00
Sylvestre Ledru 399dbd28fe Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D26098

--HG--
extra : moz-landing-system : lando
2019-04-04 20:12:23 +00:00
Edwin Gao d5df057c37 Bug 1538359, 1538331, 1538360 - disable mochitest-media tests that fail intermittently or permanently on windows10-aarch64 r=jmaher
Disabled the following for windows10-aarch64:
- test_getUserMedia_audioCapture
- test_AudioChange_mp4.html
- test_bug1255618.html
- test_singleSourceDest
- test_mediaElementAudioSourceNodeFidelity
- test_maxChannelCount
- test_abort
- test_audio_capture_error
- test_call_start_from_end_handler
- test_recognition_service_error
- test_success_without_recognition_service
- test_ExperimentalAsync
- test_peerConnection_restartIceNoBundle.html

All of these tests tend to fail on the first run of the push, then pass on the retry run.

Differential Revision: https://phabricator.services.mozilla.com/D24569

--HG--
extra : moz-landing-system : lando
2019-03-23 09:51:09 +00:00
Edwin Gao 0e56d58992 Bug 1536604 - disable manifest dom/media/test/mochitest.ini r=jmaher
Disable the following:

- test_MediaSource_flac_mp4 (keeps getting missed somehow)
- dom/media/test/mochitest.ini

Disabling the entire `dom/media/test/mochitest.ini` manifest file does have collateral damage in that it disables tests that are running fine; the alternative is to disable only the EME tests, but the failure count numbers somewhere close to 50.

Differential Revision: https://phabricator.services.mozilla.com/D24094

--HG--
extra : moz-landing-system : lando
2019-03-19 22:54:34 +00:00
Jean-Yves Avenard 8ed165824c Bug 1535493 - [MSE] Lower HAVE_ENOUGH_DATA threshold to 3s. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D23658

--HG--
extra : moz-landing-system : lando
2019-03-15 12:34:07 +00:00
Ryan Hunt 00e98538aa Bug 1523969 part 6 - Move method definition inline comments to new line in 'dom/'. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D21106

--HG--
extra : rebase_source : ea3f51c2c11247114deccbc86e90fb02b8a97257
2019-02-25 16:05:29 -06:00
Jean-Yves Avenard fc260afed4 Bug 1531201 - Don't assume all frames' time is greater than 0. r=gerald
We now allow frames to have a negative time (so that they can be decoded and trimmed).

Differential Revision: https://phabricator.services.mozilla.com/D21474

--HG--
extra : moz-landing-system : lando
2019-02-28 02:34:04 +00:00
Dorel Luca b4b7dc9290 Bug 1487973 - Disabled dom/media/mediasource/test/test_FrameSelection_mp4.html on windows for frequently faling r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D21328

--HG--
extra : moz-landing-system : lando
2019-02-27 10:38:49 +00:00
Jean-Yves Avenard 0fe17b9323 Bug 1530234 - P1. Ignore init segment for audio only buffer if audio content didn't change. r=bryce
This prevents re-creating a new audio decoder which on Android can take an awful long time.

Differential Revision: https://phabricator.services.mozilla.com/D20969

--HG--
extra : moz-landing-system : lando
2019-02-27 14:34:15 +00:00
Jean-Yves Avenard 916342f7c5 Bug 1222851 - Keep the one dropped frame prior the first one to prime the decoder. r=bryce
Some audio decoders, such as AAC and Opus have a need for a pre-roll content. As such, in order to be able to fully get the content of the first frame we keep the frame just prior that would have normally been dropped.

We set this frame to have a duration of 1us so that it will be dropped later by the decoding pipeline. The starting time of the first frame is adjusted so that we have continuous data, without gap in the buffered range.

Differential Revision: https://phabricator.services.mozilla.com/D20322

--HG--
extra : moz-landing-system : lando
2019-02-22 09:58:18 +00:00
Jean-Yves Avenard ffc1352b1f Bug 1524890 - P16. Fix mochitests. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D20330

--HG--
extra : moz-landing-system : lando
2019-02-22 09:21:13 +00:00
Jean-Yves Avenard 5569ae1a9c Bug 1524890 - P15. [MSE] Add extra logging. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D20321

--HG--
extra : moz-landing-system : lando
2019-02-22 09:21:11 +00:00
Jean-Yves Avenard 68176b56c7 Bug 1524890 - P13. [MSE] Mark frames as truncated when needed. r=bryce
There's two cases to handle.
1- A Frame isn't entirely contained between appendWindowStart and appendWindowEnd
2- A new frame is appended which overlaps partially an existing frame.

To achieve this we tweak the start time and duration of the sample added (case 1), or the frame about to be partially covered (case 2). We then set a flag that will indicate to the decoder that the decompressed frame will have to be truncated.

Differential Revision: https://phabricator.services.mozilla.com/D20172

--HG--
extra : moz-landing-system : lando
2019-02-22 09:21:05 +00:00
Cosmin Sabou 37e54dc3ca Bug 1516754 - Fix eslint failure. r=eslint-fix 2019-02-06 06:53:12 +02:00
Jean-Yves Avenard d3949f6fee Bug 1516754 - P2. Add mochitest. r=drno
Check that we can resume after appening a partial media segment header and calling abort().

Depends on D18651

Differential Revision: https://phabricator.services.mozilla.com/D18762

--HG--
extra : moz-landing-system : lando
2019-02-06 02:08:06 +00:00
Jean-Yves Avenard 6e021f1b1f Bug 1516754 - P1. Reset Pending Input Buffer during Reset Parser State Algorithm. r=kinetik
Differential Revision: https://phabricator.services.mozilla.com/D18651

--HG--
extra : moz-landing-system : lando
2019-02-06 00:30:35 +00:00
Jean-Yves Avenard 864ca81cfc Bug 1524500 - P2. Simplify logic to break loop early. r=bryce
The logic was redundant with the next step that will already remove all until the next keyframe.

Depends on D18321

Differential Revision: https://phabricator.services.mozilla.com/D18322

--HG--
extra : moz-landing-system : lando
2019-02-01 17:45:38 +00:00
Jean-Yves Avenard 8701ff5245 Bug 1524500 - P1. Remove partial frames when the starting time falls within the removal interval. r=bryce
Per spec:
https://w3c.github.io/media-source/#sourcebuffer-coded-frame-removal
Step 3 of the Coded Frame Removal Interval:
"Remove all media data, from this track buffer, that contain starting timestamps greater than or equal to start and less than the remove end timestamp. "

So to decide if a frame should be removed from a track buffer, its start time is the only information to be used.

Differential Revision: https://phabricator.services.mozilla.com/D18321

--HG--
extra : moz-landing-system : lando
2019-02-01 22:58:08 +00:00
Bryce Van Dyk 4f095e63a3 Bug 1523683 - Use mozilla::Variant to select if the MoofParser should parse a single track or multiple. r=jya
Using a variant more clearly indicates how MoofParser works: you cannot request
a specific track id and to parse all tracks. Callers must now explicitly select
one or the other.

Differential Revision: https://phabricator.services.mozilla.com/D18135

--HG--
extra : moz-landing-system : lando
2019-02-01 21:34:37 +00:00
Myk Melez 25349d2601 Bug 1518283 - prohibit blank lines at the beginning and end of blocks (eslint padded-blocks) r=mossop,Standard8
Differential Revision: https://phabricator.services.mozilla.com/D17526

--HG--
extra : moz-landing-system : lando
2019-01-30 17:26:25 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Bryce Van Dyk 279e7ee239 Bug 1519617 - Update MoofParser to handle tracks using track_id 0. r=jya
Using track_id 0 is forbidden by the mp4 spec, however, some sites still serve
media using this track_id. We've been using the 0 track ID to trigger special
handling in the MoofParser where we will parse multiple tracks, and this led us
to be tolerant of tracks using this reserved id (though we likely had some bugs
due to this).

Since sites are using this track_id, and as other browsers (and Firefox until I
broke this) tolerate such media, we should too. In order to do so correctly, we
should no longer us track_id=0 as a special case in the MoofParser, and instead
have an explicit flag, which is what this patch does.

Differential Revision: https://phabricator.services.mozilla.com/D16428

--HG--
extra : moz-landing-system : lando
2019-01-16 11:45:42 +00:00
Cosmin Sabou 2522f5281a Backed out changeset dad40f23f4c1 (bug 1519617) for breaking Soundcloud. a=backout 2019-01-15 12:38:06 +02:00
Bryce Van Dyk 5c977fdb7d Bug 1519617 - Update MoofParser to handle tracks using track_id 0. r=jya
Using track_id 0 is forbidden by the mp4 spec, however, some sites still serve
media using this track_id. We've been using the 0 track ID to trigger special
handling in the MoofParser where we will parse multiple tracks, and this led us
to be tolerant of tracks using this reserved id (though we likely had some bugs
due to this).

Since sites are using this track_id, and as other browsers (and Firefox until I
broke this) tolerate such media, we should too. In order to do so correctly, we
should no longer us track_id=0 as a special case in the MoofParser, and instead
have an explicit flag, which is what this patch does.

Differential Revision: https://phabricator.services.mozilla.com/D16428

--HG--
extra : moz-landing-system : lando
2019-01-14 16:33:03 +00:00
Sylvestre Ledru 804b8b8883 Bug 1204606 - Reformat of dom/media r=jya
# skip-blame

Differential Revision: https://phabricator.services.mozilla.com/D12251

--HG--
extra : moz-landing-system : lando
2018-11-19 13:25:37 +00:00
Jean-Yves Avenard 6ba9a04554 Bug 1505910 - P2. Remove use of AsTaskQueue(). r=cpearce
Make IsCurrentThreadIn() const.

Depends on D11491

Differential Revision: https://phabricator.services.mozilla.com/D11492

--HG--
extra : moz-landing-system : lando
2018-11-12 01:09:03 +00:00
Julian Descottes 2fcd6cb020 Bug 1499096 - Update tests using ok() to is();r=Standard8
This changeset updates all the test that were wrongly using ok() and wanted to
use is() AND for which the assert is still passing without any modification
required.

Differential Revision: https://phabricator.services.mozilla.com/D8739

--HG--
extra : moz-landing-system : lando
2018-10-23 07:12:23 +00:00
Mark Banner ceaeb93550 Bug 1486741 - Enable ESLint rule comma-dangle for all of mozilla-central (automatic fixes). r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D8389

--HG--
extra : moz-landing-system : lando
2018-10-19 12:55:39 +00:00
Cosmin Sabou d41320ad98 Bug 1495167 - Disable dom/media/mediasource/test/test_WaitingToEndedTransition_mp4.html on Linux for frequent failures. r=jmaher 2018-10-16 04:34:00 +03:00
Chris Peterson b5ad48a759 Bug 1336712 - dom/media: Remove test checks for Android GB (API Level 15). r=RyanVM
Differential Revision: https://phabricator.services.mozilla.com/D6583

--HG--
extra : source : 8d277a0ad4e4314054b30b644c7b972ff74e7744
extra : histedit_source : 51f5fc31952641c4df66a6a1eb2a958d52997e8c
2018-09-15 00:12:47 -07:00
Jan-Ivar Bruaroey 4dc294148a Bug 1487431 - Fix typo in mediasource test_FrameSelection_mp4.html to make last two tests work. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D4798

--HG--
extra : moz-landing-system : lando
2018-08-31 20:38:59 +00:00
Jean-Yves Avenard b66c9b2ac1 Bug 1481166 - Enable SourceBuffer.changeType by default. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D2770
2018-08-07 22:46:14 +02:00
Jean-Yves Avenard 5e17996c2a Bug 1481397 - P1. Properly recalculate highest start timestamp when samples are removed. r=bryce
Summary: When removing frames from the trackbuffer we may remove frames outside the original removal interval as we must remove all frames depending on the removed frames.

Differential Revision: https://phabricator.services.mozilla.com/D2837
2018-08-07 22:46:14 +02:00
Jean-Yves Avenard d7eb320e7a Bug 1476975 - P3. Fix canPlayType/isTypeSupported for AV1 content. r=dminor
AV1 support is behind a pref, as such, the result of canPlayType should depends on the value of that pref.

Additionally to this change we remove AOMDecoder::IsSupportedCodec as it implied confusion on what a codec mimetype is. There are two type of codec mimetype: the one describing the container content ("av1") and the one describing the codec itself "video/av1")
AOMDecoder shouldn't know anything about containers (e.g. mp4 or webm)

--HG--
extra : rebase_source : 72ebe662f76fb6c9d8be1f753890601aac440061
2018-07-20 10:24:56 +02:00
Noemi Erli 76fe049448 Backed out 3 changesets (bug 1476975) for mochitest failures on test_can_play_type_webm.html
Backed out changeset 91585d095420 (bug 1476975)
Backed out changeset 798f4894ffd5 (bug 1476975)
Backed out changeset b5377ceef34f (bug 1476975)
2018-07-20 21:27:01 +03:00
Jean-Yves Avenard 4d4b32ccf8 Bug 1476975 - P3. Fix canPlayType/isTypeSupported for AV1 content. r=dminor
AV1 support is behind a pref, as such, the result of canPlayType should depends on the value of that pref.

Additionally to this change we remove AOMDecoder::IsSupportedCodec as it implied confusion on what a codec mimetype is. There are two type of codec mimetype: the one describing the container content ("av1") and the one describing the codec itself "video/av1")
AOMDecoder shouldn't know anything about containers (e.g. mp4 or webm)
2018-07-20 19:04:46 +02:00
Jean-Yves Avenard a867c82f1e Bug 1409664 - P27. Don't disable webm container for MSE::isTypeSupported when MediaCapabilities is enabled. r=bryce
Summary:
MediaCapabilities provide a finer detail on VP9 being supported or not. YouTube will use that information to determine which resolutions to support when using VP9

Depends on D1772

Reviewers: bryce

Tags: #secure-revision

Bug #: 1409664

Differential Revision: https://phabricator.services.mozilla.com/D1794
2018-07-03 11:45:27 -07:00
Jean-Yves Avenard d586f6f943 Bug 1409664 - P9. Remove AutoTaskQueue and its use r=bryce
Summary:
TaskQueue no longer requires an explicit call to BeginShutdown() as such we no longer have a need for AutoTaskQueue.

Depends on D1621

Tags: #secure-revision

Bug #: 1409664

Differential Revision: https://phabricator.services.mozilla.com/D1622
2018-07-03 11:45:19 -07:00
Bryce Van Dyk 7928956283 Bug 1450952 - If TrackBuffersManager is sent the same init segment, reuse same StreamID. r=jya
Some MSE streams will resend the same init segment. In these cases we can treat
the following data as belonging to the already existing stream. We do this by
reusing the same stream id. This stops us tearing down and restarting decoders
in these cases.  This has the benefit of stopping us introducing gaps to audio
and/or video.

Differential Revision: https://phabricator.services.mozilla.com/D1837

--HG--
extra : moz-landing-system : lando
2018-06-29 07:33:23 +00:00
Jeff Gilbert 5b753da289 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07:00
Jean-Yves Avenard 507a82e41c Bug 1470944 - Don't attempt to create a new demuxer upon changeType call r=bryce
Re-creating a new demuxer is fine, provided that the SourceBufferResource exists. However, a resource is only created upon receiving an init segment.

The segment following a call to changeType() must be an init segment, will let the demuxer creation occurs there.

Differential Revision: https://phabricator.services.mozilla.com/D1812
2018-06-25 19:13:13 +00:00
Jean-Yves Avenard 9ae6b235d5 Bug 1470814 - Update SourceBuffer.changeType behaviour. r=bryce
Follow current WICG https://github.com/WICG/media-source/tree/codec-switching as of revision f2ed457

The difference with the current spec can be seen with:
https://services.w3.org/htmldiff?doc1=https%3A%2F%2Fraw.githubusercontent.com%2FWICG%2Fmedia-source%2F9bb87ae9566f0db3d646b648e7370bdac97349ae%2Findex.html&doc2=https%3A%2F%2Fraw.githubusercontent.com%2FWICG%2Fmedia-source%2Fcodec-switching%2Findex.html

Differential Revision: https://phabricator.services.mozilla.com/D1810
2018-06-25 19:07:16 +00:00
Jean-Yves Avenard 1597386a00 Bug 1466606 - P2. Re-use code to determine NextGetSample index. r=bryce
Previous commit added SetNextGetSampleIndexIfNeeded, let's re-use it for GetSample.
We continue to have an exception code as it caters for the most common code path, which is we retrieve one sample after the other.

MozReview-Commit-ID: HOQ53qwZj7w

--HG--
extra : rebase_source : cc9bc0b41a7085d28554f7ed764a18decfea327d
2018-06-06 21:47:52 +02:00
Jean-Yves Avenard 3da25ab8e6 Bug 1466606 - P1. Calculate the current GetSample index when needed. r=bryce
The assumption that when calling GetNextRandomAccessPoint the next GetSample index would always be known was incorrect. It assumed that the call to GetNextRandomAccessPoint would always be preceded by a call to GetSample.
This is not always how the MediaSourceDemuxer called it.

MozReview-Commit-ID: H1MyPpDEytk

--HG--
extra : rebase_source : 07f70ee87ae5084016a094c564382090a3045e94
2018-06-06 15:14:24 +02:00
Jean-Yves Avenard b48f26ad93 Bug 1466606 - Revert "Add diagnostic code.". r=bryce
This reverts commit 4c1f90791492fc441cc600f66ff2d36c7910e905

MozReview-Commit-ID: KbMWKE08vT8

--HG--
extra : rebase_source : c3db78ddf82684475a63acd75de0180a9c66b6cb
2018-06-06 14:12:25 +02:00
Jan-Ivar Bruaroey 9d549a104e Bug 1467018 - Remove callback argument from fetchWithXHR() and once() helpers. r=bryce
MozReview-Commit-ID: DJDqKN9Opn3

--HG--
extra : rebase_source : c5dd2175398c3f5c9e5a3d6c8fb3e8868be4ce19
2018-05-25 11:25:45 -04:00
Jean-Yves Avenard 37ecd2740d Bug 1466606 - Add diagnostic code. r=bryce
Temporary diagnostic code to help determine what the problem might be.

MozReview-Commit-ID: D5Dm32aZ1Ia

--HG--
extra : rebase_source : ba0955c2b880823986277919f05a32e9095b14fa
2018-06-05 13:48:59 +02:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Bryce Van Dyk c9d6056854 Bug 1465409 - Change lint rules for mediasource tests to prefer no spaces for array notation. r=jya
Change rules so we enforce ["foo", "bar"] rather than [ "foo", "bar" ].

MozReview-Commit-ID: KX6wJd8jmeJ

--HG--
extra : rebase_source : 6800cf4e701a33f246418e0deb35a206af8104f4
2018-05-30 08:18:54 -04:00
Jan-Ivar Bruaroey 4439872dc0 Bug 1462990 - Use async/await in mediasource mochitests r=bryce
MozReview-Commit-ID: AIr8CLyuGb7

--HG--
extra : rebase_source : 2136b7faccc24da6b163b0edf908a198136a7638
2018-05-21 16:40:13 -04:00
Jan-Ivar Bruaroey 5017b2c432 Bug 1462990 - Use async/await in mediasource/test/mediasource.js r=bryce,jya
MozReview-Commit-ID: BnQ30DnY4mB

--HG--
extra : rebase_source : fd89494f1f5946a9b8505456ab9761d3cc1914fa
2018-05-18 10:26:11 -04:00
Jean-Yves Avenard aa3feebecc Bug 1451149 - P2. Don't fire the "stalled" event when using MSE. r=bryce
When using a media element with a Media Source, the resource fetching algorithm is to be called in "local" mode:
https://www.w3.org/TR/media-source/#mediasource-attach
"Continue the resource fetch algorithm by running the remaining "Otherwise (mode is local)" steps, with these clarifications"

https://html.spec.whatwg.org/multipage/media.html#concept-media-load-resource
Under the local mode, the steps that would cause the element to fire suspend, stalled or progress can never occur.
We only prevent the stalled event to be fired, many websites rely on the progress event to be fired (such as when the init segment has been parsed). The HTML5 media spec will be amended to clearly indicate that progress is to be fired even with mediasource

MozReview-Commit-ID: DkoQzoV0JzO

--HG--
extra : rebase_source : 1e916eee50c9935f168797bb5a92052191cda59d
2018-05-14 11:32:09 +02:00
Bryce Van Dyk d74241d1f7 Bug 1461785 - Update dom/media/mediasource/test to abide eslint rules, add .eslintrc.js. r=jya,standard8
Add .eslintrc.js to configure globals from mediasource.js and to add extra
rules to encourage use of let and const over var.

Linting changes:
- Prefer const and let to var. This provides tighter scoping and avoids
  reassignment.
- Mozilla rules do not allow for shadowing of variables, so several tests have
  had promise lists renamed to avoid this.
- Numerous minor fixes to formatting including using double quotes, spacing,
  missing semicolons.
- Remove some unused variables.
- Arrays have spaces after opening braces and before closing braces, e.g.
  [ "foo" ], this is to be consistent with our clang-format rules.
- Fix naming of resourcePathSeen in test_MediaSource_memory_reporting.html.

MozReview-Commit-ID: 5q6oS7EWLTk

--HG--
extra : rebase_source : 9b67b294f338ca9205b52fded3af63e6c3ac9a5a
2018-05-14 10:08:59 -04:00
Jean-Yves Avenard 559fa1a1f2 Bug 1280613 - P3. Mochitests. r=bryce
MozReview-Commit-ID: 5FIe9qfNZWd

--HG--
extra : rebase_source : b8f0a01abeba4dc4356f933a29ed0595fc9884c4
2018-05-11 09:01:25 +02:00
Jean-Yves Avenard 756284d1ab Bug 1280613 - P2. Add experimental SourceBuffer.removeAsync. r=bz
The aim of those changes is to be incubated in the WICG.

MozReview-Commit-ID: K93xiTod6tw

--HG--
extra : rebase_source : 788122a69b6cab96bab9c2ae6e8cdf7c61d4ed07
2018-05-11 04:07:24 +02:00
Jean-Yves Avenard 6039ae5766 Bug 1280613 - P1. Add experimental SourceBuffer.appendBufferAsync. r=bz
The aim of those changes is to be incubated in the WICG.

MozReview-Commit-ID: 5wEUnWz8i7kBug 1280613

--HG--
extra : rebase_source : 4360d2c34025bf3c87fff49f0e2aa01975fff15b
2018-05-11 03:56:50 +02:00
Jean-Yves Avenard 97cad9b3dd Bug 1456743 - P4. Actual implementation of SourceBuffer.changeType. r=bryce
Currently, the new init segment provided following a call to changeType() must contain the same number of audio and video tracks as previously.

The Chrome team has indicated concerns in regards to this restriction. TBD.

MozReview-Commit-ID: 3S6YVtQILF9

--HG--
extra : rebase_source : 59574301d8d4b6f04fc40a97a0917222f1d42fe4
2018-04-30 19:16:31 +02:00
Jean-Yves Avenard 5616b876de Bug 1456743 - P3. Add SourceBuffer.changeType experimental method. r=bryce,bz
Non functional code.

SourceBuffer.changeType allows to reconfigure a sourceBuffer so that a new codec type or new container format can be fed later.

The new code is placed behind the media.mediasource.experimental.enabled pref.

MozReview-Commit-ID: 5wj6J4uzLbA

--HG--
extra : rebase_source : b6f57246e0a4c856f6365bb0c8ec8d759a770105
2018-04-30 19:13:15 +02:00
Jean-Yves Avenard e3a0fefdd0 Bug 1456743 - P1. Create mochitest for new SourceBuffer::changeType. r=bryce
MozReview-Commit-ID: 6X8rVMhVY98

--HG--
extra : rebase_source : 52acce9508ce98c43eef6a7500355fa2465c5fe7
2018-04-30 18:59:34 +02:00
Nicholas Nethercote 51f2b494ea Bug 1448222 - Remove MediaPrefs. r=jya
This patch converts all the prefs in MediaPrefs to the new StaticPrefs system.

Note that the "media.wmf.skip-blacklist" pref was present in both MediaPrefs
and gfxPrefs. The copy in MediaPrefs was never used; this explains why this
patch does not add an entry for it to StaticPrefList.h.

Note also that the patch removes themedia.rust.mp4parser pref, because it's
unused.

MozReview-Commit-ID: IfHP37NbIjY

--HG--
extra : rebase_source : df84ea813b7c366d7be663c696891325610149c8
2018-03-20 09:48:56 +11:00
Videet 01ad0f3438 Bug 547707: replaced hardcoded strings by definitions in nsMimeTypes.h r=gerald
MozReview-Commit-ID: 6f85pRUe8Tg

--HG--
extra : rebase_source : f41797530bf9211f3fe875a5da860132f5bd2c7c
2018-03-06 17:43:57 +01:00
Miko Mynttinen 280cf13e36 Bug 1441779 - Part 1: Change nsTArray<SourceBufferTask> to nsTArray<RefPtr<SourceBufferTask>> r=gerald
MozReview-Commit-ID: 8lV4Pp9p7Ch

--HG--
extra : rebase_source : b149b6ed15f88b9ee8af8ec553a57a8ccec3dafd
2018-03-01 11:55:18 +01:00
JW Wang d201fcefe3 Bug 1427931. P1 - remove MediaDecoder::PinForSeek/UnpinForSeek. r=bechen,gerald
PinForSeek() is called only when playback reaches the end. In other words,
it is not called for most cases of seeking. It should be OK not to call it at
all during seeking.

MozReview-Commit-ID: 1xXX1321bO7

--HG--
extra : rebase_source : df8ba3f59da2a337b456546af4b54abaddfe38a9
extra : intermediate-source : 0a70419f9ce639ac0784a0632db4598d6be511f8
extra : source : bfddad9b922386c91fcfa7657a7ac274991d15f4
2017-12-19 17:56:52 +08:00
JW Wang 79b5f2dd2e Bug 1425996 - fix build error: unused variable 'rv'. r=gerald
MozReview-Commit-ID: 7MhsSWbxB3z

--HG--
extra : rebase_source : 81207a1e5b663314295f2f95afd4b726ffe8f12d
2017-12-21 12:12:42 +08:00
Jean-Yves Avenard b8cd152890 Bug 1425904 - Make the monitor refcounted. r=gerald
To prevent another heap allocation, we re-use the TaskQueue internal monitor.
As a TaskQueue is refcounted, and the MozPromise::Then() holds a reference to the taskqueue, it ensures that the monitor isn't immediately destroyed when Await() execution unwinds.
Instead it will live until either the lambda or Await() completes, whichever comes last.

MozReview-Commit-ID: EeG6LLAiiyp

--HG--
extra : rebase_source : c5872733c0444737682632dd10d8844c44c4d429
2017-12-19 11:11:23 +01:00
Jean-Yves Avenard 998881b06e Bug 1404997 - P24. Make AutoTaskQueue deliver runnables to nsIEventTarget. r=gerald
Similar to bug 1300118 for TaskQueue.

MozReview-Commit-ID: 8jIifvs2r4U

--HG--
extra : rebase_source : f1c8ab791fa853c4d69cfb8791a418654a5d4142
2017-12-15 18:14:02 +01:00
Jean-Yves Avenard ec469fdddc Bug 1425608 - Don't delete AutoTaskQueue::mTaskQueue on the main thread. r=gerald
MozReview-Commit-ID: I2R4OYB0Jyc

--HG--
extra : rebase_source : 1b8c1caffef91b5888b04b336bd20a74df6711a1
2017-12-16 00:46:49 +01:00
JW Wang 4b584fc48b Bug 1424973. P2 - remove unused MediaDecoder::IsLiveStream() and friends. r=bechen,gerald
MozReview-Commit-ID: Hf3QAFoq97x

--HG--
extra : rebase_source : 0cbfaaec37dea3ab0ab4ad0622bae8056e383ec0
extra : intermediate-source : b591e2e854d0c480f889aa6ebe87f4892ffc0cdc
extra : source : 13db1fcd03825077382e41235c02d1f8ecc5edf2
2017-12-06 16:24:31 +08:00
JW Wang bb45ff010e Bug 1424973. P1 - propagate 'IsLiveStream' changes to MDSM in MediaDecoder subclasses. r=bechen,gerald
MozReview-Commit-ID: 8wSZf7pRERP

--HG--
extra : rebase_source : c2bea725064f5ad2e1cd1de1b8b9c19994bad89b
extra : intermediate-source : 54da627350d8a6276f9ad5d14a7191cb05957901
extra : source : dc582401401272df3150fb639bdf0ad05d749a06
2017-12-06 16:00:20 +08:00
Sylvestre Ledru 9bfe27d903 Bug 1394734 - Replace CONFIG['GNU_C*'] by CONFIG['CC_TYPE'] r=glandium
MozReview-Commit-ID: 7duJk2gSd4m

--HG--
extra : rebase_source : 7312fe276e561e8c034a5f6749774ae812727f9c
2017-12-07 22:09:15 +01:00
Gerald Squelart c5aeab4f69 Bug 1407810 - Use DDMOZ_LOG in media stack - r=jwwang
Mostly-mechanical replacement of MOZ_LOG with DDMOZ_LOG, usually just removing
the class name and `this` pointer (as they are already implicitly recorded).
Some files needed a bit more work when logging was done from helper classes or
static functions.

MozReview-Commit-ID: IeJJmzYqWMQ

--HG--
extra : rebase_source : 94200838dcdaf6c3bda9de30042ce2d307237eef
2017-10-13 16:31:59 +11:00
Gerald Squelart 1b357db99b Bug 1407810 - Use DDLogger in media stack - r=jwwang
Mostly-mechanical additions:
- Log constructions&destructions, usually by just inheriting from
  DecoderDoctorLifeLogger, otherwise with explicit log commands (for internal
  classes for which DecoderDoctorTraits can't be specialized),
- Log links between most objects, e.g.: Media element -> decoder -> state
  machine -> reader -> demuxer -> resource, etc.

And logging some important properties and events (JS events, duration change,
frames being decoded, etc.)

More will be added later on, from just converting MOZ_LOGs, and as needed.

MozReview-Commit-ID: KgNhHSz35t0

--HG--
extra : rebase_source : dd7206e350e32671adc6f3b9e54ebf777251de2c
2017-10-10 17:55:27 +11:00
Chris Pearce fb207e4f8a Bug 1422662 - Move BaseMediaResource::Close() into MediaResource class. r=jwwang
For the project to export Gecko's media stack and import it into Servo,
I need a way to shutdown an abstract MediaResource. So I'd like to move
BaseMediaResource::Close() up into MediaResource class.

MozReview-Commit-ID: 9JmxJPs02PN

--HG--
extra : rebase_source : e61cc1a3a79b3e4ca7e9fa86a602e6e26044e247
2017-12-04 16:29:35 +13:00
JW Wang 855a4bc6c4 Bug 1421875. P3 - remove MediaDecoder::DownloadProgressed() which is basically a one-line call to GetOwner()->DownloadProgressed(). r=bechen,gerald
Also devirtualize ChannelMediaDecoder::DownloadProgressed() and move it to private.

MozReview-Commit-ID: ITv3ISRbN5t

--HG--
extra : rebase_source : aa75bc11fc1a4af8df15db9224928b1f02267b80
2017-11-30 11:21:14 +08:00
JW Wang 7c3304f247 Bug 1421875. P2 - move MediaDecoder::NotifyDataArrived() down the class hierarchy. r=bechen,gerald
For it is never used by ChannelMediaDecoder.

MozReview-Commit-ID: Jtvlj0iwTm7

--HG--
extra : rebase_source : 8582486e0403cf78366adfdc0c11fab42fedb1c9
2017-11-30 11:07:13 +08:00
Fernando Jimenez 29f504c683 Bug 1421343 - MediaSourceDecoder uses SourceBuffer without including its header. r=cpearce
MozReview-Commit-ID: 3hnmMwzp1xH

--HG--
extra : rebase_source : 98dbebb34f84bb6922efc729411dc52e8584abb1
2017-11-29 09:00:53 +01:00
Margareta Eliza Balazs 112b2cef30 Merge mozilla-central to mozilla-autoland. r=merge a=merge CLOSED TREE 2017-11-20 11:47:28 +02:00
Fernando Jimenez Moreno 4fa89640c0 Bug 1418244 - Add missing headers to MSE SourceBufferResource and TrackBuffersManager. r=cpearce 2017-11-19 15:30:30 -05:00
Alfredo.Yang be0c9536ec Bug 1417795 - remove mp4_demuxer namespace part5. r=kinetik
MozReview-Commit-ID: Fo5p3kPyxAR

--HG--
rename : dom/media/mp4/Stream.h => dom/media/mp4/ByteStream.h
rename : dom/media/mp4/Interval.h => dom/media/mp4/MP4Interval.h
extra : rebase_source : b937a231ef0280ad03195cf98b15ecd080a20f49
2017-11-17 14:30:09 +08:00
Alfredo.Yang d6a0eb9d74 Bug 1417795 - remove mp4_demuxer namespace part3. r=kinetik
MozReview-Commit-ID: 9fM2VjY4Ckk

--HG--
extra : rebase_source : 24d971d44e1d9bd8b1589b4b542d792f75df376d
2017-11-17 08:53:25 +08:00
Alfredo.Yang a0056437d9 Bug 1417795 - remove mp4_demuxer namespace part2. r=kinetik
MozReview-Commit-ID: F8z1QW6WuUU

--HG--
extra : rebase_source : 9d137794bb1c6465da1d6b7aa6ba50265172ada3
2017-11-16 16:24:22 +08:00
Alfredo.Yang a2cd247c8f Bug 1417795 - remove mp4_demuxer namespace part1. r=kinetik
MozReview-Commit-ID: 6YrURoOq2wk

--HG--
extra : rebase_source : 3ea026780b210b42bd41163c654580a920d30181
2017-11-16 15:57:15 +08:00
JW Wang 1f62c1d92b Bug 1417869. P3 - pass descriptive messages to NetworkError(). r=jya
MozReview-Commit-ID: 6yaFJvXG3g8

--HG--
extra : rebase_source : 2d1c851098be7eb880a01432c504c6db96d86756
extra : source : a30f9699f49687b23d4ccf955d7a0af8ce0c7653
2017-11-17 11:07:30 +08:00
JW Wang 5a99c6b197 Bug 1417774 - remove unused MediaResource::Tell(). r=bechen
MozReview-Commit-ID: 3qlP4sSh9kM

--HG--
extra : rebase_source : 4002fec6f8c43abb640f9206cd715f3ecb02b373
2017-11-15 17:18:52 +08:00
Andrea Marchesini 4b1b084ce7 Bug 1416724 - part 3 - AbstractThread::Dispatch return value check in dom/media, r=jwwang 2017-11-15 07:58:03 +01:00
shindli 385fb3428c Backed out 4 changesets (bug 1416724) for failing /builds/worker/workspace/build/src/dom/media/hls/HLSDemuxer.cpp:89:5 r=backout on a CLOSED TREE
Backed out changeset 45352aa4319d (bug 1416724)
Backed out changeset 01d1e5263bcd (bug 1416724)
Backed out changeset bc854c315ec8 (bug 1416724)
Backed out changeset 35a50167485d (bug 1416724)
2017-11-15 09:49:04 +02:00
Andrea Marchesini 642cdd108b Bug 1416724 - part 3 - AbstractThread::Dispatch return value check in dom/media, r=jwwang 2017-11-15 07:58:03 +01:00
Andrea Marchesini 3f760d8258 Bug 1415564 - TaskQueue::Dispatch should return an error if failed, r=smaug 2017-11-09 01:43:40 +01:00
Sebastian Hengst d61954557d merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: Ai6Y5GGfkfT
2017-11-04 10:58:24 +01:00
Jon Coppeard fd86611724 Bug 1413993 - Remove unused USEC_PER_SEC constant r=jya
This constant is #defined in some MacOS system headers which causes compile errors.
2017-11-03 10:25:26 +00:00
Jean-Yves Avenard acabf2903c Bug 1295886 - P15. Enable FLAC mochitest on Android. r=gerald
MozReview-Commit-ID: 83mJleAMVro

--HG--
extra : rebase_source : ba445777b70a1b700eb21eb9809fecea76609598
2017-11-02 02:56:04 +01:00
Alastor Wu c683d23150 Bug 1362440 - part4 : parsing entire content to decide whether it's init segment. r=jya
The spec [1] defines what's the init segment, and the parser would return error
if the format is not correct.

[1] https://w3c.github.io/media-source/webm-byte-stream-format.html

MozReview-Commit-ID: 3nFHHdn5b89

--HG--
extra : rebase_source : 66fe592958801c4f9e2115f7729df2b9ece55ac3
2017-10-30 17:48:43 +08:00
Alastor Wu 65c50bf89e Bug 1362440 - part3 : add tests. r=jya
MozReview-Commit-ID: C4mXuPsMaF4

--HG--
extra : rebase_source : 11b69bde40b1ca336e2b9272aa2ec26c0e78507d
2017-10-30 17:48:35 +08:00
Alastor Wu 7440c83cae Bug 1362440 - part2 : parsing entire content to decide whether it's media segment. r=kinetik
The spec [1] defines what's the media segment, and the parser would return error
if the format is not correct.

[1] https://w3c.github.io/media-source/webm-byte-stream-format.html

MozReview-Commit-ID: 4hq59Pywz2t

--HG--
extra : rebase_source : 1136d2a673f11d612e0eb711db6affdce42bb525
2017-10-30 15:27:30 +08:00
Alfredo.Yang fc4a02e7c7 Bug 1411815 - use BufferReader instead of ByteReader in ContainerParser. r=kinetik
MozReview-Commit-ID: DB2J7w8PpAJ

--HG--
extra : rebase_source : 113b9832df3ac223c9adbcaa44f224d0c792892b
2017-10-19 11:12:48 +08:00
James Cheng ed18e57446 Bug 1407919 - Part3 - Add a gtest for testing the extraction function. r=gerald
MozReview-Commit-ID: 7CocV0rLtk7

--HG--
extra : rebase_source : 5fd1ac5e5623b2e4637b0e78541582432a87ac44
2017-10-13 21:17:35 +08:00
Jean-Yves Avenard 38b456068a Bug 1409272 - P2. Pre-roll vorbis by 80ms when seeking. r=gerald
The value by which we pre-roll is inconsequential, so long as we seek to the previous packet than the one we want. So 80ms will do.

MozReview-Commit-ID: 8iPOtjReZnb

--HG--
extra : rebase_source : 42908c6afc84cf783356fb7311ffe99b4ec76d96
2017-10-17 16:07:26 +02:00
Sebastian Hengst 34714cebde merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 2KL1o3EPUk
2017-10-17 23:52:28 +02:00
Alastor Wu c8a9b504ed Bug 1408987 - Part 2: Make mManager thread-safe. r=jya
mManager would be accessed in both main thread and task queue, and be set on task
queue, so we need to make sure it's thread-safe.

MozReview-Commit-ID: m76KeEsDgB
2017-10-17 16:53:54 +08:00
Alastor Wu bbdf374f35 Bug 1408987 - Part 1: Add OnTaskQueue() assertion to clarify functions' running thread. r=jya
MozReview-Commit-ID: 36sqB5SlOd
2017-10-17 15:58:44 +08:00
Alastor Wu def6113401 Bug 1409274 - remove the lock for SourceBufferTaskQueue. r=jya
It would only be accessed on task queue now, so we don't need to lock it.

MozReview-Commit-ID: 6jd36TQW4aA

--HG--
extra : rebase_source : e8bb53a226154312496149ab8f6b00dead49a3b6
2017-10-17 15:46:26 +08:00
Jean-Yves Avenard e891f573a5 Bug 1407940 - P2. Only ever access mTaskQueue in a thread-safe fashion. r=alwu,gerald
mTaskQueue is only read on the main thread, but read and written on the demuxer's taskqueue. We need to ensure that accesses are synchronised.

MozReview-Commit-ID: Gbc15iYgZOe

--HG--
extra : rebase_source : 006ff3f73c9895fa2f29e56123e690cdf66fe2c5
2017-10-12 13:30:47 +02:00
Jean-Yves Avenard 51e48cb035 Bug 1407940 - P1. Use Mutex in place of Monitor. r=gerald
MozReview-Commit-ID: Dy2WhS0YOq1

--HG--
extra : rebase_source : 9ce10f7c7c811d0f73ef39a6439cac92686f9793
2017-10-12 11:15:20 +02:00
Alastor Wu b8237a2029 Bug 1247189 - part5 : use IsCurrentThreadIn() as a main criteria to determine whether we're on the task queue or not. r=jya
The use of the TrackBuffersManager once detached is explictly forbidden, as such
OnTaskQueue() can only be used before the DetachTask ran: we now strongly assert
as such.

MozReview-Commit-ID: ycOI4QRElb

--HG--
extra : rebase_source : ecce8ac75587470c15268ab729b068f049702a8a
2017-10-12 10:49:25 +08:00
Alastor Wu b4c4772190 Bug 1247189 - part4 : ensure we always detach TBM from demuxers. r=jya
Ensure the TBM would always be detached from demuxers, before calling
TBM::detach().

MozReview-Commit-ID: DLWZHB3M3GG

--HG--
extra : rebase_source : 9e455022ba9360fb549222e9ad1238a3ae9d88ad
2017-10-12 10:49:21 +08:00
Alastor Wu 023e34cbe4 Bug 1247189 - part3 : don't process any task after detached. r=jya
From [1], the task was executed after finished detach task. It would be caused
by queuing two detach tasks in the task queue.

If the previous detach task is still waiting in the task queue when we're calling
the second detach(), then we might have two detach tasks in the queue.

[1] https://treeherder.mozilla.org/logviewer.html#?job_id=134315866&repo=try&lineNumber=2540

MozReview-Commit-ID: HohgKqeZy0s

--HG--
extra : rebase_source : 0d20f1b8648acaf2ed8e75b2631e905629c2abaf
2017-10-12 10:49:10 +08:00
Alastor Wu 5a164c7e06 Bug 1247189 - part2 : remove reference to TrackBuffersManagers once detached. r=jya
Should never access the TrackBuffersManager once the SourceBuffer has been detached.

MozReview-Commit-ID: EgVINj9B1vZ

--HG--
extra : rebase_source : 4b4dc3e5c4b507fe4cc40e80f507b575a8b87eb3
2017-10-11 10:55:21 +08:00
Alastor Wu d9f5f478d9 Bug 1247189 - part1 : should detach TBM after detaching it from demuxers. r=jya
After detaching TBM, we should not access it anymore. So we should finish all
other related detaching process, before detaching TBM.

MozReview-Commit-ID: 8bNzqXVHVyy

--HG--
extra : rebase_source : e135eb3d0fd4e5c41bbac4ebfc8d6fcbd1b32d5b
2017-10-11 10:49:05 +08:00
Ryan VanderMeulen 0dcd727f08 Merge m-c to autoland. a=merge 2017-10-11 17:55:13 -04:00
Tom Ritter 701ee70a22 Bug 1406687 Pass return values from fwrite to Unused to silence the warn-unused-result warning r=njn
MozReview-Commit-ID: 4v6tPF5aMz7

--HG--
extra : rebase_source : fe434db73a8da686391462c12b91648348abcdc9
2017-10-09 15:01:48 -05:00
Sebastian Hengst 0ed8d9a86e Backed out changeset 26e324eb052d (bug 1247189) for crashing in /media-source/mediasource-errors.html. r=backout
--HG--
extra : amend_source : 39152d1a0836f9f1e22cc4cc6a0a759f4258e81b
2017-10-11 12:45:50 +02:00
Sebastian Hengst 953fafcc3c Backed out changeset 5b9af87e76a9 (bug 1247189) 2017-10-11 12:45:45 +02:00
Sebastian Hengst 6479b83569 Backed out changeset 36a63b9f8dcb (bug 1247189) 2017-10-11 12:45:40 +02:00
Sebastian Hengst ebb7218fe9 Backed out changeset 85d236f46b00 (bug 1247189) 2017-10-11 12:45:34 +02:00
Sebastian Hengst e80bd4f030 Backed out changeset 9be5bbb35797 (bug 1247189) 2017-10-11 12:45:29 +02:00
Jean-Yves Avenard d34a7ebdc5 Bug 1407243 - Don't immediately fire canplaythrough for infinite/live streams. r=jwwang
MozReview-Commit-ID: 2LQFa8PHvO5

--HG--
extra : rebase_source : 3534a963202658870221fca9cc238185d7e55156
2017-10-10 16:14:24 +02:00
Alastor Wu 8ef6776c31 Bug 1247189 - part5 : use IsCurrentThreadIn() as a main criteria to determine whether we're on the task queue or not. r=jya
The use of the TrackBuffersManager once detached is explictly forbidden, as such
OnTaskQueue() can only be used before the DetachTask ran: we now strongly assert
as such.

MozReview-Commit-ID: ycOI4QRElb

--HG--
extra : rebase_source : 44ea3d0eb292e5c285d0aa4e10eefa41f20beed7
2017-10-11 16:12:13 +08:00
Alastor Wu f519e79462 Bug 1247189 - part4 : ensure we always detach TBM from demuxers. r=jya
Ensure the TBM would always be detached from demuxers, before calling
TBM::detach().

MozReview-Commit-ID: DLWZHB3M3GG

--HG--
extra : rebase_source : 0334b71534cfaccaf1d8985d827fe4e5d5bf0e9f
2017-10-11 11:01:08 +08:00