# Copyright 2014 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.

assert(is_apple)

source_set("mac") {
  # Note: This source_set is depended on only by //media. In the component
  # build, if other component targets also depend on it, multiple copies of
  # the ObjC classes declared in the files below will cause warnings at
  # run-time.
  visibility = [ "//media" ]

  sources = [
    "color_space_util_mac.h",
    "color_space_util_mac.mm",
    "video_frame_mac.cc",
    "video_frame_mac.h",
    "videotoolbox_helpers.cc",
    "videotoolbox_helpers.h",
  ]
  if (is_mac) {
    frameworks = [
      "AVFoundation.framework",
      "CoreMedia.framework",
      "CoreVideo.framework",  # Required by video_frame_mac.cc.
      "VideoToolbox.framework",
    ]
  }
  configs += [ "//media:subcomponent_config" ]

  deps = [
    "//media/base",
    "//ui/gfx:color_space",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [ "video_frame_mac_unittests.cc" ]
  frameworks = [ "CoreVideo.framework" ]
  configs += [ "//media:media_config" ]
  deps = [
    "//media:test_support",
    "//testing/gtest",
    "//ui/gfx:color_space",
  ]
}
