diff options
Diffstat (limited to 'sys/v4l2/v4l2src_calls.c')
-rw-r--r-- | sys/v4l2/v4l2src_calls.c | 14 |
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); |