Re: [PATCH] media: venus: add support for key frame

From: kbuild test robot
Date: Tue Oct 09 2018 - 13:22:27 EST


Hi Malathi,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on v4.19-rc7 next-20181009]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Malathi-Gottam/media-venus-add-support-for-key-frame/20181009-214918
base: git://linuxtv.org/media_tree.git master
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=arm

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

drivers/media//platform/qcom/venus/venc_ctrls.c: In function 'venc_op_s_ctrl':
>> drivers/media//platform/qcom/venus/venc_ctrls.c:180:7: warning: 'ptr' may be used uninitialized in this function [-Wmaybe-uninitialized]
ret = hfi_session_set_property(inst, ptype, ptr);
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

vim +/ptr +180 drivers/media//platform/qcom/venus/venc_ctrls.c

77
78 static int venc_op_s_ctrl(struct v4l2_ctrl *ctrl)
79 {
80 struct venus_inst *inst = ctrl_to_inst(ctrl);
81 struct venc_controls *ctr = &inst->controls.enc;
82 u32 bframes;
83 int ret;
84 void *ptr;
85 u32 ptype;
86
87 switch (ctrl->id) {
88 case V4L2_CID_MPEG_VIDEO_BITRATE_MODE:
89 ctr->bitrate_mode = ctrl->val;
90 break;
91 case V4L2_CID_MPEG_VIDEO_BITRATE:
92 ctr->bitrate = ctrl->val;
93 break;
94 case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK:
95 ctr->bitrate_peak = ctrl->val;
96 break;
97 case V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE:
98 ctr->h264_entropy_mode = ctrl->val;
99 break;
100 case V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE:
101 ctr->profile.mpeg4 = ctrl->val;
102 break;
103 case V4L2_CID_MPEG_VIDEO_H264_PROFILE:
104 ctr->profile.h264 = ctrl->val;
105 break;
106 case V4L2_CID_MPEG_VIDEO_VP8_PROFILE:
107 ctr->profile.vpx = ctrl->val;
108 break;
109 case V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL:
110 ctr->level.mpeg4 = ctrl->val;
111 break;
112 case V4L2_CID_MPEG_VIDEO_H264_LEVEL:
113 ctr->level.h264 = ctrl->val;
114 break;
115 case V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP:
116 ctr->h264_i_qp = ctrl->val;
117 break;
118 case V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP:
119 ctr->h264_p_qp = ctrl->val;
120 break;
121 case V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP:
122 ctr->h264_b_qp = ctrl->val;
123 break;
124 case V4L2_CID_MPEG_VIDEO_H264_MIN_QP:
125 ctr->h264_min_qp = ctrl->val;
126 break;
127 case V4L2_CID_MPEG_VIDEO_H264_MAX_QP:
128 ctr->h264_max_qp = ctrl->val;
129 break;
130 case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE:
131 ctr->multi_slice_mode = ctrl->val;
132 break;
133 case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES:
134 ctr->multi_slice_max_bytes = ctrl->val;
135 break;
136 case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB:
137 ctr->multi_slice_max_mb = ctrl->val;
138 break;
139 case V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA:
140 ctr->h264_loop_filter_alpha = ctrl->val;
141 break;
142 case V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA:
143 ctr->h264_loop_filter_beta = ctrl->val;
144 break;
145 case V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE:
146 ctr->h264_loop_filter_mode = ctrl->val;
147 break;
148 case V4L2_CID_MPEG_VIDEO_HEADER_MODE:
149 ctr->header_mode = ctrl->val;
150 break;
151 case V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB:
152 break;
153 case V4L2_CID_MPEG_VIDEO_GOP_SIZE:
154 ret = venc_calc_bpframes(ctrl->val, ctr->num_b_frames, &bframes,
155 &ctr->num_p_frames);
156 if (ret)
157 return ret;
158
159 ctr->gop_size = ctrl->val;
160 break;
161 case V4L2_CID_MPEG_VIDEO_H264_I_PERIOD:
162 ctr->h264_i_period = ctrl->val;
163 break;
164 case V4L2_CID_MPEG_VIDEO_VPX_MIN_QP:
165 ctr->vp8_min_qp = ctrl->val;
166 break;
167 case V4L2_CID_MPEG_VIDEO_VPX_MAX_QP:
168 ctr->vp8_max_qp = ctrl->val;
169 break;
170 case V4L2_CID_MPEG_VIDEO_B_FRAMES:
171 ret = venc_calc_bpframes(ctr->gop_size, ctrl->val, &bframes,
172 &ctr->num_p_frames);
173 if (ret)
174 return ret;
175
176 ctr->num_b_frames = bframes;
177 break;
178 case V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME:
179 ptype = HFI_PROPERTY_CONFIG_VENC_REQUEST_SYNC_FRAME;
> 180 ret = hfi_session_set_property(inst, ptype, ptr);
181
182 if (ret)
183 return ret;
184
185 break;
186 default:
187 return -EINVAL;
188 }
189
190 return 0;
191 }
192

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip