diff options
Diffstat (limited to 'Source/WebCore/Modules/mediasource/SourceBuffer.cpp')
-rw-r--r-- | Source/WebCore/Modules/mediasource/SourceBuffer.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Source/WebCore/Modules/mediasource/SourceBuffer.cpp b/Source/WebCore/Modules/mediasource/SourceBuffer.cpp index f4a6bfed2..baed631ea 100644 --- a/Source/WebCore/Modules/mediasource/SourceBuffer.cpp +++ b/Source/WebCore/Modules/mediasource/SourceBuffer.cpp @@ -1411,8 +1411,12 @@ void SourceBuffer::sourceBufferPrivateDidReceiveSample(SourceBufferPrivate*, Pas // 1.5 Let track buffer equal the track buffer that the coded frame will be added to. AtomicString trackID = sample->trackID(); auto it = m_trackBufferMap.find(trackID); - if (it == m_trackBufferMap.end()) - it = m_trackBufferMap.add(trackID, TrackBuffer()).iterator; + if (it == m_trackBufferMap.end()) { + // The client managed to append a sample with a trackID not present in the initialization + // segment. This would be a good place to post an message to the developer console. + didDropSample(); + return; + } TrackBuffer& trackBuffer = it->value; // 1.6 ↳ If last decode timestamp for track buffer is set and decode timestamp is less than last |