# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

mojom = "//media/mojo/interfaces/media_types.mojom"

public_headers = [
  "//media/base/audio_codecs.h",
  "//media/base/buffering_state.h",
  "//media/base/channel_layout.h",
  "//media/base/decode_status.h",
  "//media/base/encryption_scheme.h",
  "//media/base/hdr_metadata.h",
  "//media/base/media_log_event.h",
  "//media/base/output_device_info.h",
  "//media/base/pipeline_status.h",
  "//media/base/sample_format.h",
  "//media/base/subsample_entry.h",
  "//media/base/video_codecs.h",
  "//media/base/video_rotation.h",
  "//media/base/video_types.h",
  "//media/base/watch_time_keys.h",
]

traits_headers = [ "//media/base/ipc/media_param_traits_macros.h" ]

public_deps = [
  "//media",
]

deps = [
  "//media/base/ipc",
]

type_mappings = [
  "media.mojom.AudioCodec=media::AudioCodec",
  "media.mojom.BufferingState=media::BufferingState",
  "media.mojom.ChannelLayout=media::ChannelLayout",
  "media.mojom.ColorSpace=media::ColorSpace",
  "media.mojom.DecodeStatus=media::DecodeStatus",
  "media.mojom.EncryptionScheme.CipherMode=media::EncryptionScheme::CipherMode",
  "media.mojom.MediaLogEvent=media::MediaLogEvent",
  "media.mojom.OutputDeviceStatus=media::OutputDeviceStatus",
  "media.mojom.PipelineStatus=media::PipelineStatus",
  "media.mojom.SampleFormat=media::SampleFormat",
  "media.mojom.SubsampleEntry=media::SubsampleEntry",
  "media.mojom.VideoCodec=media::VideoCodec",
  "media.mojom.VideoCodecProfile=media::VideoCodecProfile",
  "media.mojom.VideoPixelFormat=media::VideoPixelFormat",
  "media.mojom.VideoRotation=media::VideoRotation",
  "media.mojom.WatchTimeKey=media::WatchTimeKey",
]
