avs_mtk_voice/meta/meta-mediatek/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0006-gstreamer-rm-rpr-featu...

76 lines
2.4 KiB
Diff
Raw Normal View History

2022-05-13 08:02:31 +00:00
From 8a2b9a96d109f450e8f51766a55d7ca6f924a236 Mon Sep 17 00:00:00 2001
From: Changtao Hu <changtao.hu@mediatek.com>
Date: Mon, 7 Aug 2017 14:38:26 +0800
Subject: [PATCH] gstreamer: rm rpr feature
Support rm rpr feature.
Test: OK
Signed-off-by: Changtao Hu <changtao.hu@mediatek.com>
---
sys/v4l2/gstv4l2videodec.c | 31 +++++++++++++++++++++++++------
1 file changed, 25 insertions(+), 6 deletions(-)
mode change 100755 => 100644 sys/v4l2/gstv4l2videodec.c
diff --git a/sys/v4l2/gstv4l2videodec.c b/sys/v4l2/gstv4l2videodec.c
old mode 100755
new mode 100644
index 9992cc4..f251ff4
--- a/sys/v4l2/gstv4l2videodec.c
+++ b/sys/v4l2/gstv4l2videodec.c
@@ -527,6 +527,21 @@ gst_v4l2_update_caps (GstVideoDecoder * decoder, guint width, guint height, guin
}
return;
}
+
+static gboolean
+gst_v4l2_video_codec_is_rm (GstVideoDecoder * decoder)
+{
+ gboolean rtn = FALSE;
+ GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder);
+
+ if (self->v4l2output->format.fmt.pix.pixelformat == V4L2_PIX_FMT_RV30
+ ||self->v4l2output->format.fmt.pix.pixelformat == V4L2_PIX_FMT_RV40) {
+ rtn = TRUE;
+ }
+
+ return rtn;
+}
+
static void
gst_v4l2_video_dec_loop (GstVideoDecoder * decoder)
{
@@ -567,9 +582,11 @@ gst_v4l2_video_dec_loop (GstVideoDecoder * decoder)
guint crop_width = 0;
guint crop_height = 0;
- if (self->v4l2capture->pool) {
- GST_INFO_OBJECT (decoder, "deactivating pool");
- gst_buffer_pool_set_active (self->v4l2capture->pool, FALSE);
+ if (!gst_v4l2_video_codec_is_rm (decoder)) {
+ if (self->v4l2capture->pool) {
+ GST_INFO_OBJECT (decoder, "deactivating pool");
+ gst_buffer_pool_set_active (self->v4l2capture->pool, FALSE);
+ }
}
if (!gst_v4l2_object_acquire_format (self->v4l2capture, &info)) {
@@ -590,9 +607,11 @@ gst_v4l2_video_dec_loop (GstVideoDecoder * decoder)
goto beach;
}
- if (self->v4l2capture->pool) {
- GST_INFO_OBJECT (decoder, "activating pool");
- gst_buffer_pool_set_active (GST_BUFFER_POOL (self->v4l2capture->pool), TRUE);
+ if (!gst_v4l2_video_codec_is_rm (decoder)) {
+ if (self->v4l2capture->pool) {
+ GST_INFO_OBJECT (decoder, "activating pool");
+ gst_buffer_pool_set_active (GST_BUFFER_POOL (self->v4l2capture->pool), TRUE);
+ }
}
}
pool = gst_video_decoder_get_buffer_pool (decoder);
--
1.9.1