video: driver: Modify buffer_stats logic
For super buffer usecase, All the ETB's gets queued with updated timestamp in hfi_buffer, therefore all the fbd's being recieved are of different timestamp. And only the last EBD is considered for dequeued flag and hence for remove_buffer_stat. Therefore when first FBD arrives which has the matched TS to the stat's TS will get skipped since last EBD in the batch has not arrived yet and rest all FBDs are with updated TS, hence the buffer stat doesn't get's removed from the list. Modified the logic to add stats during hfi_buffer queue and add stats for all sub-frames in super buffer usecase. Modified the logic for Multi-In single-Out usecase as well. Change-Id: I0643e6f64bdfc3cbfa67baeb1cf9157de92ce569 Signed-off-by: Vedang Nagar <quic_vnagar@quicinc.com>
This commit is contained in:
@@ -599,9 +599,9 @@ int signal_session_msg_receipt(struct msm_vidc_inst *inst,
|
||||
int msm_vidc_get_properties(struct msm_vidc_inst *inst);
|
||||
int msm_vidc_update_input_rate(struct msm_vidc_inst *inst, u64 time_us);
|
||||
int msm_vidc_add_buffer_stats(struct msm_vidc_inst *inst,
|
||||
struct msm_vidc_buffer *buf);
|
||||
struct msm_vidc_buffer *buf, u64 timestamp);
|
||||
int msm_vidc_remove_buffer_stats(struct msm_vidc_inst *inst,
|
||||
struct msm_vidc_buffer *buf);
|
||||
struct msm_vidc_buffer *buf, u64 timestamp);
|
||||
int msm_vidc_flush_buffer_stats(struct msm_vidc_inst *inst);
|
||||
int msm_vidc_get_input_rate(struct msm_vidc_inst *inst);
|
||||
int msm_vidc_get_frame_rate(struct msm_vidc_inst *inst);
|
||||
|
Viittaa uudesa ongelmassa
Block a user