From 7b8fa42f8ad8b3efaf16b4e72e6d82b7bf2431e7 Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Mon, 11 Mar 2024 12:42:48 +0100 Subject: [PATCH] va{h264,h265,av1}enc: fix potential crash on devices without rate control 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, gstvah265enc.c and gstvaav1enc.c. Part-of: --- 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/subprojects/gst-plugins-bad/sys/va/gstvaav1enc.c b/subprojects/gst-plugins-bad/sys/va/gstvaav1enc.c index 65d10087e6..85be833b53 100644 --- a/subprojects/gst-plugins-bad/sys/va/gstvaav1enc.c +++ b/subprojects/gst-plugins-bad/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/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c b/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c index 81faec3d36..4fb4ae9d53 100644 --- a/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c +++ b/subprojects/gst-plugins-bad/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/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c b/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c index 9bcad7f07a..793d0c5f09 100644 --- a/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c +++ b/subprojects/gst-plugins-bad/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 };