OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * Copyright (C) 2011, 2012 Ericsson AB. All rights reserved. | 3 * Copyright (C) 2011, 2012 Ericsson AB. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 { | 93 { |
94 return adoptRefCountedGarbageCollectedWillBeNoop(new MediaStream(context, st
reamDescriptor)); | 94 return adoptRefCountedGarbageCollectedWillBeNoop(new MediaStream(context, st
reamDescriptor)); |
95 } | 95 } |
96 | 96 |
97 MediaStream::MediaStream(ExecutionContext* context, PassRefPtr<MediaStreamDescri
ptor> streamDescriptor) | 97 MediaStream::MediaStream(ExecutionContext* context, PassRefPtr<MediaStreamDescri
ptor> streamDescriptor) |
98 : ContextLifecycleObserver(context) | 98 : ContextLifecycleObserver(context) |
99 , m_stopped(false) | 99 , m_stopped(false) |
100 , m_descriptor(streamDescriptor) | 100 , m_descriptor(streamDescriptor) |
101 , m_scheduledEventTimer(this, &MediaStream::scheduledEventTimerFired) | 101 , m_scheduledEventTimer(this, &MediaStream::scheduledEventTimerFired) |
102 { | 102 { |
103 ScriptWrappable::init(this); | |
104 m_descriptor->setClient(this); | 103 m_descriptor->setClient(this); |
105 | 104 |
106 size_t numberOfAudioTracks = m_descriptor->numberOfAudioComponents(); | 105 size_t numberOfAudioTracks = m_descriptor->numberOfAudioComponents(); |
107 m_audioTracks.reserveCapacity(numberOfAudioTracks); | 106 m_audioTracks.reserveCapacity(numberOfAudioTracks); |
108 for (size_t i = 0; i < numberOfAudioTracks; i++) { | 107 for (size_t i = 0; i < numberOfAudioTracks; i++) { |
109 MediaStreamTrack* newTrack = MediaStreamTrack::create(context, m_descrip
tor->audioComponent(i)); | 108 MediaStreamTrack* newTrack = MediaStreamTrack::create(context, m_descrip
tor->audioComponent(i)); |
110 newTrack->registerMediaStream(this); | 109 newTrack->registerMediaStream(this); |
111 m_audioTracks.append(newTrack); | 110 m_audioTracks.append(newTrack); |
112 } | 111 } |
113 | 112 |
114 size_t numberOfVideoTracks = m_descriptor->numberOfVideoComponents(); | 113 size_t numberOfVideoTracks = m_descriptor->numberOfVideoComponents(); |
115 m_videoTracks.reserveCapacity(numberOfVideoTracks); | 114 m_videoTracks.reserveCapacity(numberOfVideoTracks); |
116 for (size_t i = 0; i < numberOfVideoTracks; i++) { | 115 for (size_t i = 0; i < numberOfVideoTracks; i++) { |
117 MediaStreamTrack* newTrack = MediaStreamTrack::create(context, m_descrip
tor->videoComponent(i)); | 116 MediaStreamTrack* newTrack = MediaStreamTrack::create(context, m_descrip
tor->videoComponent(i)); |
118 newTrack->registerMediaStream(this); | 117 newTrack->registerMediaStream(this); |
119 m_videoTracks.append(newTrack); | 118 m_videoTracks.append(newTrack); |
120 } | 119 } |
121 } | 120 } |
122 | 121 |
123 MediaStream::MediaStream(ExecutionContext* context, const MediaStreamTrackVector
& audioTracks, const MediaStreamTrackVector& videoTracks) | 122 MediaStream::MediaStream(ExecutionContext* context, const MediaStreamTrackVector
& audioTracks, const MediaStreamTrackVector& videoTracks) |
124 : ContextLifecycleObserver(context) | 123 : ContextLifecycleObserver(context) |
125 , m_stopped(false) | 124 , m_stopped(false) |
126 , m_scheduledEventTimer(this, &MediaStream::scheduledEventTimerFired) | 125 , m_scheduledEventTimer(this, &MediaStream::scheduledEventTimerFired) |
127 { | 126 { |
128 ScriptWrappable::init(this); | |
129 | |
130 MediaStreamComponentVector audioComponents; | 127 MediaStreamComponentVector audioComponents; |
131 MediaStreamComponentVector videoComponents; | 128 MediaStreamComponentVector videoComponents; |
132 | 129 |
133 MediaStreamTrackVector::const_iterator iter; | 130 MediaStreamTrackVector::const_iterator iter; |
134 for (iter = audioTracks.begin(); iter != audioTracks.end(); ++iter) { | 131 for (iter = audioTracks.begin(); iter != audioTracks.end(); ++iter) { |
135 (*iter)->registerMediaStream(this); | 132 (*iter)->registerMediaStream(this); |
136 audioComponents.append((*iter)->component()); | 133 audioComponents.append((*iter)->component()); |
137 } | 134 } |
138 for (iter = videoTracks.begin(); iter != videoTracks.end(); ++iter) { | 135 for (iter = videoTracks.begin(); iter != videoTracks.end(); ++iter) { |
139 (*iter)->registerMediaStream(this); | 136 (*iter)->registerMediaStream(this); |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 | 389 |
393 void MediaStream::trace(Visitor* visitor) | 390 void MediaStream::trace(Visitor* visitor) |
394 { | 391 { |
395 visitor->trace(m_audioTracks); | 392 visitor->trace(m_audioTracks); |
396 visitor->trace(m_videoTracks); | 393 visitor->trace(m_videoTracks); |
397 visitor->trace(m_scheduledEvents); | 394 visitor->trace(m_scheduledEvents); |
398 EventTargetWithInlineData::trace(visitor); | 395 EventTargetWithInlineData::trace(visitor); |
399 } | 396 } |
400 | 397 |
401 } // namespace blink | 398 } // namespace blink |
OLD | NEW |