• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1syntax = "proto2";
2// Very simple proto description of the PNG format,
3// described at https://en.wikipedia.org/wiki/Portable_Network_Graphics
4
5message IHDR {
6  required uint32 width = 1;
7  required uint32 height = 2;
8  required uint32 other1 = 3;
9  required uint32 other2 = 4;  // Only 1 byte used.
10}
11
12message PLTE {
13  required bytes data = 1;
14}
15
16message IDAT {
17  required bytes data = 1;
18}
19
20message iCCP  {
21  required bytes data = 2;
22}
23
24message OtherChunk {
25  oneof type {
26    uint32 known_type = 1;
27    uint32 unknown_type = 2;
28  }
29  required bytes data = 3;
30}
31
32message PngChunk {
33  oneof chunk {
34    PLTE plte = 1;
35    IDAT idat = 2;
36    iCCP iccp = 3;
37    OtherChunk other_chunk = 10000;
38  }
39}
40
41message PngProto {
42  required IHDR ihdr = 1;
43  repeated PngChunk chunks = 2;
44}
45
46// package fuzzer_examples;
47