diff --git a/include/uapi/amlogic/amvdec_ioc.h b/include/uapi/amlogic/amvdec_ioc.h index e7f64020e..8d1aa30b3 100644 --- a/include/uapi/amlogic/amvdec_ioc.h +++ b/include/uapi/amlogic/amvdec_ioc.h @@ -7,6 +7,7 @@ #define __AMVDEC_IOC_H__ #include +#include #define _A_M_V 'S' @@ -302,9 +303,18 @@ struct av_param_qosinfo_t { struct vframe_qos_s vframe_qos[QOS_FRAME_NUM]; }; +#ifndef struct_group +#define struct_group(NAME, MEMBERS...) \ + union { \ + struct { MEMBERS }; \ + struct { MEMBERS } NAME; \ + } +#endif + struct vdec_info { char vdec_name[16]; __u32 ver; + struct_group(normal_info, __u32 frame_width; __u32 frame_height; __u32 frame_rate; @@ -332,7 +342,9 @@ struct vdec_info { }; __u32 offset; __u32 ratio_control; + ); char reserved[0]; + struct_group(ipb, unsigned int i_decoded_frames;/*i frames decoded*/ unsigned int i_lost_frames;/*i frames can not be decoded*/ unsigned int i_concealed_frames;/*i frames decoded but have some error*/ @@ -342,6 +354,7 @@ struct vdec_info { unsigned int b_decoded_frames; unsigned int b_lost_frames; unsigned int b_concealed_frames; + ); char endipb_line[0]; }; @@ -454,6 +467,7 @@ struct vframe_comm_s { struct vframe_counter_s { struct vframe_qos_s qos; __u32 decode_time_cost;/*us*/ + struct_group(normal_info, __u32 frame_width; __u32 frame_height; __u32 frame_rate; @@ -481,11 +495,15 @@ struct vframe_counter_s { }; __u32 offset; __u32 ratio_control; + + ); + __u32 vf_type; __u32 signal_type; __u32 pts; __u64 pts_us64; /*mediacodec report*/ + struct_group(ipb, unsigned int i_decoded_frames; //i frames decoded unsigned int i_lost_frames;//i frames can not be decoded unsigned int i_concealed_frames;//i frames decoded but have some error @@ -496,6 +514,9 @@ struct vframe_counter_s { unsigned int b_lost_frames; unsigned int b_concealed_frames; unsigned int av_resynch_counter; + + ); + }; struct vframe_counter_s_old {