Browse Source

rpi camera: allow using decimal FPS (#1743) (#1873)

pull/1874/head
Alessandro Ros 2 years ago committed by GitHub
parent
commit
af324c9e91
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      apidocs/openapi.yaml
  2. 2
      internal/conf/path.go
  3. 2
      internal/rpicamera/exe/camera.cpp
  4. 2
      internal/rpicamera/exe/parameters.c
  5. 2
      internal/rpicamera/exe/parameters.h
  6. 2
      internal/rpicamera/params.go

2
apidocs/openapi.yaml

@ -262,7 +262,7 @@ components: @@ -262,7 +262,7 @@ components:
rpiCameraMode:
type: string
rpiCameraFPS:
type: integer
type: number
rpiCameraIDRPeriod:
type: integer
rpiCameraBitrate:

2
internal/conf/path.go

@ -92,7 +92,7 @@ type PathConf struct { @@ -92,7 +92,7 @@ type PathConf struct {
RPICameraROI string `json:"rpiCameraROI"`
RPICameraTuningFile string `json:"rpiCameraTuningFile"`
RPICameraMode string `json:"rpiCameraMode"`
RPICameraFPS int `json:"rpiCameraFPS"`
RPICameraFPS float64 `json:"rpiCameraFPS"`
RPICameraIDRPeriod int `json:"rpiCameraIDRPeriod"`
RPICameraBitrate int `json:"rpiCameraBitrate"`
RPICameraProfile string `json:"rpiCameraProfile"`

2
internal/rpicamera/exe/camera.cpp

@ -345,7 +345,7 @@ static void fill_dynamic_controls(ControlList *ctrls, const parameters_t *params @@ -345,7 +345,7 @@ static void fill_dynamic_controls(ControlList *ctrls, const parameters_t *params
ctrls->set(controls::ExposureValue, params->ev);
int64_t frame_time = 1000000 / params->fps;
int64_t frame_time = (int64_t)(((float)1000000) / params->fps);
ctrls->set(controls::FrameDurationLimits, Span<const int64_t, 2>({ frame_time, frame_time }));
}

2
internal/rpicamera/exe/parameters.c

@ -96,7 +96,7 @@ bool parameters_unserialize(parameters_t *params, const uint8_t *buf, size_t buf @@ -96,7 +96,7 @@ bool parameters_unserialize(parameters_t *params, const uint8_t *buf, size_t buf
}
free(decoded_val);
} else if (strcmp(key, "FPS") == 0) {
params->fps = atoi(val);
params->fps = atof(val);
} else if (strcmp(key, "IDRPeriod") == 0) {
params->idr_period = atoi(val);
} else if (strcmp(key, "Bitrate") == 0) {

2
internal/rpicamera/exe/parameters.h

@ -27,7 +27,7 @@ typedef struct { @@ -27,7 +27,7 @@ typedef struct {
window_t *roi;
char *tuning_file;
sensor_mode_t *mode;
unsigned int fps;
float fps;
unsigned int idr_period;
unsigned int bitrate;
unsigned int profile;

2
internal/rpicamera/params.go

@ -21,7 +21,7 @@ type Params struct { @@ -21,7 +21,7 @@ type Params struct {
ROI string
TuningFile string
Mode string
FPS int
FPS float64
IDRPeriod int
Bitrate int
Profile string

Loading…
Cancel
Save