Commit Graph

1173 Commits

Author SHA1 Message Date
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