• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS.  All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9import("//build/config/features.gni")
10import("//testing/libfuzzer/fuzzer_test.gni")
11import("../../webrtc.gni")
12
13rtc_library("webrtc_fuzzer_main") {
14  sources = [ "webrtc_fuzzer_main.cc" ]
15  deps = [
16    "../../rtc_base:logging",
17    "//testing/libfuzzer:libfuzzer_main",
18  ]
19
20  # When WebRTC fuzzer tests are built on Chromium bots they need to link
21  # with Chromium's implementation of metrics, field trial, and system time.
22  if (build_with_chromium) {
23    deps += [
24      "../../../webrtc_overrides:field_trial",
25      "../../../webrtc_overrides:metrics",
26      "../../../webrtc_overrides:system_time",
27    ]
28  }
29}
30
31rtc_library("fuzz_data_helper") {
32  testonly = true
33  sources = [
34    "fuzz_data_helper.cc",
35    "fuzz_data_helper.h",
36  ]
37  deps = [
38    "../../api:array_view",
39    "../../modules/rtp_rtcp:rtp_rtcp_format",
40  ]
41  visibility = [ ":*" ]  # Only targets in this file can depend on this.
42}
43
44set_defaults("webrtc_fuzzer_test") {
45  configs = rtc_add_configs
46  absl_deps = []
47}
48
49template("webrtc_fuzzer_test") {
50  fuzzer_test(target_name) {
51    forward_variables_from(invoker, "*")
52    deps += [
53      ":fuzz_data_helper",
54      ":webrtc_fuzzer_main",
55    ]
56    additional_configs = configs
57
58    # If absl_deps is [], no action is needed. If not [], then it needs to be
59    # converted to //third_party/abseil-cpp:absl when build_with_chromium=true
60    # otherwise it just needs to be added to deps.
61    if (absl_deps != []) {
62      if (!defined(deps)) {
63        deps = []
64      }
65      if (build_with_chromium) {
66        deps += [ "//third_party/abseil-cpp:absl" ]
67      } else {
68        deps += absl_deps
69      }
70    }
71
72    if (!build_with_chromium && is_clang) {
73      suppressed_configs = [ "//build/config/clang:find_bad_constructs" ]
74    }
75  }
76}
77
78webrtc_fuzzer_test("h264_depacketizer_fuzzer") {
79  sources = [ "h264_depacketizer_fuzzer.cc" ]
80  deps = [ "../../modules/rtp_rtcp" ]
81  seed_corpus = "corpora/h264-depacketizer-fuzzer-corpus"
82}
83
84webrtc_fuzzer_test("vp8_depacketizer_fuzzer") {
85  sources = [ "vp8_depacketizer_fuzzer.cc" ]
86  deps = [
87    "../../api:array_view",
88    "../../modules/rtp_rtcp",
89    "../../modules/rtp_rtcp:rtp_video_header",
90  ]
91}
92
93webrtc_fuzzer_test("vp9_depacketizer_fuzzer") {
94  sources = [ "vp9_depacketizer_fuzzer.cc" ]
95  deps = [
96    "../../api:array_view",
97    "../../modules/rtp_rtcp",
98    "../../modules/rtp_rtcp:rtp_video_header",
99  ]
100}
101
102webrtc_fuzzer_test("vp8_qp_parser_fuzzer") {
103  sources = [ "vp8_qp_parser_fuzzer.cc" ]
104  deps = [
105    "../../modules/video_coding:video_coding_utility",
106    "../../modules/video_coding/",
107  ]
108}
109
110webrtc_fuzzer_test("vp9_qp_parser_fuzzer") {
111  sources = [ "vp9_qp_parser_fuzzer.cc" ]
112  deps = [
113    "../../modules/video_coding:video_coding_utility",
114    "../../modules/video_coding/",
115  ]
116}
117
118webrtc_fuzzer_test("h264_bitstream_parser_fuzzer") {
119  sources = [ "h264_bitstream_parser_fuzzer.cc" ]
120  deps = [
121    "../../common_video",
122    "../../modules/video_coding/",
123  ]
124}
125
126webrtc_fuzzer_test("forward_error_correction_fuzzer") {
127  sources = [ "forward_error_correction_fuzzer.cc" ]
128  deps = [
129    "../../api:scoped_refptr",
130    "../../modules/rtp_rtcp",
131    "../../modules/rtp_rtcp:rtp_rtcp_format",
132    "../../rtc_base:byte_buffer",
133  ]
134}
135
136webrtc_fuzzer_test("flexfec_header_reader_fuzzer") {
137  sources = [ "flexfec_header_reader_fuzzer.cc" ]
138  deps = [
139    "../../api:scoped_refptr",
140    "../../modules/rtp_rtcp",
141    "../../modules/rtp_rtcp:rtp_rtcp_format",
142  ]
143}
144
145webrtc_fuzzer_test("flexfec_sender_fuzzer") {
146  sources = [ "flexfec_sender_fuzzer.cc" ]
147  deps = [
148    "../../modules/rtp_rtcp",
149    "../../modules/rtp_rtcp:rtp_rtcp_format",
150    "../../system_wrappers",
151  ]
152}
153
154webrtc_fuzzer_test("ulpfec_header_reader_fuzzer") {
155  sources = [ "ulpfec_header_reader_fuzzer.cc" ]
156  deps = [
157    "../../api:scoped_refptr",
158    "../../modules/rtp_rtcp",
159    "../../modules/rtp_rtcp:fec_test_helper",
160    "../../modules/rtp_rtcp:rtp_rtcp_format",
161  ]
162}
163
164webrtc_fuzzer_test("ulpfec_generator_fuzzer") {
165  sources = [ "ulpfec_generator_fuzzer.cc" ]
166  deps = [
167    "../../modules:module_api_public",
168    "../../modules/rtp_rtcp",
169    "../../modules/rtp_rtcp:fec_test_helper",
170    "../../modules/rtp_rtcp:rtp_rtcp_format",
171    "../../rtc_base:checks",
172    "../../rtc_base:copy_on_write_buffer",
173    "../../system_wrappers",
174  ]
175}
176
177webrtc_fuzzer_test("ulpfec_receiver_fuzzer") {
178  sources = [ "ulpfec_receiver_fuzzer.cc" ]
179  deps = [
180    ":fuzz_data_helper",
181    "../../modules/rtp_rtcp",
182    "../../modules/rtp_rtcp:rtp_rtcp_format",
183  ]
184}
185
186webrtc_fuzzer_test("flexfec_receiver_fuzzer") {
187  sources = [ "flexfec_receiver_fuzzer.cc" ]
188  deps = [
189    "../../modules/rtp_rtcp",
190    "../../modules/rtp_rtcp:rtp_rtcp_format",
191  ]
192}
193
194webrtc_fuzzer_test("packet_buffer_fuzzer") {
195  sources = [ "packet_buffer_fuzzer.cc" ]
196  deps = [
197    "../../modules/video_coding:packet_buffer",
198    "../../modules/video_coding/",
199    "../../system_wrappers",
200  ]
201}
202
203webrtc_fuzzer_test("rtcp_receiver_fuzzer") {
204  sources = [ "rtcp_receiver_fuzzer.cc" ]
205  deps = [
206    "../../modules/rtp_rtcp",
207    "../../modules/rtp_rtcp:rtp_rtcp_format",
208    "../../rtc_base:checks",
209    "../../system_wrappers",
210  ]
211  seed_corpus = "corpora/rtcp-corpus"
212}
213
214webrtc_fuzzer_test("rtp_packet_fuzzer") {
215  sources = [ "rtp_packet_fuzzer.cc" ]
216  deps = [ "../../modules/rtp_rtcp:rtp_rtcp_format" ]
217  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
218  seed_corpus = "corpora/rtp-corpus"
219}
220
221webrtc_fuzzer_test("rtp_packetizer_av1_fuzzer") {
222  sources = [ "rtp_packetizer_av1_fuzzer.cc" ]
223  deps = [
224    "../../api/video:video_frame_type",
225    "../../modules/rtp_rtcp:rtp_rtcp",
226    "../../modules/rtp_rtcp:rtp_rtcp_format",
227    "../../rtc_base:checks",
228  ]
229}
230
231webrtc_fuzzer_test("congestion_controller_feedback_fuzzer") {
232  sources = [ "congestion_controller_feedback_fuzzer.cc" ]
233  deps = [
234    "../../modules/congestion_controller",
235    "../../modules/pacing",
236    "../../modules/remote_bitrate_estimator",
237    "../../modules/rtp_rtcp:rtp_rtcp_format",
238  ]
239  absl_deps = [ "//third_party/abseil-cpp/absl/functional:bind_front" ]
240}
241
242rtc_library("audio_decoder_fuzzer") {
243  testonly = true
244  sources = [
245    "audio_decoder_fuzzer.cc",
246    "audio_decoder_fuzzer.h",
247  ]
248  deps = [
249    "../../api/audio_codecs:audio_codecs_api",
250    "../../modules/rtp_rtcp:rtp_rtcp_format",
251    "../../rtc_base:checks",
252  ]
253  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
254}
255
256webrtc_fuzzer_test("audio_decoder_g722_fuzzer") {
257  sources = [ "audio_decoder_g722_fuzzer.cc" ]
258  deps = [
259    ":audio_decoder_fuzzer",
260    "../../modules/audio_coding:g722",
261  ]
262}
263
264webrtc_fuzzer_test("audio_decoder_ilbc_fuzzer") {
265  sources = [ "audio_decoder_ilbc_fuzzer.cc" ]
266  deps = [
267    ":audio_decoder_fuzzer",
268    "../../modules/audio_coding:ilbc",
269  ]
270}
271
272webrtc_fuzzer_test("audio_decoder_opus_fuzzer") {
273  sources = [ "audio_decoder_opus_fuzzer.cc" ]
274  deps = [
275    ":audio_decoder_fuzzer",
276    "../../modules/audio_coding:webrtc_opus",
277  ]
278}
279
280webrtc_fuzzer_test("audio_decoder_opus_redundant_fuzzer") {
281  sources = [ "audio_decoder_opus_redundant_fuzzer.cc" ]
282  deps = [
283    ":audio_decoder_fuzzer",
284    "../../modules/audio_coding:webrtc_opus",
285  ]
286}
287
288webrtc_fuzzer_test("audio_decoder_multiopus_fuzzer") {
289  sources = [ "audio_decoder_multistream_opus_fuzzer.cc" ]
290  deps = [
291    ":audio_decoder_fuzzer",
292    "../../api/audio_codecs/opus:audio_decoder_multiopus",
293    "../../api/audio_codecs/opus:audio_decoder_opus_config",
294  ]
295}
296
297webrtc_fuzzer_test("audio_decoder_pcm_fuzzer") {
298  sources = [ "audio_decoder_pcm_fuzzer.cc" ]
299  deps = [
300    ":audio_decoder_fuzzer",
301    "../../modules/audio_coding:g711",
302  ]
303}
304
305webrtc_fuzzer_test("audio_decoder_pcm16b_fuzzer") {
306  sources = [ "audio_decoder_pcm16b_fuzzer.cc" ]
307  deps = [
308    ":audio_decoder_fuzzer",
309    "../../modules/audio_coding:pcm16b",
310  ]
311}
312
313rtc_library("audio_encoder_fuzzer") {
314  testonly = true
315  sources = [
316    "audio_encoder_fuzzer.cc",
317    "audio_encoder_fuzzer.h",
318  ]
319  deps = [
320    ":fuzz_data_helper",
321    "../../api:array_view",
322    "../../api/audio_codecs:audio_codecs_api",
323    "../../rtc_base:buffer",
324    "../../rtc_base:checks",
325  ]
326}
327
328webrtc_fuzzer_test("audio_encoder_opus_fuzzer") {
329  sources = [ "audio_encoder_opus_fuzzer.cc" ]
330  deps = [
331    ":audio_encoder_fuzzer",
332    "../../api/audio_codecs/opus:audio_encoder_opus",
333    "../../rtc_base:checks",
334  ]
335}
336
337webrtc_fuzzer_test("turn_unwrap_fuzzer") {
338  sources = [ "turn_unwrap_fuzzer.cc" ]
339  deps = [
340    "../../media",
341    "../../media:rtc_media_base",
342  ]
343}
344
345webrtc_fuzzer_test("neteq_rtp_fuzzer") {
346  sources = [ "neteq_rtp_fuzzer.cc" ]
347  deps = [
348    "../../api:array_view",
349    "../../api/audio_codecs:builtin_audio_decoder_factory",
350    "../../modules/audio_coding:neteq",
351    "../../modules/audio_coding:neteq_test_tools",
352    "../../modules/audio_coding:neteq_tools_minimal",
353    "../../modules/audio_coding:pcm16b",
354    "../../modules/rtp_rtcp:rtp_rtcp_format",
355  ]
356}
357
358webrtc_fuzzer_test("neteq_signal_fuzzer") {
359  sources = [ "neteq_signal_fuzzer.cc" ]
360  deps = [
361    "../../api:array_view",
362    "../../api/audio_codecs:builtin_audio_decoder_factory",
363    "../../modules/audio_coding:neteq",
364    "../../modules/audio_coding:neteq_test_tools",
365    "../../modules/audio_coding:neteq_tools_minimal",
366    "../../modules/audio_coding:pcm16b",
367    "../../rtc_base:random",
368    "../../rtc_base:safe_conversions",
369  ]
370}
371
372webrtc_fuzzer_test("residual_echo_detector_fuzzer") {
373  sources = [ "residual_echo_detector_fuzzer.cc" ]
374  deps = [
375    "../../api/audio:echo_detector_creator",
376    "../../rtc_base:checks",
377    "../../rtc_base:refcount",
378  ]
379}
380
381webrtc_fuzzer_test("sdp_parser_fuzzer") {
382  sources = [ "sdp_parser_fuzzer.cc" ]
383  deps = [
384    "../../api:libjingle_peerconnection_api",
385    "../../pc:libjingle_peerconnection",
386  ]
387  seed_corpus = "corpora/sdp-corpus"
388}
389
390if (!build_with_chromium) {
391  # This target depends on test infrastructure that can't be built
392  # with Chromium at the moment.
393  # TODO(bugs.chromium.org/12534): Make this fuzzer build in Chromium.
394
395  webrtc_fuzzer_test("sdp_integration_fuzzer") {
396    sources = [ "sdp_integration_fuzzer.cc" ]
397    deps = [
398      "../../api:libjingle_peerconnection_api",
399      "../../pc:integration_test_helpers",
400      "../../pc:libjingle_peerconnection",
401      "../../test:test_support",
402    ]
403    absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
404    seed_corpus = "corpora/sdp-corpus"
405  }
406}
407
408webrtc_fuzzer_test("stun_parser_fuzzer") {
409  sources = [ "stun_parser_fuzzer.cc" ]
410  deps = [
411    "../../api/transport:stun_types",
412    "../../p2p:rtc_p2p",
413  ]
414  seed_corpus = "corpora/stun-corpus"
415  dict = "corpora/stun.tokens"
416}
417
418webrtc_fuzzer_test("stun_validator_fuzzer") {
419  sources = [ "stun_validator_fuzzer.cc" ]
420  deps = [
421    "../../api/transport:stun_types",
422    "../../p2p:rtc_p2p",
423  ]
424  seed_corpus = "corpora/stun-corpus"
425  dict = "corpora/stun.tokens"
426}
427
428webrtc_fuzzer_test("pseudotcp_parser_fuzzer") {
429  sources = [ "pseudotcp_parser_fuzzer.cc" ]
430  deps = [
431    "../../p2p:rtc_p2p",
432    "../../rtc_base",
433    "../../rtc_base:threading",
434  ]
435}
436
437rtc_library("audio_processing_fuzzer_helper") {
438  testonly = true
439  sources = [
440    "audio_processing_fuzzer_helper.cc",
441    "audio_processing_fuzzer_helper.h",
442  ]
443  deps = [
444    ":fuzz_data_helper",
445    "../../api/audio:audio_frame_api",
446    "../../modules/audio_processing",
447    "../../modules/audio_processing:api",
448    "../../modules/audio_processing:audio_frame_proxies",
449    "../../rtc_base:checks",
450  ]
451  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
452}
453
454webrtc_fuzzer_test("audio_processing_fuzzer") {
455  sources = [ "audio_processing_configs_fuzzer.cc" ]
456  deps = [
457    ":audio_processing_fuzzer_helper",
458    "../../api:scoped_refptr",
459    "../../api/audio:aec3_factory",
460    "../../api/audio:echo_detector_creator",
461    "../../api/task_queue:default_task_queue_factory",
462    "../../modules/audio_processing",
463    "../../modules/audio_processing:api",
464    "../../modules/audio_processing:audio_buffer",
465    "../../modules/audio_processing:audioproc_test_utils",
466    "../../modules/audio_processing/aec3",
467    "../../modules/audio_processing/aec_dump",
468    "../../modules/audio_processing/aec_dump:aec_dump_impl",
469    "../../rtc_base:macromagic",
470    "../../rtc_base:rtc_task_queue",
471    "../../rtc_base:safe_minmax",
472    "../../system_wrappers:field_trial",
473  ]
474  absl_deps = [ "//third_party/abseil-cpp/absl/memory" ]
475  seed_corpus = "corpora/audio_processing-corpus"
476}
477
478webrtc_fuzzer_test("audio_processing_sample_rate_fuzzer") {
479  sources = [ "audio_processing_sample_rate_fuzzer.cc" ]
480  deps = [
481    "../../api:scoped_refptr",
482    "../../api/audio:audio_frame_api",
483    "../../modules/audio_processing",
484    "../../modules/audio_processing:api",
485    "../../modules/audio_processing:audio_frame_proxies",
486    "../../modules/audio_processing:audioproc_test_utils",
487    "../../rtc_base:checks",
488    "../../rtc_base:macromagic",
489    "../../rtc_base:safe_minmax",
490  ]
491}
492
493webrtc_fuzzer_test("agc_fuzzer") {
494  sources = [ "agc_fuzzer.cc" ]
495  deps = [
496    ":fuzz_data_helper",
497    "../../modules/audio_processing",
498    "../../modules/audio_processing:api",
499    "../../modules/audio_processing:audio_buffer",
500    "../../rtc_base:macromagic",
501    "../../rtc_base:safe_minmax",
502  ]
503
504  seed_corpus = "corpora/agc-corpus"
505}
506
507webrtc_fuzzer_test("aec3_config_json_fuzzer") {
508  sources = [ "aec3_config_json_fuzzer.cc" ]
509  deps = [
510    ":fuzz_data_helper",
511    "../../api/audio:aec3_config",
512    "../../api/audio:aec3_config_json",
513  ]
514  dict = "//testing/libfuzzer/fuzzers/dicts/json.dict"
515  seed_corpus = "corpora/aec3-config-json-corpus"
516}
517
518webrtc_fuzzer_test("aec3_fuzzer") {
519  defines = []
520  if (apm_debug_dump) {
521    defines += [ "WEBRTC_APM_DEBUG_DUMP=1" ]
522  } else {
523    defines += [ "WEBRTC_APM_DEBUG_DUMP=0" ]
524  }
525  sources = [ "aec3_fuzzer.cc" ]
526  deps = [
527    ":fuzz_data_helper",
528    "../../modules/audio_processing:api",
529    "../../modules/audio_processing:audio_buffer",
530    "../../modules/audio_processing/aec3",
531  ]
532  absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
533}
534
535webrtc_fuzzer_test("comfort_noise_decoder_fuzzer") {
536  sources = [ "comfort_noise_decoder_fuzzer.cc" ]
537  deps = [
538    "../../api:array_view",
539    "../../modules/audio_coding:webrtc_cng",
540    "../../rtc_base:buffer",
541  ]
542}
543
544webrtc_fuzzer_test("rtp_depacketizer_av1_assemble_frame_fuzzer") {
545  sources = [ "rtp_depacketizer_av1_assemble_frame_fuzzer.cc" ]
546  seed_corpus = "corpora/rtp-depacketizer-av1-assemble-frame-corpus"
547  deps = [
548    ":fuzz_data_helper",
549    "../../api:array_view",
550    "../../modules/rtp_rtcp",
551  ]
552}
553
554webrtc_fuzzer_test("rtp_dependency_descriptor_fuzzer") {
555  sources = [ "rtp_dependency_descriptor_fuzzer.cc" ]
556  seed_corpus = "corpora/dependency_descriptor-corpus"
557  deps = [
558    "../../api:array_view",
559    "../../common_video/generic_frame_descriptor",
560    "../../modules/rtp_rtcp:rtp_rtcp_format",
561    "../../rtc_base:checks",
562  ]
563}
564
565webrtc_fuzzer_test("rtp_video_layers_allocation_fuzzer") {
566  sources = [ "rtp_video_layers_allocation_fuzzer.cc" ]
567  seed_corpus = "corpora/video_layers_allocation-corpus"
568  deps = [
569    "../../api:array_view",
570    "../../api/video:video_layers_allocation",
571    "../../modules/rtp_rtcp:rtp_rtcp_format",
572    "../../rtc_base:checks",
573  ]
574
575  # video_layers_allocation is an rtp header extension and thus can't be longer
576  # than 255 bytes on the wire.
577  libfuzzer_options = [ "max_len=255" ]
578}
579
580webrtc_fuzzer_test("rtp_frame_reference_finder_fuzzer") {
581  sources = [ "rtp_frame_reference_finder_fuzzer.cc" ]
582  deps = [
583    "../../api:rtp_packet_info",
584    "../../api:scoped_refptr",
585    "../../modules/video_coding/",
586    "../../system_wrappers",
587  ]
588}
589
590webrtc_fuzzer_test("frame_buffer2_fuzzer") {
591  sources = [ "frame_buffer2_fuzzer.cc" ]
592  deps = [
593    "../../api/task_queue",
594    "../../modules/video_coding:frame_buffer2",
595    "../../modules/video_coding/timing:timing_module",
596    "../../test:scoped_key_value_config",
597    "../time_controller:time_controller",
598  ]
599}
600
601webrtc_fuzzer_test("frame_buffer_fuzzer") {
602  sources = [ "frame_buffer_fuzzer.cc" ]
603  deps = [
604    ":fuzz_data_helper",
605    "../../api:array_view",
606    "../../api/video:encoded_frame",
607    "../../api/video:frame_buffer",
608    "../../rtc_base:rtc_numerics",
609    "../../test:scoped_key_value_config",
610  ]
611}
612
613webrtc_fuzzer_test("field_trial_fuzzer") {
614  sources = [ "field_trial_fuzzer.cc" ]
615  deps = [ "../../system_wrappers:field_trial" ]
616  seed_corpus = "corpora/field_trial-corpus"
617}
618
619webrtc_fuzzer_test("string_to_number_fuzzer") {
620  sources = [ "string_to_number_fuzzer.cc" ]
621  deps = [ "../../rtc_base:stringutils" ]
622  seed_corpus = "corpora/string_to_number-corpus"
623}
624
625webrtc_fuzzer_test("sctp_utils_fuzzer") {
626  sources = [ "sctp_utils_fuzzer.cc" ]
627  deps = [
628    "../../api:libjingle_peerconnection_api",
629    "../../pc:libjingle_peerconnection",
630    "../../pc:sctp_utils",
631    "../../rtc_base:copy_on_write_buffer",
632  ]
633}
634
635webrtc_fuzzer_test("dcsctp_socket_fuzzer") {
636  sources = [ "dcsctp_socket_fuzzer.cc" ]
637  deps = [
638    "../../net/dcsctp/fuzzers:dcsctp_fuzzers",
639    "../../net/dcsctp/public:socket",
640    "../../net/dcsctp/public:types",
641    "../../net/dcsctp/socket:dcsctp_socket",
642    "../../rtc_base:logging",
643  ]
644}
645
646webrtc_fuzzer_test("ssl_certificate_fuzzer") {
647  sources = [ "ssl_certificate_fuzzer.cc" ]
648  deps = [
649    "../:rtp_test_utils",
650    "../../rtc_base",
651    "../../rtc_base:stringutils",
652  ]
653}
654
655webrtc_fuzzer_test("vp8_replay_fuzzer") {
656  sources = [ "vp8_replay_fuzzer.cc" ]
657  deps = [ "utils:rtp_replayer" ]
658  seed_corpus = "corpora/rtpdump-corpus/vp8"
659}
660
661if (rtc_build_libvpx) {
662  webrtc_fuzzer_test("vp9_encoder_references_fuzzer") {
663    sources = [ "vp9_encoder_references_fuzzer.cc" ]
664    deps = [
665      "..:test_support",
666      "../../api:array_view",
667      "../../api:field_trials_view",
668      "../../api/video:video_frame",
669      "../../api/video_codecs:video_codecs_api",
670      "../../modules/video_coding:frame_dependencies_calculator",
671      "../../modules/video_coding:webrtc_libvpx_interface",
672      "../../modules/video_coding:webrtc_vp9",
673      "../../rtc_base:safe_compare",
674      rtc_libvpx_dir,
675    ]
676    absl_deps = [
677      "//third_party/abseil-cpp/absl/algorithm:container",
678      "//third_party/abseil-cpp/absl/base:core_headers",
679      "//third_party/abseil-cpp/absl/container:inlined_vector",
680    ]
681    seed_corpus = "corpora/vp9-encoder-references-corpus"
682    defines = [ "RTC_ENABLE_VP9" ]
683  }
684}
685
686webrtc_fuzzer_test("vp9_replay_fuzzer") {
687  sources = [ "vp9_replay_fuzzer.cc" ]
688  deps = [ "utils:rtp_replayer" ]
689  seed_corpus = "corpora/rtpdump-corpus/vp9"
690}
691