diff options
author | Michael Tretter <m.tretter@pengutronix.de> | 2020-01-08 18:36:53 +0100 |
---|---|---|
committer | Michael Tretter <m.tretter@pengutronix.de> | 2020-03-03 17:47:06 +0100 |
commit | b3b66f30f6c4a22d6133fd73d0db509acabe42c1 (patch) | |
tree | 435063575c97f1ff1ba8d98528a4e49d84f07e41 | |
parent | 0e545c9fecdd759e889d356d1abd3eeb88fb3e98 (diff) | |
download | linux-0-day-b3b66f30f6c4a22d6133fd73d0db509acabe42c1.tar.gz linux-0-day-b3b66f30f6c4a22d6133fd73d0db509acabe42c1.tar.xz |
media: allegro: handle dependency of bitrate and bitrate_peak
The peak bitrate must not be smaller than the configured bitrate. Update
the other control whenever one of the controls changes to reflect this
dependency.
Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
-rw-r--r-- | drivers/staging/media/allegro-dvt/allegro-core.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/staging/media/allegro-dvt/allegro-core.c b/drivers/staging/media/allegro-dvt/allegro-core.c index 6a492de52987d..d994a53e73cf5 100644 --- a/drivers/staging/media/allegro-dvt/allegro-core.c +++ b/drivers/staging/media/allegro-dvt/allegro-core.c @@ -2423,9 +2423,15 @@ static int allegro_s_ctrl(struct v4l2_ctrl *ctrl) break; case V4L2_CID_MPEG_VIDEO_BITRATE: channel->bitrate = ctrl->val; + if (channel->bitrate > channel->bitrate_peak) + __v4l2_ctrl_s_ctrl(channel->mpeg_video_bitrate_peak, + channel->bitrate); break; case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK: channel->bitrate_peak = ctrl->val; + if (channel->bitrate_peak < channel->bitrate) + __v4l2_ctrl_s_ctrl(channel->mpeg_video_bitrate, + channel->bitrate_peak); break; case V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE: channel->cpb_size = ctrl->val; |