<?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.
-->

<resources xmlns:tools="http://schemas.android.com/tools"
           tools:ignore="DuplicateDefinition">
  <overlayable name="CobaltOverlay">
    <policy type="vendor|product|system">
      <!-- This flag indicates whether 360 videos can be played. -->
      <item type="bool" name="supports_spherical_videos" />
      <!--
        When set, the return value of SbMediaGetVideoBufferBudget() is capped
        to this value in MB. Set to 0 to use default values.
      -->
      <item type="integer" name="max_video_buffer_budget" />
    </policy>
  </overlayable>
</resources>
