blob: 13912f4e13a9d6b357341a56eb7442958462ea6d [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto2";
package media.fuzzing;
message JpegComponent {
optional uint32 id = 1;
optional uint32 horizontal_sampling_factor = 2;
optional uint32 vertical_sampling_factor = 3;
optional uint32 quantization_table_selector = 4;
}
message JpegFrameHeader {
optional uint32 visible_width = 1;
optional uint32 visible_height = 2;
optional uint32 coded_width = 3;
optional uint32 coded_height = 4;
repeated JpegComponent components = 5;
}
message JpegHuffmanTable {
optional bool valid = 1;
optional bytes code_length = 2;
optional bytes code_value = 3;
}
message JpegQuantizationTable {
optional bool valid = 1;
optional bytes value = 2;
}
message JpegScanHeader {
message Component {
optional uint32 component_selector = 1;
optional uint32 dc_selector = 2;
optional uint32 ac_selector = 3;
}
repeated Component components = 1;
}
message JpegParseResult {
optional JpegFrameHeader frame_header = 1;
repeated JpegHuffmanTable dc_table = 2;
repeated JpegHuffmanTable ac_table = 3;
repeated JpegQuantizationTable q_table = 4;
optional uint32 restart_interval = 5;
optional JpegScanHeader scan = 6;
optional bytes data = 7;
optional uint32 image_size = 8;
}
enum VARTFormat {
INVALID = 0;
YUV420 = 1;
YUV422 = 2;
YUV444 = 3;
YUV411 = 4;
YUV400 = 5;
YUV420_10 = 6;
YUV422_10 = 7;
YUV444_10 = 8;
YUV420_12 = 9;
YUV422_12 = 10;
YUV444_12 = 11;
RGB16 = 12;
RGB32 = 13;
RGBP = 14;
RGB32_10 = 15;
PROTECTED = 16;
}
message JpegImageList {
message JpegImage {
optional VARTFormat picture_va_rt_format = 1 [default = INVALID];
optional int32 surface_coded_width = 2;
optional int32 surface_coded_height = 3;
optional int32 surface_visible_width = 4;
optional int32 surface_visible_height = 5;
optional JpegParseResult parse_result = 6;
}
repeated JpegImage images = 1;
}