Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Issue 1658033002: Add SourceBuffer implementations of Audio/VideoTracks (Closed)

Created:
4 years, 10 months ago by servolk
Modified:
4 years, 8 months ago
Reviewers:
philipj_slow, wolenetz
CC:
fs, blink-reviews, blink-reviews-html_chromium.org, chromium-reviews, dglazkov+blink, eric.carlson_apple.com, feature-media-reviews_chromium.org, gasubic, mlamouri+watch-blink_chromium.org, philipj_slow, nessy, vcarbune.chromium
Base URL:
https://chromium.googlesource.com/chromium/src.git@pass-media-tracks-to-blink
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add SourceBuffer implementations of Audio/VideoTracks This CL provides SourceBuffer extensions described in MSE spec: http://www.w3.org/TR/media-source/#audio-track-extensions http://www.w3.org/TR/media-source/#video-track-extensions The only difference between those extensions and the existing audio/ video track is that these have the .sourceBuffer property, which is only going to be non-null for a/v tracks created by a SourceBuffer and will return the parent SourceBuffer object. I've looked at how other extension interfaces are implemented in blink, e.g. NavigatorGeolocation extension property, and tried to do the same. BUG=249427, 249428 Committed: https://crrev.com/1b3dc5a8202a332891b6aed5d4d4521db0b26261 Cr-Commit-Position: refs/heads/master@{#385816}

Patch Set 1 #

Patch Set 2 : ps2 #

Patch Set 3 : rebase #

Patch Set 4 : rebase #

Total comments: 20

Patch Set 5 : Fixes #

Patch Set 6 : Fixed copyright headers #

Patch Set 7 : Make Audio/VideoTrackSB non-finalizable #

Patch Set 8 : Make Audio/VideoTrackSB finalizable again #

Total comments: 9

Patch Set 9 : rebase #

Patch Set 10 : Fixed incorrect conflict resolution #

Patch Set 11 : Make m_sourceBuffer a strong Member of A/V tracks #

Patch Set 12 : rebase #

Patch Set 13 : Better formatting in idl files #

Patch Set 14 : Moved supplement functionality to a base class #

Patch Set 15 : rebase #

Patch Set 16 : Add A/V track lists to SourceBuffer and use A/V extensions #

Patch Set 17 : Updated test #

Patch Set 18 : Mark SourceBuffer A/V tracks as GarbageCollected in .idl #

Patch Set 19 : Make A/V track lists plain members in SourceBuffer #

Total comments: 8

Patch Set 20 : Remove redundant classes/files #

Patch Set 21 : Fix ChromeOS builds #

Total comments: 5

Patch Set 22 : rebase #

Patch Set 23 : rebase #

Patch Set 24 : rebase #

Patch Set 25 : rebase #

Patch Set 26 : rebase #

Patch Set 27 : rebase #

Patch Set 28 : rebase #

Patch Set 29 : rebase #

Total comments: 2

Patch Set 30 : Improved test + test coverage for addtrack events #

Patch Set 31 : rebase #

Total comments: 2

Patch Set 32 : rebase #

Patch Set 33 : rebase #

Patch Set 34 : rebase #

Patch Set 35 : Added SourceBufferTrackBaseSupplement::from #

Total comments: 4

Patch Set 36 : Added SourceBufferTrackBaseSupplement::fromIfExists #

Unified diffs Side-by-side diffs Delta from patch set Stats (+141 lines, -17 lines) Patch
M third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 1 chunk +17 lines, -14 lines 0 comments Download
M third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2 chunks +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/core.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/html/track/TrackBase.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 2 chunks +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/html/track/TrackBase.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 1 chunk +1 line, -0 lines 0 comments Download
A third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.idl View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +12 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3 chunks +3 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 1 chunk +34 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 1 chunk +52 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/modules/mediasource/VideoTrackSourceBuffer.idl View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +12 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/modules.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2 chunks +4 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 43 (8 generated)
servolk
A bit context: I'm working on a few CLs to allow us to get full ...
4 years, 10 months ago (2016-02-23 01:36:45 UTC) #3
philipj_slow
OK, so this is the context I was missing, and an important difference between AudioTrack ...
4 years, 10 months ago (2016-02-23 04:10:31 UTC) #4
philipj_slow
This scaffolding looks good, but there isn't anything that will actually populate audioTrackList/videoTrackList, and the ...
4 years, 10 months ago (2016-02-23 04:35:07 UTC) #5
servolk
https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/AudioTrack.idl File third_party/WebKit/Source/modules/mediasource/AudioTrack.idl (right): https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/AudioTrack.idl#newcode2 third_party/WebKit/Source/modules/mediasource/AudioTrack.idl:2: * Copyright (C) 2016 Google Inc. All rights reserved. ...
4 years, 10 months ago (2016-02-24 00:11:36 UTC) #6
servolk
https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h File third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h (right): https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h#newcode42 third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h:42: class SourceBufferAudioTrack final : public GarbageCollectedFinalized<SourceBufferAudioTrack>, public HeapSupplement<AudioTrack> { ...
4 years, 10 months ago (2016-02-24 02:37:15 UTC) #7
philipj_slow
https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp File third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp (right): https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp#newcode233 third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp:233: return *m_audioTracks; On 2016/02/24 00:11:36, servolk wrote: > On ...
4 years, 10 months ago (2016-02-26 13:36:54 UTC) #8
servolk
https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h File third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h (right): https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h#newcode42 third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h:42: class SourceBufferAudioTrack final : public GarbageCollectedFinalized<SourceBufferAudioTrack>, public HeapSupplement<AudioTrack> { ...
4 years, 9 months ago (2016-02-27 01:03:45 UTC) #9
fs
https://codereview.chromium.org/1658033002/diff/140001/third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.h File third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.h (right): https://codereview.chromium.org/1658033002/diff/140001/third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.h#newcode30 third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.h:30: WeakMember<SourceBuffer> m_sourceBuffer; On 2016/02/27 at 01:03:45, servolk wrote: > ...
4 years, 9 months ago (2016-02-29 11:11:11 UTC) #10
philipj_slow
https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h File third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h (right): https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h#newcode42 third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h:42: class SourceBufferAudioTrack final : public GarbageCollectedFinalized<SourceBufferAudioTrack>, public HeapSupplement<AudioTrack> { ...
4 years, 9 months ago (2016-03-02 11:20:44 UTC) #11
servolk
On 2016/03/02 11:20:44, philipj_UTC7 wrote: > https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h > File third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h > (right): > > https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBufferAudioTrack.h#newcode42 ...
4 years, 9 months ago (2016-03-03 03:38:19 UTC) #12
servolk
https://codereview.chromium.org/1658033002/diff/140001/third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.h File third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.h (right): https://codereview.chromium.org/1658033002/diff/140001/third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.h#newcode16 third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.h:16: class AudioTrackSourceBuffer final : public GarbageCollectedFinalized<AudioTrackSourceBuffer>, public HeapSupplement<AudioTrack> { ...
4 years, 9 months ago (2016-03-03 03:39:26 UTC) #13
philipj_slow
Sorry for being slower than a dead horse. This all looks pretty good, but here ...
4 years, 9 months ago (2016-03-10 13:12:17 UTC) #14
philipj_slow
https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp File third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp (right): https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp#newcode233 third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp:233: return *m_audioTracks; On 2016/02/26 13:36:54, philipj_UTC7 wrote: > On ...
4 years, 9 months ago (2016-03-10 13:13:49 UTC) #15
servolk
https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp File third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp (right): https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp#newcode233 third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp:233: return *m_audioTracks; On 2016/03/10 13:13:48, philipj_UTC7 wrote: > On ...
4 years, 9 months ago (2016-03-11 02:00:58 UTC) #16
servolk
https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp File third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp (right): https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp#newcode233 third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp:233: return *m_audioTracks; On 2016/03/11 02:00:57, servolk wrote: > On ...
4 years, 9 months ago (2016-03-11 02:03:37 UTC) #17
wolenetz
MSE part looking pretty good. non-nit comment summary: 1) I'm less clear on memory mgmt ...
4 years, 9 months ago (2016-03-23 20:18:53 UTC) #18
philipj_slow
https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp File third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp (right): https://codereview.chromium.org/1658033002/diff/60001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp#newcode233 third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp:233: return *m_audioTracks; On 2016/03/11 02:03:37, servolk wrote: > On ...
4 years, 9 months ago (2016-03-24 06:47:48 UTC) #19
philipj_slow
I've been reminded of an open HTML spec bug related to this: https://www.w3.org/Bugs/Public/show_bug.cgi?id=26461 I don't ...
4 years, 9 months ago (2016-03-24 06:52:40 UTC) #20
servolk
On 2016/03/23 20:18:53, wolenetz wrote: > MSE part looking pretty good. > > non-nit comment ...
4 years, 8 months ago (2016-03-31 00:01:43 UTC) #23
servolk
https://codereview.chromium.org/1658033002/diff/390001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp File third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp (right): https://codereview.chromium.org/1658033002/diff/390001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp#newcode239 third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp:239: return *m_audioTracks; On 2016/03/23 20:18:52, wolenetz wrote: > Prior ...
4 years, 8 months ago (2016-03-31 00:03:40 UTC) #24
servolk
On 2016/03/31 00:03:40, servolk wrote: > https://codereview.chromium.org/1658033002/diff/390001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp > File third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp (right): > > https://codereview.chromium.org/1658033002/diff/390001/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp#newcode239 > ...
4 years, 8 months ago (2016-03-31 02:20:21 UTC) #25
wolenetz
On 2016/03/31 00:01:43, servolk wrote: > On 2016/03/23 20:18:53, wolenetz wrote: > > MSE part ...
4 years, 8 months ago (2016-03-31 18:47:06 UTC) #26
wolenetz
lgtm % adding 'addtrack' event expectations' testing to the layout test. Sorry I missed that ...
4 years, 8 months ago (2016-03-31 18:57:59 UTC) #27
servolk
https://codereview.chromium.org/1658033002/diff/550001/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html File third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html (right): https://codereview.chromium.org/1658033002/diff/550001/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html#newcode16 third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-avtracks.html:16: test.expectEvent(sourceBuffer, 'updateend', 'initSegment append ended.'); On 2016/03/31 18:57:59, wolenetz ...
4 years, 8 months ago (2016-03-31 20:35:49 UTC) #28
wolenetz
(PS30 lgtm)
4 years, 8 months ago (2016-03-31 20:43:30 UTC) #29
servolk
On 2016/03/31 20:43:30, wolenetz_Sick_Apr1 wrote: > (PS30 lgtm) Ok, thanks Matt. Philip any further comments ...
4 years, 8 months ago (2016-04-01 18:33:58 UTC) #30
philipj_slow
https://codereview.chromium.org/1658033002/diff/590001/third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.h File third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.h (right): https://codereview.chromium.org/1658033002/diff/590001/third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.h#newcode19 third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.h:19: explicit SourceBufferTrackBaseSupplement(TrackBase&, SourceBuffer*); Can you make this constructor private ...
4 years, 8 months ago (2016-04-05 14:52:26 UTC) #31
philipj_slow
https://codereview.chromium.org/1658033002/diff/590001/third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.idl File third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.idl (right): https://codereview.chromium.org/1658033002/diff/590001/third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.idl#newcode8 third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.idl:8: ImplementedAs=SourceBufferTrackBaseSupplement, If you make the other suggested change, I ...
4 years, 8 months ago (2016-04-05 14:56:11 UTC) #32
servolk
On 2016/04/05 14:56:11, philipj wrote: > https://codereview.chromium.org/1658033002/diff/590001/third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.idl > File third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.idl > (right): > > https://codereview.chromium.org/1658033002/diff/590001/third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.idl#newcode8 ...
4 years, 8 months ago (2016-04-06 22:24:06 UTC) #33
servolk
On 2016/04/06 22:24:06, servolk wrote: > On 2016/04/05 14:56:11, philipj wrote: > > > https://codereview.chromium.org/1658033002/diff/590001/third_party/WebKit/Source/modules/mediasource/AudioTrackSourceBuffer.idl ...
4 years, 8 months ago (2016-04-06 22:24:44 UTC) #34
philipj_slow
LGTM % nits https://codereview.chromium.org/1658033002/diff/670001/third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.cpp File third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.cpp (right): https://codereview.chromium.org/1658033002/diff/670001/third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.cpp#newcode35 third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.cpp:35: SourceBufferTrackBaseSupplement* supplement = static_cast<SourceBufferTrackBaseSupplement*>(Supplement<TrackBase>::from(track, SupplementName)); You're ...
4 years, 8 months ago (2016-04-07 08:59:35 UTC) #35
servolk
https://codereview.chromium.org/1658033002/diff/670001/third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.cpp File third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.cpp (right): https://codereview.chromium.org/1658033002/diff/670001/third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.cpp#newcode35 third_party/WebKit/Source/modules/mediasource/SourceBufferTrackBaseSupplement.cpp:35: SourceBufferTrackBaseSupplement* supplement = static_cast<SourceBufferTrackBaseSupplement*>(Supplement<TrackBase>::from(track, SupplementName)); On 2016/04/07 08:59:35, philipj ...
4 years, 8 months ago (2016-04-07 17:03:55 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1658033002/690001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1658033002/690001
4 years, 8 months ago (2016-04-07 17:04:14 UTC) #39
commit-bot: I haz the power
Committed patchset #36 (id:690001)
4 years, 8 months ago (2016-04-07 18:31:16 UTC) #41
commit-bot: I haz the power
4 years, 8 months ago (2016-04-07 18:33:21 UTC) #43
Message was sent while issue was closed.
Patchset 36 (id:??) landed as
https://crrev.com/1b3dc5a8202a332891b6aed5d4d4521db0b26261
Cr-Commit-Position: refs/heads/master@{#385816}

Powered by Google App Engine
This is Rietveld 408576698