mpdparser: added support for Accessibility, Role, Rating, Viewpoint elements to AdaptationSet node

those are DescriptorType elements, so they are just parsed and dumped for now;
This commit is contained in:
Gianluca Gennari 2012-10-08 11:47:45 +02:00 committed by Thiago Santos
parent 416ea67979
commit 94644fa82e
2 changed files with 29 additions and 1 deletions

View file

@ -1286,7 +1286,15 @@ gst_mpdparser_parse_adaptation_set_node (GList ** list, xmlNode * a_node)
/* explore children nodes */
for (cur_node = a_node->children; cur_node; cur_node = cur_node->next) {
if (cur_node->type == XML_ELEMENT_NODE) {
if (xmlStrcmp (cur_node->name, (xmlChar *) "Representation") == 0) {
if (xmlStrcmp (cur_node->name, (xmlChar *) "Accessibility") == 0) {
gst_mpdparser_parse_descriptor_type_node (&new_adap_set->Accessibility, cur_node);
} else if (xmlStrcmp (cur_node->name, (xmlChar *) "Role") == 0) {
gst_mpdparser_parse_descriptor_type_node (&new_adap_set->Role, cur_node);
} else if (xmlStrcmp (cur_node->name, (xmlChar *) "Rating") == 0) {
gst_mpdparser_parse_descriptor_type_node (&new_adap_set->Rating, cur_node);
} else if (xmlStrcmp (cur_node->name, (xmlChar *) "Viewpoint") == 0) {
gst_mpdparser_parse_descriptor_type_node (&new_adap_set->Viewpoint, cur_node);
} else if (xmlStrcmp (cur_node->name, (xmlChar *) "Representation") == 0) {
gst_mpdparser_parse_representation_node (&new_adap_set->Representations, cur_node);
} else if (xmlStrcmp (cur_node->name, (xmlChar *) "BaseURL") == 0) {
gst_mpdparser_parse_baseURL_node (&new_adap_set->BaseURLs, cur_node);
@ -1950,6 +1958,18 @@ gst_mpdparser_free_adaptation_set_node (GstAdaptationSetNode *
adaptation_set_node->segmentAlignment);
g_slice_free (GstConditionalUintType,
adaptation_set_node->subsegmentAlignment);
g_list_foreach (adaptation_set_node->Accessibility,
(GFunc) gst_mpdparser_free_descriptor_type_node, NULL);
g_list_free (adaptation_set_node->Accessibility);
g_list_foreach (adaptation_set_node->Role,
(GFunc) gst_mpdparser_free_descriptor_type_node, NULL);
g_list_free (adaptation_set_node->Role);
g_list_foreach (adaptation_set_node->Rating,
(GFunc) gst_mpdparser_free_descriptor_type_node, NULL);
g_list_free (adaptation_set_node->Rating);
g_list_foreach (adaptation_set_node->Viewpoint,
(GFunc) gst_mpdparser_free_descriptor_type_node, NULL);
g_list_free (adaptation_set_node->Viewpoint);
gst_mpdparser_free_representation_base_type
(adaptation_set_node->RepresentationBase);
gst_mpdparser_free_seg_base_type_ext (adaptation_set_node->SegmentBase);

View file

@ -284,6 +284,14 @@ struct _GstAdaptationSetNode
GstConditionalUintType *subsegmentAlignment;
GstSAPType subsegmentStartsWithSAP;
gboolean bitstreamSwitching;
/* list of Accessibility DescriptorType nodes */
GList *Accessibility;
/* list of Role DescriptorType nodes */
GList *Role;
/* list of Rating DescriptorType nodes */
GList *Rating;
/* list of Viewpoint DescriptorType nodes */
GList *Viewpoint;
/* RepresentationBase extension */
GstRepresentationBaseType *RepresentationBase;
/* SegmentBase node */