rpi: make sure all parameters are 32-bit (#4425)

This commit is contained in:
Alessandro Ros
2025-04-13 19:13:26 +02:00
committed by GitHub
parent b564dc9ff1
commit 4280eec265
3 changed files with 44 additions and 43 deletions
+17 -17
View File
@@ -2,40 +2,40 @@ package rpicamera
type params struct {
LogLevel string
CameraID uint
Width uint
Height uint
CameraID uint32
Width uint32
Height uint32
HFlip bool
VFlip bool
Brightness float64
Contrast float64
Saturation float64
Sharpness float64
Brightness float32
Contrast float32
Saturation float32
Sharpness float32
Exposure string
AWB string
AWBGainRed float64
AWBGainBlue float64
AWBGainRed float32
AWBGainBlue float32
Denoise string
Shutter uint
Shutter uint32
Metering string
Gain float64
EV float64
Gain float32
EV float32
ROI string
HDR bool
TuningFile string
Mode string
FPS float64
FPS float32
AfMode string
AfRange string
AfSpeed string
LensPosition float64
LensPosition float32
AfWindow string
FlickerPeriod uint
FlickerPeriod uint32
TextOverlayEnable bool
TextOverlay string
Codec string
IDRPeriod uint
Bitrate uint
IDRPeriod uint32
Bitrate uint32
Profile string
Level string
}
@@ -15,21 +15,22 @@ func (p params) serialize() []byte {
nf := rv.NumField()
ret := make([]string, nf)
for i := 0; i < nf; i++ {
for i := range nf {
entry := rt.Field(i).Name + ":"
f := rv.Field(i)
v := f.Interface()
switch f.Kind() {
case reflect.Uint:
entry += strconv.FormatUint(f.Uint(), 10)
switch v := v.(type) {
case uint32:
entry += strconv.FormatUint(uint64(v), 10)
case reflect.Float64:
entry += strconv.FormatFloat(f.Float(), 'f', -1, 64)
case float32:
entry += strconv.FormatFloat(float64(v), 'f', -1, 64)
case reflect.String:
entry += base64.StdEncoding.EncodeToString([]byte(f.String()))
case string:
entry += base64.StdEncoding.EncodeToString([]byte(v))
case reflect.Bool:
case bool:
if f.Bool() {
entry += "1"
} else {
+17 -17
View File
@@ -27,40 +27,40 @@ func paramsFromConf(logLevel conf.LogLevel, cnf *conf.Path) params {
}
return "error"
}(),
CameraID: cnf.RPICameraCamID,
Width: cnf.RPICameraWidth,
Height: cnf.RPICameraHeight,
CameraID: uint32(cnf.RPICameraCamID),
Width: uint32(cnf.RPICameraWidth),
Height: uint32(cnf.RPICameraHeight),
HFlip: cnf.RPICameraHFlip,
VFlip: cnf.RPICameraVFlip,
Brightness: cnf.RPICameraBrightness,
Contrast: cnf.RPICameraContrast,
Saturation: cnf.RPICameraSaturation,
Sharpness: cnf.RPICameraSharpness,
Brightness: float32(cnf.RPICameraBrightness),
Contrast: float32(cnf.RPICameraContrast),
Saturation: float32(cnf.RPICameraSaturation),
Sharpness: float32(cnf.RPICameraSharpness),
Exposure: cnf.RPICameraExposure,
AWB: cnf.RPICameraAWB,
AWBGainRed: cnf.RPICameraAWBGains[0],
AWBGainBlue: cnf.RPICameraAWBGains[1],
AWBGainRed: float32(cnf.RPICameraAWBGains[0]),
AWBGainBlue: float32(cnf.RPICameraAWBGains[1]),
Denoise: cnf.RPICameraDenoise,
Shutter: cnf.RPICameraShutter,
Shutter: uint32(cnf.RPICameraShutter),
Metering: cnf.RPICameraMetering,
Gain: cnf.RPICameraGain,
EV: cnf.RPICameraEV,
Gain: float32(cnf.RPICameraGain),
EV: float32(cnf.RPICameraEV),
ROI: cnf.RPICameraROI,
HDR: cnf.RPICameraHDR,
TuningFile: cnf.RPICameraTuningFile,
Mode: cnf.RPICameraMode,
FPS: cnf.RPICameraFPS,
FPS: float32(cnf.RPICameraFPS),
AfMode: cnf.RPICameraAfMode,
AfRange: cnf.RPICameraAfRange,
AfSpeed: cnf.RPICameraAfSpeed,
LensPosition: cnf.RPICameraLensPosition,
LensPosition: float32(cnf.RPICameraLensPosition),
AfWindow: cnf.RPICameraAfWindow,
FlickerPeriod: cnf.RPICameraFlickerPeriod,
FlickerPeriod: uint32(cnf.RPICameraFlickerPeriod),
TextOverlayEnable: cnf.RPICameraTextOverlayEnable,
TextOverlay: cnf.RPICameraTextOverlay,
Codec: cnf.RPICameraCodec,
IDRPeriod: cnf.RPICameraIDRPeriod,
Bitrate: cnf.RPICameraBitrate,
IDRPeriod: uint32(cnf.RPICameraIDRPeriod),
Bitrate: uint32(cnf.RPICameraBitrate),
Profile: cnf.RPICameraProfile,
Level: cnf.RPICameraLevel,
}