Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Side by Side Diff: media/filters/h264_parser_fuzzertest.cc

Issue 1770583002: Add fuzzer test for various media parsers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <stddef.h>
6
7 #include "base/numerics/safe_conversions.h"
8 #include "media/filters/h264_parser.h"
9
10 // Entry point for LibFuzzer.
11 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
12 if (size > 0) {
DaleCurtis 2016/03/05 01:30:06 Invert conditional, return 0 if !size.
jrummell 2016/03/07 20:07:28 Done.
13 media::H264Parser parser;
14 parser.SetStream(data, base::checked_cast<off_t>(size));
15
16 // Parse until the end of stream/unsupported stream/error in stream is
17 // found.
18 while (true) {
19 media::H264NALU nalu;
20 media::H264Parser::Result res = parser.AdvanceToNextNALU(&nalu);
21 if (res != media::H264Parser::kOk)
22 break;
23
24 switch (nalu.nal_unit_type) {
25 case media::H264NALU::kIDRSlice:
26 case media::H264NALU::kNonIDRSlice: {
27 media::H264SliceHeader shdr;
28 res = parser.ParseSliceHeader(nalu, &shdr);
29 } break;
DaleCurtis 2016/03/05 01:30:06 put break in the {} block.
jrummell 2016/03/07 20:07:28 Done.
30
31 case media::H264NALU::kSPS: {
32 int id;
33 res = parser.ParseSPS(&id);
34 } break;
35
36 case media::H264NALU::kPPS: {
37 int id;
38 res = parser.ParsePPS(&id);
39 } break;
40
41 case media::H264NALU::kSEIMessage: {
42 media::H264SEIMessage sei_msg;
43 res = parser.ParseSEI(&sei_msg);
44 } break;
45
46 default:
47 // Skip any other NALU.
48 break;
49 }
50 if (res != media::H264Parser::kOk)
51 break;
52 }
53 }
54
55 return 0;
56 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698