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

openSUSE Build Service is sponsored by