rpi: rename rpiCameraJPEGQuality in rpiCameraMJPEGQuality (#4784)

This commit is contained in:
Alessandro Ros
2025-07-25 11:40:09 +02:00
committed by GitHub
parent 94e001e736
commit 1cabc382b0
6 changed files with 60 additions and 52 deletions
+1 -1
View File
@@ -722,7 +722,7 @@ paths:
# Codec. in case of secondary streams, it defaults to M-JPEG.
rpiCameraCodec: auto
# JPEG quality.
rpiCameraJPEGQuality: 60
rpiCameraMJPEGQuality: 60
```
The secondary stream is available in path `/secondary`.
+1 -1
View File
@@ -456,7 +456,7 @@ components:
type: string
rpiCameraLevel:
type: string
rpiCameraJPEGQuality:
rpiCameraMJPEGQuality:
type: integer
# Hooks
+1 -1
View File
@@ -79,7 +79,7 @@ func TestConfFromFile(t *testing.T) {
RPICameraBitrate: 5000000,
RPICameraProfile: "main",
RPICameraLevel: "4.1",
RPICameraJPEGQuality: 60,
RPICameraMJPEGQuality: 60,
RunOnDemandStartTimeout: 5 * Duration(time.Second),
RunOnDemandCloseAfter: 10 * Duration(time.Second),
}, pa)
+52 -45
View File
@@ -157,48 +157,49 @@ type Path struct {
SourceRedirect string `json:"sourceRedirect"`
// Raspberry Pi Camera source
RPICameraCamID uint `json:"rpiCameraCamID"`
RPICameraSecondary bool `json:"rpiCameraSecondary"`
RPICameraWidth uint `json:"rpiCameraWidth"`
RPICameraHeight uint `json:"rpiCameraHeight"`
RPICameraHFlip bool `json:"rpiCameraHFlip"`
RPICameraVFlip bool `json:"rpiCameraVFlip"`
RPICameraBrightness float64 `json:"rpiCameraBrightness"`
RPICameraContrast float64 `json:"rpiCameraContrast"`
RPICameraSaturation float64 `json:"rpiCameraSaturation"`
RPICameraSharpness float64 `json:"rpiCameraSharpness"`
RPICameraExposure string `json:"rpiCameraExposure"`
RPICameraAWB string `json:"rpiCameraAWB"`
RPICameraAWBGains []float64 `json:"rpiCameraAWBGains"`
RPICameraDenoise string `json:"rpiCameraDenoise"`
RPICameraShutter uint `json:"rpiCameraShutter"`
RPICameraMetering string `json:"rpiCameraMetering"`
RPICameraGain float64 `json:"rpiCameraGain"`
RPICameraEV float64 `json:"rpiCameraEV"`
RPICameraROI string `json:"rpiCameraROI"`
RPICameraHDR bool `json:"rpiCameraHDR"`
RPICameraTuningFile string `json:"rpiCameraTuningFile"`
RPICameraMode string `json:"rpiCameraMode"`
RPICameraFPS float64 `json:"rpiCameraFPS"`
RPICameraAfMode string `json:"rpiCameraAfMode"`
RPICameraAfRange string `json:"rpiCameraAfRange"`
RPICameraAfSpeed string `json:"rpiCameraAfSpeed"`
RPICameraLensPosition float64 `json:"rpiCameraLensPosition"`
RPICameraAfWindow string `json:"rpiCameraAfWindow"`
RPICameraFlickerPeriod uint `json:"rpiCameraFlickerPeriod"`
RPICameraTextOverlayEnable bool `json:"rpiCameraTextOverlayEnable"`
RPICameraTextOverlay string `json:"rpiCameraTextOverlay"`
RPICameraCodec string `json:"rpiCameraCodec"`
RPICameraIDRPeriod uint `json:"rpiCameraIDRPeriod"`
RPICameraBitrate uint `json:"rpiCameraBitrate"`
RPICameraProfile string `json:"rpiCameraProfile"`
RPICameraLevel string `json:"rpiCameraLevel"`
RPICameraJPEGQuality uint `json:"rpiCameraJPEGQuality"`
RPICameraPrimaryName string `json:"-"` // filled by Check()
RPICameraSecondaryWidth uint `json:"-"` // filled by Check()
RPICameraSecondaryHeight uint `json:"-"` // filled by Check()
RPICameraSecondaryFPS float64 `json:"-"` // filled by Check()
RPICameraSecondaryJPEGQuality uint `json:"-"` // filled by Check()
RPICameraCamID uint `json:"rpiCameraCamID"`
RPICameraSecondary bool `json:"rpiCameraSecondary"`
RPICameraWidth uint `json:"rpiCameraWidth"`
RPICameraHeight uint `json:"rpiCameraHeight"`
RPICameraHFlip bool `json:"rpiCameraHFlip"`
RPICameraVFlip bool `json:"rpiCameraVFlip"`
RPICameraBrightness float64 `json:"rpiCameraBrightness"`
RPICameraContrast float64 `json:"rpiCameraContrast"`
RPICameraSaturation float64 `json:"rpiCameraSaturation"`
RPICameraSharpness float64 `json:"rpiCameraSharpness"`
RPICameraExposure string `json:"rpiCameraExposure"`
RPICameraAWB string `json:"rpiCameraAWB"`
RPICameraAWBGains []float64 `json:"rpiCameraAWBGains"`
RPICameraDenoise string `json:"rpiCameraDenoise"`
RPICameraShutter uint `json:"rpiCameraShutter"`
RPICameraMetering string `json:"rpiCameraMetering"`
RPICameraGain float64 `json:"rpiCameraGain"`
RPICameraEV float64 `json:"rpiCameraEV"`
RPICameraROI string `json:"rpiCameraROI"`
RPICameraHDR bool `json:"rpiCameraHDR"`
RPICameraTuningFile string `json:"rpiCameraTuningFile"`
RPICameraMode string `json:"rpiCameraMode"`
RPICameraFPS float64 `json:"rpiCameraFPS"`
RPICameraAfMode string `json:"rpiCameraAfMode"`
RPICameraAfRange string `json:"rpiCameraAfRange"`
RPICameraAfSpeed string `json:"rpiCameraAfSpeed"`
RPICameraLensPosition float64 `json:"rpiCameraLensPosition"`
RPICameraAfWindow string `json:"rpiCameraAfWindow"`
RPICameraFlickerPeriod uint `json:"rpiCameraFlickerPeriod"`
RPICameraTextOverlayEnable bool `json:"rpiCameraTextOverlayEnable"`
RPICameraTextOverlay string `json:"rpiCameraTextOverlay"`
RPICameraCodec string `json:"rpiCameraCodec"`
RPICameraIDRPeriod uint `json:"rpiCameraIDRPeriod"`
RPICameraBitrate uint `json:"rpiCameraBitrate"`
RPICameraProfile string `json:"rpiCameraProfile"`
RPICameraLevel string `json:"rpiCameraLevel"`
RPICameraJPEGQuality *uint `json:"rpiCameraJPEGQuality,omitempty"` // deprecated
RPICameraMJPEGQuality uint `json:"rpiCameraMJPEGQuality"`
RPICameraPrimaryName string `json:"-"` // filled by Check()
RPICameraSecondaryWidth uint `json:"-"` // filled by Check()
RPICameraSecondaryHeight uint `json:"-"` // filled by Check()
RPICameraSecondaryFPS float64 `json:"-"` // filled by Check()
RPICameraSecondaryMJPEGQuality uint `json:"-"` // filled by Check()
// Hooks
RunOnInit string `json:"runOnInit"`
@@ -256,7 +257,7 @@ func (pconf *Path) setDefaults() {
pconf.RPICameraBitrate = 5000000
pconf.RPICameraProfile = "main"
pconf.RPICameraLevel = "4.1"
pconf.RPICameraJPEGQuality = 60
pconf.RPICameraMJPEGQuality = 60
// Hooks
pconf.RunOnDemandStartTimeout = 10 * Duration(time.Second)
@@ -288,7 +289,7 @@ func (pconf Path) Clone() *Path {
dest.RPICameraSecondaryWidth = pconf.RPICameraSecondaryWidth
dest.RPICameraSecondaryHeight = pconf.RPICameraSecondaryHeight
dest.RPICameraSecondaryFPS = pconf.RPICameraSecondaryFPS
dest.RPICameraSecondaryJPEGQuality = pconf.RPICameraSecondaryJPEGQuality
dest.RPICameraSecondaryMJPEGQuality = pconf.RPICameraSecondaryMJPEGQuality
return &dest
}
@@ -506,6 +507,12 @@ func (pconf *Path) validate(
return fmt.Errorf("invalid 'rpiCameraLevel' value")
}
if pconf.RPICameraJPEGQuality != nil {
l.Log(logger.Warn, "parameter 'rpiCameraJPEGQuality' is deprecated"+
" and has been replaced with 'rpiCameraMJPEGQuality'")
pconf.RPICameraMJPEGQuality = *pconf.RPICameraJPEGQuality
}
if !pconf.RPICameraSecondary {
switch pconf.RPICameraCodec {
case "auto", "hardwareH264", "softwareH264":
@@ -557,7 +564,7 @@ func (pconf *Path) validate(
primary.RPICameraSecondaryWidth = pconf.RPICameraWidth
primary.RPICameraSecondaryHeight = pconf.RPICameraHeight
primary.RPICameraSecondaryFPS = pconf.RPICameraFPS
primary.RPICameraSecondaryJPEGQuality = pconf.RPICameraJPEGQuality
primary.RPICameraSecondaryMJPEGQuality = pconf.RPICameraMJPEGQuality
}
default:
+1 -1
View File
@@ -76,7 +76,7 @@ func paramsFromConf(logLevel conf.LogLevel, cnf *conf.Path) params {
SecondaryWidth: uint32(cnf.RPICameraSecondaryWidth),
SecondaryHeight: uint32(cnf.RPICameraSecondaryHeight),
SecondaryFPS: float32(cnf.RPICameraSecondaryFPS),
SecondaryQuality: uint32(cnf.RPICameraSecondaryJPEGQuality),
SecondaryQuality: uint32(cnf.RPICameraSecondaryMJPEGQuality),
}
}
+4 -3
View File
@@ -611,7 +611,8 @@ pathDefaults:
# format is the one of the strftime() function.
rpiCameraTextOverlay: '%Y-%m-%d %H:%M:%S - MediaMTX'
# Codec (auto, hardwareH264, softwareH264 or mjpeg).
# When auto, hardwareH264 is used if the Raspberry has a H264 encoder, otherwise softwareH264.
# When is "auto" and stream is primary, it defaults to hardwareH264 (if available) or softwareH264.
# When is "auto" and stream is secondary, it defaults to mjpeg.
rpiCameraCodec: auto
# Period between IDR frames (when codec is hardwareH264 or softwareH264).
rpiCameraIDRPeriod: 60
@@ -621,8 +622,8 @@ pathDefaults:
rpiCameraProfile: main
# H264 level (4.0, 4.1 or 4.2).
rpiCameraLevel: '4.1'
# JPEG quality.
rpiCameraJPEGQuality: 60
# M-JPEG JPEG quality (when codec is mjpeg).
rpiCameraMJPEGQuality: 60
###############################################
# Default path settings -> Hooks