bool SourceBuffer::InitNewDecoder() { MOZ_ASSERT(!mDecoder); MediaSourceDecoder* parentDecoder = mMediaSource->GetDecoder(); nsRefPtr<SubBufferDecoder> decoder = parentDecoder->CreateSubDecoder(mType); if (!decoder) { return false; } mDecoder = decoder; mDecoderInitialized = false; return true; }
SourceBuffer::SourceBuffer(MediaSource* aMediaSource, const nsACString& aType) : nsDOMEventTargetHelper(aMediaSource->GetParentObject()) , mMediaSource(aMediaSource) , mAppendWindowStart(0) , mAppendWindowEnd(PositiveInfinity<double>()) , mTimestampOffset(0) , mAppendMode(SourceBufferAppendMode::Segments) , mUpdating(false) { MOZ_ASSERT(aMediaSource); MediaSourceDecoder* parentDecoder = aMediaSource->GetDecoder(); mDecoder = parentDecoder->CreateSubDecoder(aType); MOZ_ASSERT(mDecoder); }
bool SourceBuffer::InitNewDecoder() { MOZ_ASSERT(NS_IsMainThread()); MSE_DEBUG("SourceBuffer(%p)::InitNewDecoder", this); MOZ_ASSERT(!mDecoder); MediaSourceDecoder* parentDecoder = mMediaSource->GetDecoder(); nsRefPtr<SubBufferDecoder> decoder = parentDecoder->CreateSubDecoder(mType); if (!decoder) { return false; } mDecoder = decoder; mDecoderInitialized = false; mDecoders.AppendElement(mDecoder); return true; }
MediaDecoderReader* GetAudioReader() { MediaSourceDecoder* decoder = static_cast<MediaSourceDecoder*>(mDecoder); return decoder->GetAudioReader(); }