62 lines
1.8 KiB
Diff
62 lines
1.8 KiB
Diff
From e9b9898be9c2cbf007b5e6580d4f90c93163502b Mon Sep 17 00:00:00 2001
|
|
From: Michael Grzeschik <m.grzeschik@pengutronix.de>
|
|
Date: Tue, 21 Feb 2023 02:10:52 +0100
|
|
Subject: [PATCH 47/68] v4l2codecs: encoder: Add h264 code to v4l2 encoder
|
|
class
|
|
|
|
Upstream-Status: Pending
|
|
---
|
|
sys/v4l2codecs/gstv4l2encoder.c | 25 +++++++++++++++++++++++++
|
|
sys/v4l2codecs/gstv4l2encoder.h | 2 ++
|
|
2 files changed, 27 insertions(+)
|
|
|
|
diff --git a/sys/v4l2codecs/gstv4l2encoder.c b/sys/v4l2codecs/gstv4l2encoder.c
|
|
index 0938bb1..cded8bf 100644
|
|
--- a/sys/v4l2codecs/gstv4l2encoder.c
|
|
+++ b/sys/v4l2codecs/gstv4l2encoder.c
|
|
@@ -1366,3 +1366,28 @@ gst_v4l2_codec_vp8_enc_get_qp_range (GstV4l2Encoder * self,
|
|
|
|
return TRUE;
|
|
}
|
|
+
|
|
+gboolean
|
|
+gst_v4l2_codec_h264_enc_get_qp_range (GstV4l2Encoder * self,
|
|
+ guint * qp_min, guint * qp_max)
|
|
+{
|
|
+ gint ret;
|
|
+ struct v4l2_query_ext_ctrl control = {
|
|
+ .id = V4L2_CID_STATELESS_H264_ENCODE_RC,
|
|
+ };
|
|
+
|
|
+ *qp_max = 127;
|
|
+ *qp_min = 0;
|
|
+
|
|
+ ret = ioctl (self->video_fd, VIDIOC_QUERY_EXT_CTRL, &control);
|
|
+ if (ret < 0) {
|
|
+ GST_DEBUG_OBJECT (self, "unable to retrieve encoder qp, use default");
|
|
+ return FALSE;
|
|
+ }
|
|
+
|
|
+ *qp_max = control.maximum;
|
|
+ *qp_min = control.minimum;
|
|
+ GST_DEBUG_OBJECT (self, "encoder qp min %d qp max %d", *qp_min, *qp_max);
|
|
+
|
|
+ return TRUE;
|
|
+}
|
|
diff --git a/sys/v4l2codecs/gstv4l2encoder.h b/sys/v4l2codecs/gstv4l2encoder.h
|
|
index 9acb0e3..e7f44ba 100644
|
|
--- a/sys/v4l2codecs/gstv4l2encoder.h
|
|
+++ b/sys/v4l2codecs/gstv4l2encoder.h
|
|
@@ -134,6 +134,8 @@ gboolean gst_v4l2_encoder_request_failed (GstV4l2Request * request);
|
|
|
|
gboolean gst_v4l2_codec_vp8_enc_get_qp_range (GstV4l2Encoder * self, guint * qp_min, guint * qp_max);
|
|
|
|
+gboolean gst_v4l2_codec_h264_enc_get_qp_range (GstV4l2Encoder * self, guint * qp_min, guint * qp_max);
|
|
+
|
|
G_END_DECLS
|
|
|
|
#endif /* __GST_V4L2_ENCODER_H__ */
|
|
--
|
|
2.25.1
|
|
|