|
@@ -25,10 +25,16 @@
|
|
|
static void event_seq_changed(struct venus_core *core, struct venus_inst *inst,
|
|
|
struct hfi_msg_event_notify_pkt *pkt)
|
|
|
{
|
|
|
+ enum hfi_version ver = core->res->hfi_version;
|
|
|
struct hfi_event_data event = {0};
|
|
|
int num_properties_changed;
|
|
|
struct hfi_framesize *frame_sz;
|
|
|
struct hfi_profile_level *profile_level;
|
|
|
+ struct hfi_bit_depth *pixel_depth;
|
|
|
+ struct hfi_pic_struct *pic_struct;
|
|
|
+ struct hfi_colour_space *colour_info;
|
|
|
+ struct hfi_buffer_requirements *bufreq;
|
|
|
+ struct hfi_extradata_input_crop *crop;
|
|
|
u8 *data_ptr;
|
|
|
u32 ptype;
|
|
|
|
|
@@ -69,6 +75,44 @@ static void event_seq_changed(struct venus_core *core, struct venus_inst *inst,
|
|
|
event.level = profile_level->level;
|
|
|
data_ptr += sizeof(*profile_level);
|
|
|
break;
|
|
|
+ case HFI_PROPERTY_PARAM_VDEC_PIXEL_BITDEPTH:
|
|
|
+ data_ptr += sizeof(u32);
|
|
|
+ pixel_depth = (struct hfi_bit_depth *)data_ptr;
|
|
|
+ event.bit_depth = pixel_depth->bit_depth;
|
|
|
+ data_ptr += sizeof(*pixel_depth);
|
|
|
+ break;
|
|
|
+ case HFI_PROPERTY_PARAM_VDEC_PIC_STRUCT:
|
|
|
+ data_ptr += sizeof(u32);
|
|
|
+ pic_struct = (struct hfi_pic_struct *)data_ptr;
|
|
|
+ event.pic_struct = pic_struct->progressive_only;
|
|
|
+ data_ptr += sizeof(*pic_struct);
|
|
|
+ break;
|
|
|
+ case HFI_PROPERTY_PARAM_VDEC_COLOUR_SPACE:
|
|
|
+ data_ptr += sizeof(u32);
|
|
|
+ colour_info = (struct hfi_colour_space *)data_ptr;
|
|
|
+ event.colour_space = colour_info->colour_space;
|
|
|
+ data_ptr += sizeof(*colour_info);
|
|
|
+ break;
|
|
|
+ case HFI_PROPERTY_CONFIG_VDEC_ENTROPY:
|
|
|
+ data_ptr += sizeof(u32);
|
|
|
+ event.entropy_mode = *(u32 *)data_ptr;
|
|
|
+ data_ptr += sizeof(u32);
|
|
|
+ break;
|
|
|
+ case HFI_PROPERTY_CONFIG_BUFFER_REQUIREMENTS:
|
|
|
+ data_ptr += sizeof(u32);
|
|
|
+ bufreq = (struct hfi_buffer_requirements *)data_ptr;
|
|
|
+ event.buf_count = HFI_BUFREQ_COUNT_MIN(bufreq, ver);
|
|
|
+ data_ptr += sizeof(*bufreq);
|
|
|
+ break;
|
|
|
+ case HFI_INDEX_EXTRADATA_INPUT_CROP:
|
|
|
+ data_ptr += sizeof(u32);
|
|
|
+ crop = (struct hfi_extradata_input_crop *)data_ptr;
|
|
|
+ event.input_crop.left = crop->left;
|
|
|
+ event.input_crop.top = crop->top;
|
|
|
+ event.input_crop.width = crop->width;
|
|
|
+ event.input_crop.height = crop->height;
|
|
|
+ data_ptr += sizeof(*crop);
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|