File 0001-Move-PROP_RATE_CONTROL-to-the-end-of-the-array.patch of Package gstreamer-plugins-bad
From 4897c4c56cf09ca432a6825f689c0571d7a789f8 Mon Sep 17 00:00:00 2001
From: Antonio Larrosa <alarrosa@suse.com>
Date: Mon, 11 Mar 2024 12:42:48 +0100
Subject: [PATCH] Move PROP_RATE_CONTROL to the end of the array
This fixes a crash in `gst_va_h264_enc_class_init` and `gst_va_h265_enc_class_init`
(and probably also in gst_va_av1_enc_class_init) when calling
`g_object_class_install_properties (object_class, n_props, properties);`
When rate_control_type is 0, the following code is executed in :
```
} else {
n_props--;
properties[PROP_RATE_CONTROL] = NULL;
}
```
n_props has initially a value of N_PROPERTIES but PROP_RATE_CONTROL
is not the last element in the array, so it's making
g_object_class_install_properties fail to iterate over the
properties array.
This applies the same fix to gstvah264enc.c and gstvah265enc.c .
---
subprojects/gst-plugins-bad/sys/va/gstvaav1enc.c | 2 +-
subprojects/gst-plugins-bad/sys/va/gstvah264enc.c | 2 +-
subprojects/gst-plugins-bad/sys/va/gstvah265enc.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/sys/va/gstvaav1enc.c b/sys/va/gstvaav1enc.c
index 5050d8593cc..fa27fa6f760 100644
--- a/sys/va/gstvaav1enc.c
+++ b/sys/va/gstvaav1enc.c
@@ -86,11 +86,11 @@ enum
PROP_TARGET_PERCENTAGE,
PROP_TARGET_USAGE,
PROP_CPB_SIZE,
- PROP_RATE_CONTROL,
PROP_NUM_TILE_COLS,
PROP_NUM_TILE_ROWS,
PROP_TILE_GROUPS,
PROP_MBBRC,
+ PROP_RATE_CONTROL,
N_PROPERTIES
};
diff --git a/sys/va/gstvah264enc.c b/sys/va/gstvah264enc.c
index 81faec3d367..4fb4ae9d535 100644
--- a/sys/va/gstvah264enc.c
+++ b/sys/va/gstvah264enc.c
@@ -100,10 +100,10 @@ enum
PROP_BITRATE,
PROP_TARGET_PERCENTAGE,
PROP_TARGET_USAGE,
- PROP_RATE_CONTROL,
PROP_CPB_SIZE,
PROP_AUD,
PROP_CC,
+ PROP_RATE_CONTROL,
N_PROPERTIES
};
diff --git a/sys/va/gstvah265enc.c b/sys/va/gstvah265enc.c
index 9bcad7f07ac..793d0c5f091 100644
--- a/sys/va/gstvah265enc.c
+++ b/sys/va/gstvah265enc.c
@@ -88,11 +88,11 @@ enum
PROP_BITRATE,
PROP_TARGET_PERCENTAGE,
PROP_TARGET_USAGE,
- PROP_RATE_CONTROL,
PROP_CPB_SIZE,
PROP_AUD,
PROP_NUM_TILE_COLS,
PROP_NUM_TILE_ROWS,
+ PROP_RATE_CONTROL,
N_PROPERTIES
};
--
GitLab