Skip to content

Commit bd8eb4e

Browse files
ceyusaGStreamer Marge Bot
authored andcommitted
vkh264enc: handle when max level idc isn't valid
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10226>
1 parent e9f6307 commit bd8eb4e

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

subprojects/gst-plugins-bad/ext/vulkan/vkh264enc.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ gst_vulkan_h264_level_idc (int level_idc)
371371
return STD_VIDEO_H264_LEVEL_IDC_INVALID;
372372
}
373373

374-
static GstH264Level
374+
static gint
375375
gst_h264_level_idc_from_vk (StdVideoH264LevelIdc vk_level_idc)
376376
{
377377
for (guint i = 0; i < G_N_ELEMENTS (H264LevelMap); i++) {
@@ -886,10 +886,12 @@ gst_vulkan_h264_encoder_new_sequence (GstH264Encoder * encoder,
886886
return GST_FLOW_NOT_NEGOTIATED;
887887
}
888888

889-
/* gallium drivers always reply 10 level idc */
889+
/* gallium drivers always reply 1.0 level idc */
890890
vk_max_level = vk_caps.encoder.codec.h264.maxLevelIdc;
891891
if (vk_max_level > STD_VIDEO_H264_LEVEL_IDC_1_0 && *level > 0) {
892-
*level = MIN (gst_h264_level_idc_from_vk (vk_max_level), *level);
892+
gint max_level = gst_h264_level_idc_from_vk (vk_max_level);
893+
if (max_level >= 0)
894+
*level = MIN (max_level, *level);
893895
}
894896

895897
gst_h264_encoder_set_max_num_references (encoder,

0 commit comments

Comments
 (0)