summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorLeo Liu <[email protected]>2017-08-15 10:31:30 -0400
committerLeo Liu <[email protected]>2017-08-21 10:09:09 -0400
commit4ac38ac3de05c77a7158e93ae2bde443abec032a (patch)
treefc82520913f20714dba8b77c11e7b2f26cd675c3 /src/gallium
parent11ccb56e9fe7a032a4f7a303580e4811717ae97b (diff)
vl: add MJPEG picture description
Signed-off-by: Leo Liu <[email protected]> Reviewed-by: Christian König <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/include/pipe/p_video_state.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/gallium/include/pipe/p_video_state.h b/src/gallium/include/pipe/p_video_state.h
index 53f9ab3d5e1..abd5d364d22 100644
--- a/src/gallium/include/pipe/p_video_state.h
+++ b/src/gallium/include/pipe/p_video_state.h
@@ -519,6 +519,65 @@ struct pipe_h265_picture_desc
bool UseRefPicList;
};
+struct pipe_mjpeg_picture_desc
+{
+ struct pipe_picture_desc base;
+
+ struct
+ {
+ uint16_t picture_width;
+ uint16_t picture_height;
+
+ struct {
+ uint8_t component_id;
+ uint8_t h_sampling_factor;
+ uint8_t v_sampling_factor;
+ uint8_t quantiser_table_selector;
+ } components[255];
+
+ uint8_t num_components;
+ } picture_parameter;
+
+ struct
+ {
+ uint8_t load_quantiser_table[4];
+ uint8_t quantiser_table[4][64];
+ } quantization_table;
+
+ struct
+ {
+ uint8_t load_huffman_table[2];
+
+ struct {
+ uint8_t num_dc_codes[16];
+ uint8_t dc_values[12];
+ uint8_t num_ac_codes[16];
+ uint8_t ac_values[162];
+ uint8_t pad[2];
+ } table[2];
+ } huffman_table;
+
+ struct
+ {
+ unsigned slice_data_size;
+ unsigned slice_data_offset;
+ unsigned slice_data_flag;
+ unsigned slice_horizontal_position;
+ unsigned slice_vertical_position;
+
+ struct {
+ uint8_t component_selector;
+ uint8_t dc_table_selector;
+ uint8_t ac_table_selector;
+ } components[4];
+
+ uint8_t num_components;
+
+ uint16_t restart_interval;
+ unsigned num_mcus;
+ } slice_parameter;
+};
+
#ifdef __cplusplus
}
#endif