diff --git a/gst-libs/gst/pbutils/codec-utils.c b/gst-libs/gst/pbutils/codec-utils.c index f885fe1ff1..65483a3aa6 100644 --- a/gst-libs/gst/pbutils/codec-utils.c +++ b/gst-libs/gst/pbutils/codec-utils.c @@ -707,7 +707,7 @@ gst_codec_utils_mpeg4video_get_level (const guint8 * vis_obj_seq, guint len) break; case 0xf: - if (level_id == 7 && level_id > 0xd) + if (level_id == 6 || level_id == 7 || level_id > 0xd) return NULL; break; } @@ -718,6 +718,9 @@ gst_codec_utils_mpeg4video_get_level (const guint8 * vis_obj_seq, guint len) else if (profile_id == 0 && level_id == 9) /* Simple Profile / Level 0b */ return "0b"; + else if (profile_id == 0xf && level_id > 7) + /* Fine Granularity Scalable Profile */ + return digit_to_string (level_id - 8); else if (level_id <= level_max[profile_id]) /* Levels for all other cases */ return digit_to_string (level_id);