<?xml version="1.0" encoding="utf-8"?>
<!--
  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.
-->

<overlay>
  <!-- This flag indicates whether 360 videos can be played. -->
  <item target="bool/supports_spherical_videos" value="true" />
  <!--
    When set, the return value of SbMediaGetVideoBufferBudget() is capped to
    this value in MB. Set to 0 to use default values.
  -->
  <item target="integer/max_video_buffer_budget" value="0" />
  <!--
    When set, the return value of SbAudioSinkGetMinBufferSizeInFrames() would
    be greater or equal to this value. Set to 0 to use default values.
  -->
  <item target="integer/min_audio_sink_buffer_size_in_frames" value="0" />
</overlay>
