void MediaSource::SetReadyState(MediaSourceReadyState aState) { MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(aState != mReadyState); MSE_DEBUG("MediaSource(%p)::SetReadyState(aState=%d) mReadyState=%d", this, aState, mReadyState); MediaSourceReadyState oldState = mReadyState; mReadyState = aState; if (mReadyState == MediaSourceReadyState::Open && (oldState == MediaSourceReadyState::Closed || oldState == MediaSourceReadyState::Ended)) { QueueAsyncSimpleEvent("sourceopen"); return; } if (mReadyState == MediaSourceReadyState::Ended && oldState == MediaSourceReadyState::Open) { QueueAsyncSimpleEvent("sourceended"); return; } if (mReadyState == MediaSourceReadyState::Closed && (oldState == MediaSourceReadyState::Open || oldState == MediaSourceReadyState::Ended)) { QueueAsyncSimpleEvent("sourceclose"); return; } NS_WARNING("Invalid MediaSource readyState transition"); }
void MediaSource::SetReadyState(MediaSourceReadyState aState) { MOZ_ASSERT(aState != mReadyState); MonitorAutoLock mon(mMonitor); NotifyListeners(); if ((mReadyState == MediaSourceReadyState::Closed || mReadyState == MediaSourceReadyState::Ended) && aState == MediaSourceReadyState::Open) { mReadyState = aState; QueueAsyncSimpleEvent("sourceopen"); return; } if (mReadyState == MediaSourceReadyState::Open && aState == MediaSourceReadyState::Ended) { mReadyState = aState; QueueAsyncSimpleEvent("sourceended"); return; } if ((mReadyState == MediaSourceReadyState::Open || mReadyState == MediaSourceReadyState::Ended) && aState == MediaSourceReadyState::Closed) { mReadyState = aState; QueueAsyncSimpleEvent("sourceclose"); return; } NS_WARNING("Invalid MediaSource readyState transition"); }
void MediaSource::SetReadyState(MediaSourceReadyState aState) { MOZ_ASSERT(aState != mReadyState); MediaSourceReadyState oldState = mReadyState; mReadyState = aState; if (mReadyState == MediaSourceReadyState::Open && (oldState == MediaSourceReadyState::Closed || oldState == MediaSourceReadyState::Ended)) { QueueAsyncSimpleEvent("sourceopen"); return; } if (mReadyState == MediaSourceReadyState::Ended && oldState == MediaSourceReadyState::Open) { QueueAsyncSimpleEvent("sourceended"); return; } if (mReadyState == MediaSourceReadyState::Closed && (oldState == MediaSourceReadyState::Open || oldState == MediaSourceReadyState::Ended)) { QueueAsyncSimpleEvent("sourceclose"); return; } NS_WARNING("Invalid MediaSource readyState transition"); }
void SourceBuffer::AbortUpdating() { MOZ_ASSERT(NS_IsMainThread()); mUpdating = false; QueueAsyncSimpleEvent("abort"); QueueAsyncSimpleEvent("updateend"); }
void SourceBuffer::StopUpdating() { MOZ_ASSERT(mUpdating); mUpdating = false; QueueAsyncSimpleEvent("update"); QueueAsyncSimpleEvent("updateend"); }
void SourceBuffer::StopUpdating() { MOZ_ASSERT(NS_IsMainThread()); if (!mUpdating) { // The buffer append or range removal algorithm has been interrupted by // abort(). return; } mUpdating = false; QueueAsyncSimpleEvent("update"); QueueAsyncSimpleEvent("updateend"); }
void SourceBufferList::Remove(SourceBuffer* aSourceBuffer) { MOZ_ALWAYS_TRUE(mSourceBuffers.RemoveElement(aSourceBuffer)); aSourceBuffer->Detach(); QueueAsyncSimpleEvent("removesourcebuffer"); }
void SourceBuffer::StartUpdating() { MOZ_ASSERT(!mUpdating); mUpdating = true; QueueAsyncSimpleEvent("updatestart"); }
void SourceBuffer::StopUpdating() { MOZ_ASSERT(NS_IsMainThread()); if (!mUpdating) { // The buffer append algorithm has been interrupted by abort(). // // If the sequence appendBuffer(), abort(), appendBuffer() occurs before // the first StopUpdating() runnable runs, then a second StopUpdating() // runnable will be scheduled, but still only one (the first) will queue // events. return; } mUpdating = false; QueueAsyncSimpleEvent("update"); QueueAsyncSimpleEvent("updateend"); }
void SourceBufferList::Clear() { for (uint32_t i = 0; i < mSourceBuffers.Length(); ++i) { mSourceBuffers[i]->Detach(); } mSourceBuffers.Clear(); QueueAsyncSimpleEvent("removesourcebuffer"); }
void SourceBuffer::StartUpdating() { MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(!mUpdating); mUpdating = true; mUpdateID++; QueueAsyncSimpleEvent("updatestart"); }
void SourceBufferList::Clear() { MOZ_ASSERT(NS_IsMainThread()); for (uint32_t i = 0; i < mSourceBuffers.Length(); ++i) { mSourceBuffers[i]->Detach(); } mSourceBuffers.Clear(); QueueAsyncSimpleEvent("removesourcebuffer"); }
void SourceBuffer::AppendError(bool aDecoderError) { MOZ_ASSERT(NS_IsMainThread()); ResetParserState(); mUpdating = false; QueueAsyncSimpleEvent("error"); QueueAsyncSimpleEvent("updateend"); if (aDecoderError) { Optional<MediaSourceEndOfStreamError> decodeError( MediaSourceEndOfStreamError::Decode); ErrorResult dummy; mMediaSource->EndOfStream(decodeError, dummy); } }
void SourceBuffer::AppendError(bool aDecoderError) { MOZ_ASSERT(NS_IsMainThread()); if (!mUpdating) { // The buffer append algorithm has been interrupted by abort(). return; } mTrackBuffer->ResetParserState(); mUpdating = false; QueueAsyncSimpleEvent("error"); QueueAsyncSimpleEvent("updateend"); if (aDecoderError) { Optional<MediaSourceEndOfStreamError> decodeError( MediaSourceEndOfStreamError::Decode); ErrorResult dummy; mMediaSource->EndOfStream(decodeError, dummy); } }
void MediaSource::SetReadyState(MediaSourceReadyState aState) { MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(aState != mReadyState); MSE_DEBUG("SetReadyState(aState=%" PRIu32 ") mReadyState=%" PRIu32, static_cast<uint32_t>(aState), static_cast<uint32_t>(mReadyState)); MediaSourceReadyState oldState = mReadyState; mReadyState = aState; if (mReadyState == MediaSourceReadyState::Open && (oldState == MediaSourceReadyState::Closed || oldState == MediaSourceReadyState::Ended)) { QueueAsyncSimpleEvent("sourceopen"); if (oldState == MediaSourceReadyState::Ended) { // Notify reader that more data may come. mDecoder->Ended(false); } return; } if (mReadyState == MediaSourceReadyState::Ended && oldState == MediaSourceReadyState::Open) { QueueAsyncSimpleEvent("sourceended"); return; } if (mReadyState == MediaSourceReadyState::Closed && (oldState == MediaSourceReadyState::Open || oldState == MediaSourceReadyState::Ended)) { QueueAsyncSimpleEvent("sourceclose"); return; } NS_WARNING("Invalid MediaSource readyState transition"); }