diff --git a/media/base/demuxer_memory_limit_starboard.cc b/media/base/demuxer_memory_limit_starboard.cc new file mode 100644 index 00000000000..188878d8715 --- /dev/null +++ b/media/base/demuxer_memory_limit_starboard.cc @@ -0,0 +1,46 @@ +// Copyright 2022 The Cobalt Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if !defined(STARBOARD) +#error "This file only works with Cobalt/Starboard." +#endif // !defined(STARBOARD) + +#include "media/base/demuxer_memory_limit.h" + +#include "media/base/decoder_buffer.h" +#include "media/base/starboard_utils.h" +#include "media/base/video_codecs.h" +#include "base/logging.h" + +namespace media { + +size_t GetDemuxerStreamAudioMemoryLimit( + const AudioDecoderConfig* /*audio_config*/) { + return DecoderBuffer::Allocator::GetInstance()->GetAudioBufferBudget(); +} + +size_t GetDemuxerStreamVideoMemoryLimit( + Demuxer::DemuxerTypes /*demuxer_type*/, + const VideoDecoderConfig* video_config, + const std::string& mime_type) { + return static_cast( + GetSbMediaVideoBufferBudget(video_config, mime_type)); +} + +size_t GetDemuxerMemoryLimit(Demuxer::DemuxerTypes demuxer_type) { + return GetDemuxerStreamAudioMemoryLimit(nullptr) + + GetDemuxerStreamVideoMemoryLimit(demuxer_type, nullptr, ""); +} + +} // namespace media