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

executable("codec_factory") {
  sources = [
    "codec_factory_app.cc",
    "codec_factory_app.h",
    "codec_factory_impl.cc",
    "codec_factory_impl.h",
    "main.cc",
  ]

  deps = [
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fsl",
    "//sdk/fidl/fuchsia.mediacodec",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/trace-provider",
  ]

  # codec_factory spawns codec_runner_sw_ffmpeg(s) which is a peer package for now,
  # so no dep is needed here for codec_runner_sw_ffmpeg.
}
