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 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 { | 82 { |
83 MediaStreamTrackVector audioTracks; | 83 MediaStreamTrackVector audioTracks; |
84 MediaStreamTrackVector videoTracks; | 84 MediaStreamTrackVector videoTracks; |
85 | 85 |
86 for (size_t i = 0; i < tracks.size(); ++i) | 86 for (size_t i = 0; i < tracks.size(); ++i) |
87 processTrack(tracks[i].get(), tracks[i]->kind() == "audio" ? audioTracks
: videoTracks); | 87 processTrack(tracks[i].get(), tracks[i]->kind() == "audio" ? audioTracks
: videoTracks); |
88 | 88 |
89 return adoptRefCountedGarbageCollectedWillBeNoop(new MediaStream(context, au
dioTracks, videoTracks)); | 89 return adoptRefCountedGarbageCollectedWillBeNoop(new MediaStream(context, au
dioTracks, videoTracks)); |
90 } | 90 } |
91 | 91 |
92 MediaStream* MediaStream::create(ExecutionContext* context, PassRefPtr<MediaStre
amDescriptor> streamDescriptor) | 92 MediaStream* MediaStream::create(ExecutionContext* context, MediaStreamDescripto
r* streamDescriptor) |
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, MediaStreamDescriptor* strea
mDescriptor) |
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); | 103 ScriptWrappable::init(this); |
104 m_descriptor->setClient(this); | 104 m_descriptor->setClient(this); |
105 | 105 |
106 size_t numberOfAudioTracks = m_descriptor->numberOfAudioComponents(); | 106 size_t numberOfAudioTracks = m_descriptor->numberOfAudioComponents(); |
107 m_audioTracks.reserveCapacity(numberOfAudioTracks); | 107 m_audioTracks.reserveCapacity(numberOfAudioTracks); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 m_descriptor = MediaStreamDescriptor::create(audioComponents, videoComponent
s); | 143 m_descriptor = MediaStreamDescriptor::create(audioComponents, videoComponent
s); |
144 m_descriptor->setClient(this); | 144 m_descriptor->setClient(this); |
145 MediaStreamCenter::instance().didCreateMediaStream(m_descriptor.get()); | 145 MediaStreamCenter::instance().didCreateMediaStream(m_descriptor.get()); |
146 | 146 |
147 m_audioTracks = audioTracks; | 147 m_audioTracks = audioTracks; |
148 m_videoTracks = videoTracks; | 148 m_videoTracks = videoTracks; |
149 } | 149 } |
150 | 150 |
151 MediaStream::~MediaStream() | 151 MediaStream::~MediaStream() |
152 { | 152 { |
153 m_descriptor->setClient(0); | |
154 } | 153 } |
155 | 154 |
156 bool MediaStream::ended() const | 155 bool MediaStream::ended() const |
157 { | 156 { |
158 return m_stopped || m_descriptor->ended(); | 157 return m_stopped || m_descriptor->ended(); |
159 } | 158 } |
160 | 159 |
161 MediaStreamTrackVector MediaStream::getTracks() | 160 MediaStreamTrackVector MediaStream::getTracks() |
162 { | 161 { |
163 MediaStreamTrackVector tracks; | 162 MediaStreamTrackVector tracks; |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 URLRegistry& MediaStream::registry() const | 387 URLRegistry& MediaStream::registry() const |
389 { | 388 { |
390 return MediaStreamRegistry::registry(); | 389 return MediaStreamRegistry::registry(); |
391 } | 390 } |
392 | 391 |
393 void MediaStream::trace(Visitor* visitor) | 392 void MediaStream::trace(Visitor* visitor) |
394 { | 393 { |
395 visitor->trace(m_audioTracks); | 394 visitor->trace(m_audioTracks); |
396 visitor->trace(m_videoTracks); | 395 visitor->trace(m_videoTracks); |
397 visitor->trace(m_scheduledEvents); | 396 visitor->trace(m_scheduledEvents); |
| 397 visitor->trace(m_descriptor); |
398 EventTargetWithInlineData::trace(visitor); | 398 EventTargetWithInlineData::trace(visitor); |
| 399 MediaStreamDescriptorClient::trace(visitor); |
399 } | 400 } |
400 | 401 |
401 } // namespace blink | 402 } // namespace blink |
OLD | NEW |