summaryrefslogtreecommitdiffstats
path: root/sys/v4l2/v4l2src_calls.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/v4l2/v4l2src_calls.c')
-rw-r--r--sys/v4l2/v4l2src_calls.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/v4l2/v4l2src_calls.c b/sys/v4l2/v4l2src_calls.c
index 303e674d..6e087a3a 100644
--- a/sys/v4l2/v4l2src_calls.c
+++ b/sys/v4l2/v4l2src_calls.c
@@ -738,14 +738,16 @@ gst_v4l2src_set_fps (GstV4l2Src * v4l2src, guint * fps_n, guint * fps_d)
if (!(stream.parm.capture.capability & V4L2_CAP_TIMEPERFRAME))
goto no_timeperframe;
- stream.parm.capture.timeperframe.numerator = *fps_n;
- stream.parm.capture.timeperframe.denominator = *fps_d;
+ /* Note: V4L2 needs the frame interval, we have the frame rate */
+ stream.parm.capture.timeperframe.numerator = *fps_d;
+ stream.parm.capture.timeperframe.denominator = *fps_n;
if (ioctl (v4l2object->video_fd, VIDIOC_S_PARM, &stream) < 0)
goto sparm_failed;
- *fps_n = stream.parm.capture.timeperframe.numerator;
- *fps_d = stream.parm.capture.timeperframe.denominator;
+ /* Note: V4L2 gives us the frame interval, we need the frame rate */
+ *fps_d = stream.parm.capture.timeperframe.numerator;
+ *fps_n = stream.parm.capture.timeperframe.denominator;
GST_LOG_OBJECT (v4l2src, "fps set to %d / %d", *fps_n, *fps_d);
@@ -796,8 +798,8 @@ gst_v4l2src_get_fps (GstV4l2Src * v4l2src, guint * fps_n, guint * fps_d)
}
/* Note: V4L2 gives us the frame interval, we need the frame rate */
- *fps_n = stream.parm.capture.timeperframe.numerator;
- *fps_d = stream.parm.capture.timeperframe.denominator;
+ *fps_d = stream.parm.capture.timeperframe.numerator;
+ *fps_n = stream.parm.capture.timeperframe.denominator;
GST_DEBUG_OBJECT (v4l2src,
"frame rate returned by G_PARM: %d/%d fps", *fps_n, *fps_d);