qtdemux: Fix critical message on cenc sample grouping parsing

Inside qtdemux_parse_sbgp there is already a check to ensure the fragment group
properties are not null but it is being hit in some examples and it is better to
directly avoid the critical.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4576>
This commit is contained in:
Xabier Rodriguez Calvar 2023-05-08 16:55:26 +02:00 committed by GStreamer Marge Bot
parent ed52e3a005
commit bdff780fe9

View file

@ -4444,8 +4444,8 @@ qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length,
&& (stream->protection_scheme_type == FOURCC_cenc
|| stream->protection_scheme_type == FOURCC_cbcs)) {
QtDemuxCencSampleSetInfo *info = stream->protection_scheme_info;
GNode *sbgp_node, *sgpd_node;
GstByteReader sgpd_data, sbgp_data;
GNode *sgpd_node;
GstByteReader sgpd_data;
if (info->fragment_group_properties) {
g_ptr_array_free (info->fragment_group_properties, TRUE);
@ -4471,8 +4471,10 @@ qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length,
FOURCC_sgpd, &sgpd_data);
}
sbgp_node = qtdemux_tree_get_child_by_type_full (traf_node, FOURCC_sbgp,
&sbgp_data);
if (info->fragment_group_properties) {
GstByteReader sbgp_data;
GNode *sbgp_node = qtdemux_tree_get_child_by_type_full (traf_node,
FOURCC_sbgp, &sbgp_data);
while (sbgp_node) {
if (qtdemux_parse_sbgp (qtdemux, stream, &sbgp_data, FOURCC_seig,
&info->sample_to_group_map, info->default_properties,
@ -4484,6 +4486,7 @@ qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length,
FOURCC_sgpd, &sbgp_data);
}
}
}
/* The following code assumes at most a single set of sample auxiliary
* data in the fragment (consisting of a saiz box and a corresponding saio