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

import("//media/media_options.gni")

component("parsers") {
  sources = [
    "jpeg_parser.cc",
    "jpeg_parser.h",
    "media_parsers_export.h",
    "vp8_bool_decoder.cc",
    "vp8_bool_decoder.h",
    "vp8_parser.cc",
    "vp8_parser.h",
    "webp_parser.cc",
    "webp_parser.h",
  ]
  defines = [ "IS_MEDIA_PARSER_IMPL" ]
  deps = [ "//base" ]

  # This target is used in GPU IPC code and cannot depend on any //media code.
  assert_no_deps = [
    "//media",
    "//media:shared_memory_support",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "jpeg_parser_unittest.cc",
    "vp8_bool_decoder_unittest.cc",
    "vp8_parser_unittest.cc",
    "webp_parser_unittest.cc",
  ]
  deps = [
    ":parsers",
    "//base",
    "//media:test_support",
    "//testing/gtest",
  ]
}

fuzzer_test("media_jpeg_parser_picture_fuzzer") {
  sources = [ "jpeg_parser_picture_fuzzertest.cc" ]
  deps = [
    ":parsers",
    "//base",
  ]
  seed_corpus = "//media/test/data"
  dict = "//media/test/jpeg.dict"
}

fuzzer_test("media_vp8_parser_fuzzer") {
  sources = [ "vp8_parser_fuzzertest.cc" ]
  deps = [
    ":parsers",
    "//base",
    "//media:test_support",
  ]
  libfuzzer_options = [ "max_len = 400000" ]
  dict = "//media/test/vp8.dict"
}

fuzzer_test("media_webp_parser_fuzzer") {
  sources = [ "webp_parser_fuzzertest.cc" ]
  deps = [
    ":parsers",
    "//base",
  ]
  seed_corpus = "//media/test/data"
  dict = "//media/test/webp.dict"
}
