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

Side by Side Diff: Source/modules/mediasource/SourceBuffer.cpp

Issue 61603006: Remove MediaSourcePrivate/SourceBufferPrivate (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: assert null Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * 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 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 24 matching lines...) Expand all
35 #include "core/dom/ExceptionCode.h" 35 #include "core/dom/ExceptionCode.h"
36 #include "core/dom/ExecutionContext.h" 36 #include "core/dom/ExecutionContext.h"
37 #include "core/events/Event.h" 37 #include "core/events/Event.h"
38 #include "core/events/GenericEventQueue.h" 38 #include "core/events/GenericEventQueue.h"
39 #include "core/fileapi/FileReaderLoader.h" 39 #include "core/fileapi/FileReaderLoader.h"
40 #include "core/fileapi/Stream.h" 40 #include "core/fileapi/Stream.h"
41 #include "core/html/TimeRanges.h" 41 #include "core/html/TimeRanges.h"
42 #include "modules/mediasource/MediaSource.h" 42 #include "modules/mediasource/MediaSource.h"
43 #include "platform/Logging.h" 43 #include "platform/Logging.h"
44 #include "platform/TraceEvent.h" 44 #include "platform/TraceEvent.h"
45 #include "public/platform/WebSourceBuffer.h"
45 #include "wtf/ArrayBuffer.h" 46 #include "wtf/ArrayBuffer.h"
46 #include "wtf/ArrayBufferView.h" 47 #include "wtf/ArrayBufferView.h"
47 #include "wtf/MathExtras.h" 48 #include "wtf/MathExtras.h"
48 49
49 #include <limits> 50 #include <limits>
50 51
52 using blink::WebSourceBuffer;
53
51 namespace WebCore { 54 namespace WebCore {
52 55
53 PassRefPtr<SourceBuffer> SourceBuffer::create(PassOwnPtr<SourceBufferPrivate> so urceBufferPrivate, MediaSource* source, GenericEventQueue* asyncEventQueue) 56 PassRefPtr<SourceBuffer> SourceBuffer::create(PassOwnPtr<WebSourceBuffer> webSou rceBuffer, MediaSource* source, GenericEventQueue* asyncEventQueue)
54 { 57 {
55 RefPtr<SourceBuffer> sourceBuffer(adoptRef(new SourceBuffer(sourceBufferPriv ate, source, asyncEventQueue))); 58 RefPtr<SourceBuffer> sourceBuffer(adoptRef(new SourceBuffer(webSourceBuffer, source, asyncEventQueue)));
56 sourceBuffer->suspendIfNeeded(); 59 sourceBuffer->suspendIfNeeded();
57 return sourceBuffer.release(); 60 return sourceBuffer.release();
58 } 61 }
59 62
60 SourceBuffer::SourceBuffer(PassOwnPtr<SourceBufferPrivate> sourceBufferPrivate, MediaSource* source, GenericEventQueue* asyncEventQueue) 63 SourceBuffer::SourceBuffer(PassOwnPtr<WebSourceBuffer> webSourceBuffer, MediaSou rce* source, GenericEventQueue* asyncEventQueue)
61 : ActiveDOMObject(source->executionContext()) 64 : ActiveDOMObject(source->executionContext())
62 , m_private(sourceBufferPrivate) 65 , m_webSourceBuffer(webSourceBuffer)
63 , m_source(source) 66 , m_source(source)
64 , m_asyncEventQueue(asyncEventQueue) 67 , m_asyncEventQueue(asyncEventQueue)
65 , m_updating(false) 68 , m_updating(false)
66 , m_timestampOffset(0) 69 , m_timestampOffset(0)
67 , m_appendWindowStart(0) 70 , m_appendWindowStart(0)
68 , m_appendWindowEnd(std::numeric_limits<double>::infinity()) 71 , m_appendWindowEnd(std::numeric_limits<double>::infinity())
69 , m_appendBufferAsyncPartRunner(this, &SourceBuffer::appendBufferAsyncPart) 72 , m_appendBufferAsyncPartRunner(this, &SourceBuffer::appendBufferAsyncPart)
70 , m_pendingRemoveStart(-1) 73 , m_pendingRemoveStart(-1)
71 , m_pendingRemoveEnd(-1) 74 , m_pendingRemoveEnd(-1)
72 , m_removeAsyncPartRunner(this, &SourceBuffer::removeAsyncPart) 75 , m_removeAsyncPartRunner(this, &SourceBuffer::removeAsyncPart)
73 , m_streamMaxSizeValid(false) 76 , m_streamMaxSizeValid(false)
74 , m_streamMaxSize(0) 77 , m_streamMaxSize(0)
75 , m_appendStreamAsyncPartRunner(this, &SourceBuffer::appendStreamAsyncPart) 78 , m_appendStreamAsyncPartRunner(this, &SourceBuffer::appendStreamAsyncPart)
76 { 79 {
77 ASSERT(m_private); 80 ASSERT(m_webSourceBuffer);
78 ASSERT(m_source); 81 ASSERT(m_source);
79 ScriptWrappable::init(this); 82 ScriptWrappable::init(this);
80 } 83 }
81 84
82 SourceBuffer::~SourceBuffer() 85 SourceBuffer::~SourceBuffer()
83 { 86 {
84 ASSERT(isRemoved()); 87 ASSERT(isRemoved());
85 ASSERT(!m_loader); 88 ASSERT(!m_loader);
86 ASSERT(!m_stream); 89 ASSERT(!m_stream);
87 } 90 }
88 91
89 PassRefPtr<TimeRanges> SourceBuffer::buffered(ExceptionState& es) const 92 PassRefPtr<TimeRanges> SourceBuffer::buffered(ExceptionState& es) const
90 { 93 {
91 // Section 3.1 buffered attribute steps. 94 // Section 3.1 buffered attribute steps.
92 // 1. If this object has been removed from the sourceBuffers attribute of th e parent media source then throw an 95 // 1. If this object has been removed from the sourceBuffers attribute of th e parent media source then throw an
93 // InvalidStateError exception and abort these steps. 96 // InvalidStateError exception and abort these steps.
94 if (isRemoved()) { 97 if (isRemoved()) {
95 es.throwUninformativeAndGenericDOMException(InvalidStateError); 98 es.throwUninformativeAndGenericDOMException(InvalidStateError);
96 return 0; 99 return 0;
97 } 100 }
98 101
99 // 2. Return a new static normalized TimeRanges object for the media segment s buffered. 102 // 2. Return a new static normalized TimeRanges object for the media segment s buffered.
100 return m_private->buffered(); 103 return TimeRanges::create(m_webSourceBuffer->buffered());
101 } 104 }
102 105
103 double SourceBuffer::timestampOffset() const 106 double SourceBuffer::timestampOffset() const
104 { 107 {
105 return m_timestampOffset; 108 return m_timestampOffset;
106 } 109 }
107 110
108 void SourceBuffer::setTimestampOffset(double offset, ExceptionState& es) 111 void SourceBuffer::setTimestampOffset(double offset, ExceptionState& es)
109 { 112 {
110 // Section 3.1 timestampOffset attribute setter steps. 113 // Section 3.1 timestampOffset attribute setter steps.
111 // 1. Let new timestamp offset equal the new value being assigned to this at tribute. 114 // 1. Let new timestamp offset equal the new value being assigned to this at tribute.
112 // 2. If this object has been removed from the sourceBuffers attribute of th e parent media source, then throw an 115 // 2. If this object has been removed from the sourceBuffers attribute of th e parent media source, then throw an
113 // InvalidStateError exception and abort these steps. 116 // InvalidStateError exception and abort these steps.
114 // 3. If the updating attribute equals true, then throw an InvalidStateError exception and abort these steps. 117 // 3. If the updating attribute equals true, then throw an InvalidStateError exception and abort these steps.
115 if (isRemoved() || m_updating) { 118 if (isRemoved() || m_updating) {
116 es.throwUninformativeAndGenericDOMException(InvalidStateError); 119 es.throwUninformativeAndGenericDOMException(InvalidStateError);
117 return; 120 return;
118 } 121 }
119 122
120 // 4. If the readyState attribute of the parent media source is in the "ende d" state then run the following steps: 123 // 4. If the readyState attribute of the parent media source is in the "ende d" state then run the following steps:
121 // 4.1 Set the readyState attribute of the parent media source to "open" 124 // 4.1 Set the readyState attribute of the parent media source to "open"
122 // 4.2 Queue a task to fire a simple event named sourceopen at the parent me dia source. 125 // 4.2 Queue a task to fire a simple event named sourceopen at the parent me dia source.
123 m_source->openIfInEndedState(); 126 m_source->openIfInEndedState();
124 127
125 // 5. If this object is waiting for the end of a media segment to be appende d, then throw an InvalidStateError 128 // 5. If this object is waiting for the end of a media segment to be appende d, then throw an InvalidStateError
126 // and abort these steps. 129 // and abort these steps.
127 // 130 //
128 // FIXME: Add step 6 text when mode attribute is implemented. 131 // FIXME: Add step 6 text when mode attribute is implemented.
129 if (!m_private->setTimestampOffset(offset)) { 132 if (!m_webSourceBuffer->setTimestampOffset(offset)) {
130 es.throwUninformativeAndGenericDOMException(InvalidStateError); 133 es.throwUninformativeAndGenericDOMException(InvalidStateError);
131 return; 134 return;
132 } 135 }
133 136
134 // 7. Update the attribute to new timestamp offset. 137 // 7. Update the attribute to new timestamp offset.
135 m_timestampOffset = offset; 138 m_timestampOffset = offset;
136 } 139 }
137 140
138 double SourceBuffer::appendWindowStart() const 141 double SourceBuffer::appendWindowStart() const
139 { 142 {
(...skipping 19 matching lines...) Expand all
159 return; 162 return;
160 } 163 }
161 164
162 // 3. If the new value is less than 0 or greater than or equal to appendWind owEnd then throw an InvalidAccessError 165 // 3. If the new value is less than 0 or greater than or equal to appendWind owEnd then throw an InvalidAccessError
163 // exception and abort these steps. 166 // exception and abort these steps.
164 if (start < 0 || start >= m_appendWindowEnd) { 167 if (start < 0 || start >= m_appendWindowEnd) {
165 es.throwUninformativeAndGenericDOMException(InvalidAccessError); 168 es.throwUninformativeAndGenericDOMException(InvalidAccessError);
166 return; 169 return;
167 } 170 }
168 171
169 m_private->setAppendWindowStart(start); 172 m_webSourceBuffer->setAppendWindowStart(start);
170 173
171 // 4. Update the attribute to the new value. 174 // 4. Update the attribute to the new value.
172 m_appendWindowStart = start; 175 m_appendWindowStart = start;
173 } 176 }
174 177
175 double SourceBuffer::appendWindowEnd() const 178 double SourceBuffer::appendWindowEnd() const
176 { 179 {
177 return m_appendWindowEnd; 180 return m_appendWindowEnd;
178 } 181 }
179 182
180 void SourceBuffer::setAppendWindowEnd(double end, ExceptionState& es) 183 void SourceBuffer::setAppendWindowEnd(double end, ExceptionState& es)
181 { 184 {
182 // Section 3.1 appendWindowEnd attribute setter steps. 185 // Section 3.1 appendWindowEnd attribute setter steps.
183 // 1. If this object has been removed from the sourceBuffers attribute of th e parent media source then throw an 186 // 1. If this object has been removed from the sourceBuffers attribute of th e parent media source then throw an
184 // InvalidStateError exception and abort these steps. 187 // InvalidStateError exception and abort these steps.
185 // 2. If the updating attribute equals true, then throw an InvalidStateError exception and abort these steps. 188 // 2. If the updating attribute equals true, then throw an InvalidStateError exception and abort these steps.
186 if (isRemoved() || m_updating) { 189 if (isRemoved() || m_updating) {
187 es.throwUninformativeAndGenericDOMException(InvalidStateError); 190 es.throwUninformativeAndGenericDOMException(InvalidStateError);
188 return; 191 return;
189 } 192 }
190 193
191 // 3. If the new value equals NaN, then throw an InvalidAccessError and abor t these steps. 194 // 3. If the new value equals NaN, then throw an InvalidAccessError and abor t these steps.
192 // 4. If the new value is less than or equal to appendWindowStart then throw an InvalidAccessError 195 // 4. If the new value is less than or equal to appendWindowStart then throw an InvalidAccessError
193 // exception and abort these steps. 196 // exception and abort these steps.
194 if (std::isnan(end) || end <= m_appendWindowStart) { 197 if (std::isnan(end) || end <= m_appendWindowStart) {
195 es.throwUninformativeAndGenericDOMException(InvalidAccessError); 198 es.throwUninformativeAndGenericDOMException(InvalidAccessError);
196 return; 199 return;
197 } 200 }
198 201
199 m_private->setAppendWindowEnd(end); 202 m_webSourceBuffer->setAppendWindowEnd(end);
200 203
201 // 5. Update the attribute to the new value. 204 // 5. Update the attribute to the new value.
202 m_appendWindowEnd = end; 205 m_appendWindowEnd = end;
203 } 206 }
204 207
205 void SourceBuffer::appendBuffer(PassRefPtr<ArrayBuffer> data, ExceptionState& es ) 208 void SourceBuffer::appendBuffer(PassRefPtr<ArrayBuffer> data, ExceptionState& es )
206 { 209 {
207 // Section 3.2 appendBuffer() 210 // Section 3.2 appendBuffer()
208 // https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-sou rce.html#widl-SourceBuffer-appendBuffer-void-ArrayBufferView-data 211 // https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-sou rce.html#widl-SourceBuffer-appendBuffer-void-ArrayBufferView-data
209 // 1. If data is null then throw an InvalidAccessError exception and abort t hese steps. 212 // 1. If data is null then throw an InvalidAccessError exception and abort t hese steps.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 // then throw an InvalidStateError exception and abort these steps. 255 // then throw an InvalidStateError exception and abort these steps.
253 if (isRemoved() || !m_source->isOpen()) { 256 if (isRemoved() || !m_source->isOpen()) {
254 es.throwUninformativeAndGenericDOMException(InvalidStateError); 257 es.throwUninformativeAndGenericDOMException(InvalidStateError);
255 return; 258 return;
256 } 259 }
257 260
258 // 3. If the sourceBuffer.updating attribute equals true, then run the follo wing steps: ... 261 // 3. If the sourceBuffer.updating attribute equals true, then run the follo wing steps: ...
259 abortIfUpdating(); 262 abortIfUpdating();
260 263
261 // 4. Run the reset parser state algorithm. 264 // 4. Run the reset parser state algorithm.
262 m_private->abort(); 265 m_webSourceBuffer->abort();
263 266
264 // 5. Set appendWindowStart to 0. 267 // 5. Set appendWindowStart to 0.
265 setAppendWindowStart(0, es); 268 setAppendWindowStart(0, es);
266 269
267 // 6. Set appendWindowEnd to positive Infinity. 270 // 6. Set appendWindowEnd to positive Infinity.
268 setAppendWindowEnd(std::numeric_limits<double>::infinity(), es); 271 setAppendWindowEnd(std::numeric_limits<double>::infinity(), es);
269 } 272 }
270 273
271 void SourceBuffer::remove(double start, double end, ExceptionState& es) 274 void SourceBuffer::remove(double start, double end, ExceptionState& es)
272 { 275 {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 TRACE_EVENT_ASYNC_END0("media", traceEventName, this); 350 TRACE_EVENT_ASYNC_END0("media", traceEventName, this);
348 } 351 }
349 352
350 void SourceBuffer::removedFromMediaSource() 353 void SourceBuffer::removedFromMediaSource()
351 { 354 {
352 if (isRemoved()) 355 if (isRemoved())
353 return; 356 return;
354 357
355 abortIfUpdating(); 358 abortIfUpdating();
356 359
357 m_private->removedFromMediaSource(); 360 m_webSourceBuffer->removedFromMediaSource();
361 m_webSourceBuffer.clear();
358 m_source = 0; 362 m_source = 0;
359 m_asyncEventQueue = 0; 363 m_asyncEventQueue = 0;
360 } 364 }
361 365
362 bool SourceBuffer::hasPendingActivity() const 366 bool SourceBuffer::hasPendingActivity() const
363 { 367 {
364 return m_source; 368 return m_source;
365 } 369 }
366 370
367 void SourceBuffer::suspend() 371 void SourceBuffer::suspend()
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 TRACE_EVENT_ASYNC_STEP0("media", "SourceBuffer::appendBuffer", this, "append ing"); 456 TRACE_EVENT_ASYNC_STEP0("media", "SourceBuffer::appendBuffer", this, "append ing");
453 457
454 // Section 3.5.4 Buffer Append Algorithm 458 // Section 3.5.4 Buffer Append Algorithm
455 // https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-sou rce.html#sourcebuffer-buffer-append 459 // https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-sou rce.html#sourcebuffer-buffer-append
456 460
457 // 1. Run the segment parser loop algorithm. 461 // 1. Run the segment parser loop algorithm.
458 // Step 2 doesn't apply since we run Step 1 synchronously here. 462 // Step 2 doesn't apply since we run Step 1 synchronously here.
459 size_t appendSize = m_pendingAppendData.size(); 463 size_t appendSize = m_pendingAppendData.size();
460 if (!appendSize) { 464 if (!appendSize) {
461 // Resize buffer for 0 byte appends so we always have a valid pointer. 465 // Resize buffer for 0 byte appends so we always have a valid pointer.
462 // We need to convey all appends, even 0 byte ones to |m_private| so 466 // We need to convey all appends, even 0 byte ones to |m_webSourceBuffer |
463 // that it can clear its end of stream state if necessary. 467 // so that it can clear its end of stream state if necessary.
464 m_pendingAppendData.resize(1); 468 m_pendingAppendData.resize(1);
465 } 469 }
466 m_private->append(m_pendingAppendData.data(), appendSize); 470 m_webSourceBuffer->append(m_pendingAppendData.data(), appendSize);
467 471
468 // 3. Set the updating attribute to false. 472 // 3. Set the updating attribute to false.
469 m_updating = false; 473 m_updating = false;
470 m_pendingAppendData.clear(); 474 m_pendingAppendData.clear();
471 475
472 // 4. Queue a task to fire a simple event named update at this SourceBuffer object. 476 // 4. Queue a task to fire a simple event named update at this SourceBuffer object.
473 scheduleEvent(EventTypeNames::update); 477 scheduleEvent(EventTypeNames::update);
474 478
475 // 5. Queue a task to fire a simple event named updateend at this SourceBuff er object. 479 // 5. Queue a task to fire a simple event named updateend at this SourceBuff er object.
476 scheduleEvent(EventTypeNames::updateend); 480 scheduleEvent(EventTypeNames::updateend);
477 TRACE_EVENT_ASYNC_END0("media", "SourceBuffer::appendBuffer", this); 481 TRACE_EVENT_ASYNC_END0("media", "SourceBuffer::appendBuffer", this);
478 } 482 }
479 483
480 void SourceBuffer::removeAsyncPart() 484 void SourceBuffer::removeAsyncPart()
481 { 485 {
482 ASSERT(m_updating); 486 ASSERT(m_updating);
483 ASSERT(m_pendingRemoveStart >= 0); 487 ASSERT(m_pendingRemoveStart >= 0);
484 ASSERT(m_pendingRemoveStart < m_pendingRemoveEnd); 488 ASSERT(m_pendingRemoveStart < m_pendingRemoveEnd);
485 489
486 // Section 3.2 remove() method steps 490 // Section 3.2 remove() method steps
487 // https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-sou rce.html#widl-SourceBuffer-remove-void-double-start-double-end 491 // https://dvcs.w3.org/hg/html-media/raw-file/default/media-source/media-sou rce.html#widl-SourceBuffer-remove-void-double-start-double-end
488 492
489 // 9. Run the coded frame removal algorithm with start and end as the start and end of the removal range. 493 // 9. Run the coded frame removal algorithm with start and end as the start and end of the removal range.
490 m_private->remove(m_pendingRemoveStart, m_pendingRemoveEnd); 494 m_webSourceBuffer->remove(m_pendingRemoveStart, m_pendingRemoveEnd);
491 495
492 // 10. Set the updating attribute to false. 496 // 10. Set the updating attribute to false.
493 m_updating = false; 497 m_updating = false;
494 m_pendingRemoveStart = -1; 498 m_pendingRemoveStart = -1;
495 m_pendingRemoveEnd = -1; 499 m_pendingRemoveEnd = -1;
496 500
497 // 11. Queue a task to fire a simple event named update at this SourceBuffer object. 501 // 11. Queue a task to fire a simple event named update at this SourceBuffer object.
498 scheduleEvent(EventTypeNames::update); 502 scheduleEvent(EventTypeNames::update);
499 503
500 // 12. Queue a task to fire a simple event named updateend at this SourceBuf fer object. 504 // 12. Queue a task to fire a simple event named updateend at this SourceBuf fer object.
(...skipping 18 matching lines...) Expand all
519 if (isRemoved() || m_updating) { 523 if (isRemoved() || m_updating) {
520 es.throwUninformativeAndGenericDOMException(InvalidStateError); 524 es.throwUninformativeAndGenericDOMException(InvalidStateError);
521 return; 525 return;
522 } 526 }
523 527
524 TRACE_EVENT_ASYNC_BEGIN0("media", "SourceBuffer::appendStream", this); 528 TRACE_EVENT_ASYNC_BEGIN0("media", "SourceBuffer::appendStream", this);
525 529
526 // 3. If the readyState attribute of the parent media source is in the "end ed" state then run the following steps: ... 530 // 3. If the readyState attribute of the parent media source is in the "end ed" state then run the following steps: ...
527 m_source->openIfInEndedState(); 531 m_source->openIfInEndedState();
528 532
529 // Steps 4-5 of the prepare append algorithm are handled by m_private. 533 // Steps 4-5 of the prepare append algorithm are handled by m_webSourceBuffe r.
530 534
531 // 3. Set the updating attribute to true. 535 // 3. Set the updating attribute to true.
532 m_updating = true; 536 m_updating = true;
533 537
534 // 4. Queue a task to fire a simple event named updatestart at this SourceBu ffer object. 538 // 4. Queue a task to fire a simple event named updatestart at this SourceBu ffer object.
535 scheduleEvent(EventTypeNames::updatestart); 539 scheduleEvent(EventTypeNames::updatestart);
536 540
537 // 5. Asynchronously run the stream append loop algorithm with stream and ma xSize. 541 // 5. Asynchronously run the stream append loop algorithm with stream and ma xSize.
538 542
539 stream->neuter(); 543 stream->neuter();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 // 3. Queue a task to fire a simple event named error at this SourceBuff er object. 586 // 3. Queue a task to fire a simple event named error at this SourceBuff er object.
583 scheduleEvent(EventTypeNames::error); 587 scheduleEvent(EventTypeNames::error);
584 588
585 // 4. Queue a task to fire a simple event named updateend at this Source Buffer object. 589 // 4. Queue a task to fire a simple event named updateend at this Source Buffer object.
586 scheduleEvent(EventTypeNames::updateend); 590 scheduleEvent(EventTypeNames::updateend);
587 TRACE_EVENT_ASYNC_END0("media", "SourceBuffer::appendStream", this); 591 TRACE_EVENT_ASYNC_END0("media", "SourceBuffer::appendStream", this);
588 return; 592 return;
589 } 593 }
590 594
591 // Section 3.5.6 Stream Append Loop 595 // Section 3.5.6 Stream Append Loop
592 // Steps 1-11 are handled by appendStreamAsyncPart(), |m_loader|, and |m_pri vate|. 596 // Steps 1-11 are handled by appendStreamAsyncPart(), |m_loader|, and |m_web SourceBuffer|.
593 // 12. Loop Done: Set the updating attribute to false. 597 // 12. Loop Done: Set the updating attribute to false.
594 m_updating = false; 598 m_updating = false;
595 599
596 // 13. Queue a task to fire a simple event named update at this SourceBuffer object. 600 // 13. Queue a task to fire a simple event named update at this SourceBuffer object.
597 scheduleEvent(EventTypeNames::update); 601 scheduleEvent(EventTypeNames::update);
598 602
599 // 14. Queue a task to fire a simple event named updateend at this SourceBuf fer object. 603 // 14. Queue a task to fire a simple event named updateend at this SourceBuf fer object.
600 scheduleEvent(EventTypeNames::updateend); 604 scheduleEvent(EventTypeNames::updateend);
601 TRACE_EVENT_ASYNC_END0("media", "SourceBuffer::appendStream", this); 605 TRACE_EVENT_ASYNC_END0("media", "SourceBuffer::appendStream", this);
602 } 606 }
(...skipping 10 matching lines...) Expand all
613 { 617 {
614 LOG(Media, "SourceBuffer::didStartLoading() %p", this); 618 LOG(Media, "SourceBuffer::didStartLoading() %p", this);
615 } 619 }
616 620
617 void SourceBuffer::didReceiveDataForClient(const char* data, unsigned dataLength ) 621 void SourceBuffer::didReceiveDataForClient(const char* data, unsigned dataLength )
618 { 622 {
619 LOG(Media, "SourceBuffer::didReceiveDataForClient(%d) %p", dataLength, this) ; 623 LOG(Media, "SourceBuffer::didReceiveDataForClient(%d) %p", dataLength, this) ;
620 ASSERT(m_updating); 624 ASSERT(m_updating);
621 ASSERT(m_loader); 625 ASSERT(m_loader);
622 626
623 m_private->append(reinterpret_cast<const unsigned char*>(data), dataLength); 627 m_webSourceBuffer->append(reinterpret_cast<const unsigned char*>(data), data Length);
624 } 628 }
625 629
626 void SourceBuffer::didFinishLoading() 630 void SourceBuffer::didFinishLoading()
627 { 631 {
628 LOG(Media, "SourceBuffer::didFinishLoading() %p", this); 632 LOG(Media, "SourceBuffer::didFinishLoading() %p", this);
629 appendStreamDone(true); 633 appendStreamDone(true);
630 } 634 }
631 635
632 void SourceBuffer::didFail(FileError::ErrorCode errorCode) 636 void SourceBuffer::didFail(FileError::ErrorCode errorCode)
633 { 637 {
634 LOG(Media, "SourceBuffer::didFail(%d) %p", errorCode, this); 638 LOG(Media, "SourceBuffer::didFail(%d) %p", errorCode, this);
635 appendStreamDone(false); 639 appendStreamDone(false);
636 } 640 }
637 641
638 } // namespace WebCore 642 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/modules/mediasource/SourceBuffer.h ('k') | Source/modules/mediasource/WebKitMediaSource.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698