OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 | 62 |
63 WebKitSourceBufferList* WebKitMediaSource::activeSourceBuffers() | 63 WebKitSourceBufferList* WebKitMediaSource::activeSourceBuffers() |
64 { | 64 { |
65 // FIXME(91649): support track selection | 65 // FIXME(91649): support track selection |
66 return m_activeSourceBuffers.get(); | 66 return m_activeSourceBuffers.get(); |
67 } | 67 } |
68 | 68 |
69 WebKitSourceBuffer* WebKitMediaSource::addSourceBuffer(const String& type, Excep
tionCode& ec) | 69 WebKitSourceBuffer* WebKitMediaSource::addSourceBuffer(const String& type, Excep
tionCode& ec) |
70 { | 70 { |
71 // 3.1 http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-sour
ce.html#dom-addsourcebuffer | 71 // 3.1 http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-sour
ce.html#dom-addsourcebuffer |
72 // 1. If type is null or an empty then throw an INVALID_ACCESS_ERR exception
and | 72 // 1. If type is null or an empty then throw an InvalidAccessError exception
and |
73 // abort these steps. | 73 // abort these steps. |
74 if (type.isNull() || type.isEmpty()) { | 74 if (type.isNull() || type.isEmpty()) { |
75 ec = INVALID_ACCESS_ERR; | 75 ec = InvalidAccessError; |
76 return 0; | 76 return 0; |
77 } | 77 } |
78 | 78 |
79 // 2. If type contains a MIME type that is not supported ..., then throw a | 79 // 2. If type contains a MIME type that is not supported ..., then throw a |
80 // NotSupportedError exception and abort these steps. | 80 // NotSupportedError exception and abort these steps. |
81 if (!isTypeSupported(type)) { | 81 if (!isTypeSupported(type)) { |
82 ec = NotSupportedError; | 82 ec = NotSupportedError; |
83 return 0; | 83 return 0; |
84 } | 84 } |
85 | 85 |
86 // 4. If the readyState attribute is not in the "open" state then throw an | 86 // 4. If the readyState attribute is not in the "open" state then throw an |
87 // INVALID_STATE_ERR exception and abort these steps. | 87 // InvalidStateError exception and abort these steps. |
88 if (!isOpen()) { | 88 if (!isOpen()) { |
89 ec = INVALID_STATE_ERR; | 89 ec = InvalidStateError; |
90 return 0; | 90 return 0; |
91 } | 91 } |
92 | 92 |
93 // 5. Create a new SourceBuffer object and associated resources. | 93 // 5. Create a new SourceBuffer object and associated resources. |
94 ContentType contentType(type); | 94 ContentType contentType(type); |
95 Vector<String> codecs = contentType.codecs(); | 95 Vector<String> codecs = contentType.codecs(); |
96 OwnPtr<SourceBufferPrivate> sourceBufferPrivate = createSourceBufferPrivate(
contentType.type(), codecs, ec); | 96 OwnPtr<SourceBufferPrivate> sourceBufferPrivate = createSourceBufferPrivate(
contentType.type(), codecs, ec); |
97 if (!sourceBufferPrivate) | 97 if (!sourceBufferPrivate) |
98 return 0; | 98 return 0; |
99 | 99 |
100 RefPtr<WebKitSourceBuffer> buffer = WebKitSourceBuffer::create(sourceBufferP
rivate.release(), this); | 100 RefPtr<WebKitSourceBuffer> buffer = WebKitSourceBuffer::create(sourceBufferP
rivate.release(), this); |
101 // 6. Add the new object to sourceBuffers and fire a addsourcebuffer on that
object. | 101 // 6. Add the new object to sourceBuffers and fire a addsourcebuffer on that
object. |
102 m_sourceBuffers->add(buffer); | 102 m_sourceBuffers->add(buffer); |
103 m_activeSourceBuffers->add(buffer); | 103 m_activeSourceBuffers->add(buffer); |
104 // 7. Return the new object to the caller. | 104 // 7. Return the new object to the caller. |
105 return buffer.get(); | 105 return buffer.get(); |
106 } | 106 } |
107 | 107 |
108 void WebKitMediaSource::removeSourceBuffer(WebKitSourceBuffer* buffer, Exception
Code& ec) | 108 void WebKitMediaSource::removeSourceBuffer(WebKitSourceBuffer* buffer, Exception
Code& ec) |
109 { | 109 { |
110 // 3.1 http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-sour
ce.html#dom-removesourcebuffer | 110 // 3.1 http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-sour
ce.html#dom-removesourcebuffer |
111 // 1. If sourceBuffer is null then throw an INVALID_ACCESS_ERR exception and | 111 // 1. If sourceBuffer is null then throw an InvalidAccessError exception and |
112 // abort these steps. | 112 // abort these steps. |
113 if (!buffer) { | 113 if (!buffer) { |
114 ec = INVALID_ACCESS_ERR; | 114 ec = InvalidAccessError; |
115 return; | 115 return; |
116 } | 116 } |
117 | 117 |
118 // 2. If sourceBuffers is empty then throw an INVALID_STATE_ERR exception an
d | 118 // 2. If sourceBuffers is empty then throw an InvalidStateError exception an
d |
119 // abort these steps. | 119 // abort these steps. |
120 if (isClosed() || !m_sourceBuffers->length()) { | 120 if (isClosed() || !m_sourceBuffers->length()) { |
121 ec = INVALID_STATE_ERR; | 121 ec = InvalidStateError; |
122 return; | 122 return; |
123 } | 123 } |
124 | 124 |
125 // 3. If sourceBuffer specifies an object that is not in sourceBuffers then | 125 // 3. If sourceBuffer specifies an object that is not in sourceBuffers then |
126 // throw a NotFoundError exception and abort these steps. | 126 // throw a NotFoundError exception and abort these steps. |
127 // 6. Remove sourceBuffer from sourceBuffers and fire a removesourcebuffer e
vent | 127 // 6. Remove sourceBuffer from sourceBuffers and fire a removesourcebuffer e
vent |
128 // on that object. | 128 // on that object. |
129 if (!m_sourceBuffers->remove(buffer)) { | 129 if (!m_sourceBuffers->remove(buffer)) { |
130 ec = NotFoundError; | 130 ec = NotFoundError; |
131 return; | 131 return; |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 void WebKitMediaSource::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) co
nst | 200 void WebKitMediaSource::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) co
nst |
201 { | 201 { |
202 MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); | 202 MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); |
203 ScriptWrappable::reportMemoryUsage(memoryObjectInfo); | 203 ScriptWrappable::reportMemoryUsage(memoryObjectInfo); |
204 MediaSourceBase::reportMemoryUsage(memoryObjectInfo); | 204 MediaSourceBase::reportMemoryUsage(memoryObjectInfo); |
205 info.addMember(m_sourceBuffers, "sourceBuffers"); | 205 info.addMember(m_sourceBuffers, "sourceBuffers"); |
206 info.addMember(m_activeSourceBuffers, "activeSourceBuffers"); | 206 info.addMember(m_activeSourceBuffers, "activeSourceBuffers"); |
207 } | 207 } |
208 | 208 |
209 } // namespace WebCore | 209 } // namespace WebCore |
OLD | NEW |