diff --git a/ext/dash/gstdashdemux.c b/ext/dash/gstdashdemux.c index 8177e5419f..51783d3aeb 100644 --- a/ext/dash/gstdashdemux.c +++ b/ext/dash/gstdashdemux.c @@ -452,7 +452,7 @@ gst_dash_demux_change_state (GstElement * element, GstStateChange transition) return ret; } -void +static void gst_dash_demux_clear_queue (GstDashDemux * demux) { while (!g_queue_is_empty (demux->queue)) { @@ -546,7 +546,8 @@ gst_dash_demux_src_event (GstPad * pad, GstEvent * event) chunk = list->data; current_pos = chunk->start_time; //current_sequence = chunk->number; - GST_WARNING_OBJECT (demux, "%i <= %i (%i)", current_pos, target_pos, chunk->duration); + GST_WARNING_OBJECT (demux, "%i <= %i (%i)", current_pos, target_pos, + chunk->duration); if (current_pos <= target_pos && target_pos < current_pos + chunk->duration) { break; @@ -645,9 +646,9 @@ gst_dash_demux_setup_all_streams (GstDashDemux * demux) for (i = 0; i < nb_audio; i++) { lang = (gchar *) g_list_nth_data (listLang, i); - GST_INFO ("nb adaptation set: %i", gst_mpdparser_get_nb_adaptationSet (demux->client)); - if (!gst_mpd_client_setup_streaming (demux->client, GST_STREAM_AUDIO, - lang)) + GST_INFO ("nb adaptation set: %i", + gst_mpdparser_get_nb_adaptationSet (demux->client)); + if (!gst_mpd_client_setup_streaming (demux->client, GST_STREAM_AUDIO, lang)) GST_INFO_OBJECT (demux, "No audio adaptation set found"); if (gst_mpdparser_get_nb_adaptationSet (demux->client) > nb_audio) @@ -792,8 +793,8 @@ gst_dash_demux_src_query (GstPad * pad, GstQuery * query) gint64 stop = -1; gst_query_parse_seeking (query, &fmt, NULL, &start, &end); - GST_DEBUG_OBJECT (dashdemux, "Received GST_QUERY_SEEKING with format %d - %i %i", - fmt, start, end); + GST_DEBUG_OBJECT (dashdemux, + "Received GST_QUERY_SEEKING with format %d - %i %i", fmt, start, end); if (fmt == GST_FORMAT_TIME) { GstClockTime duration; @@ -923,20 +924,21 @@ static gboolean needs_pad_switch (GstDashDemux * demux, GList * fragment) { + GstCaps *srccaps = NULL; gboolean switch_pad = FALSE; guint i = 0; + while (i < g_list_length (fragment)) { GstFragment *newFragment = g_list_nth_data (fragment, i); if (newFragment == NULL) { continue; } - GstCaps *srccaps = NULL; demux->output_caps[i] = gst_fragment_get_caps (newFragment); if (G_LIKELY (demux->srcpad[i])) srccaps = gst_pad_get_negotiated_caps (demux->srcpad[i]); if (G_UNLIKELY (!srccaps || (!gst_caps_is_equal_fixed (demux->output_caps[i], srccaps))) - || demux->need_segment) { + || demux->need_segment) { switch_pad = TRUE; } if (G_LIKELY (srccaps)) @@ -974,6 +976,8 @@ gst_dash_demux_stream_loop (GstDashDemux * demux) GstBufferList *buffer_list; guint nb_adaptation_set = 0; GstActiveStream *stream; + gboolean switch_pad; + guint i = 0; /* Wait until the next scheduled push downstream */ if (g_cond_timed_wait (GST_TASK_GET_COND (demux->stream_task), @@ -994,7 +998,8 @@ gst_dash_demux_stream_loop (GstDashDemux * demux) demux->min_buffering_time) { /* Warn we are below our threshold: this will eventually pause * the pipeline */ - GST_WARNING ("Below the threshold: this will eventually pause the pipeline"); + GST_WARNING + ("Below the threshold: this will eventually pause the pipeline"); gst_element_post_message (GST_ELEMENT (demux), gst_message_new_buffering (GST_OBJECT (demux), 100 * gst_dash_demux_get_buffering_ratio (demux))); @@ -1003,13 +1008,12 @@ gst_dash_demux_stream_loop (GstDashDemux * demux) listfragment = g_queue_pop_head (demux->queue); nb_adaptation_set = g_list_length (listfragment); /* Figure out if we need to create/switch pads */ - gboolean switch_pad = needs_pad_switch (demux, listfragment); + switch_pad = needs_pad_switch (demux, listfragment); if (switch_pad) { GST_WARNING ("Switching pads"); switch_pads (demux, nb_adaptation_set); demux->need_segment = TRUE; } - guint i = 0; for (i = 0; i < nb_adaptation_set; i++) { GstFragment *fragment = g_list_nth_data (listfragment, i); stream = gst_mpdparser_get_active_stream_by_index (demux->client, i); @@ -1023,7 +1027,8 @@ gst_dash_demux_stream_loop (GstDashDemux * demux) start, GST_CLOCK_TIME_NONE, start)); } - GST_DEBUG_OBJECT (demux, "Pushing fragment #%d (stream %i)", fragment->index, i); + GST_DEBUG_OBJECT (demux, "Pushing fragment #%d (stream %i)", + fragment->index, i); buffer_list = gst_fragment_get_buffer_list (fragment); g_object_unref (fragment); ret = gst_pad_push_list (demux->srcpad[i], buffer_list); @@ -1039,7 +1044,7 @@ gst_dash_demux_stream_loop (GstDashDemux * demux) g_get_current_time (&demux->next_push); g_time_val_add (&demux->next_push, (gst_mpd_client_get_next_fragment_duration (demux->client) - - demux->last_position_shift) / GST_SECOND * G_USEC_PER_SEC); + demux->last_position_shift) / GST_SECOND * G_USEC_PER_SEC); GST_DEBUG_OBJECT (demux, "Next push scheduled at %s", g_time_val_to_iso8601 (&demux->next_push)); demux->last_position_shift = 0; @@ -1056,7 +1061,6 @@ quit: end_of_manifest: { GST_INFO_OBJECT (demux, "Reached end of manifest, sending EOS"); - guint i = 0; for (i = 0; i < gst_mpdparser_get_nb_active_stream (demux->client); i++) { gst_pad_push_event (demux->srcpad[i], gst_event_new_eos ()); } @@ -1086,11 +1090,12 @@ pause_streaming: static void gst_dash_demux_reset (GstDashDemux * demux, gboolean dispose) { + guint i = 0; + demux->end_of_period = FALSE; demux->end_of_manifest = FALSE; demux->cancelled = FALSE; - guint i = 0; for (i = 0; i < MAX_LANGUAGES; i++) if (demux->input_caps[i]) { gst_caps_unref (demux->input_caps[i]); @@ -1211,6 +1216,7 @@ gst_dash_demux_merge_buffer_list (GstFragment * fragment) void gst_dash_demux_download_loop (GstDashDemux * demux) { + GstClockTime target_buffering_time; GstClock *clock = gst_element_get_clock (GST_ELEMENT (demux)); gint64 update_period = demux->client->mpd_node->minimumUpdatePeriod; @@ -1302,7 +1308,7 @@ gst_dash_demux_download_loop (GstDashDemux * demux) * by the duration of a fragment, but SHOULD NOT exceed maximum * buffering time */ GST_DEBUG_OBJECT (demux, "download loop %i", demux->end_of_manifest); - GstClockTime target_buffering_time = + target_buffering_time = demux->min_buffering_time + gst_mpd_client_get_next_fragment_duration (demux->client); if (demux->max_buffering_time > target_buffering_time) @@ -1512,6 +1518,7 @@ static GstFragment * gst_dash_demux_prepend_header (GstDashDemux * demux, GstFragment * frag, GstFragment * header) { + GstBufferList *list; GstFragment *res = gst_fragment_new (); res->name = g_strdup (frag->name); res->download_start_time = frag->download_start_time; @@ -1521,7 +1528,6 @@ gst_dash_demux_prepend_header (GstDashDemux * demux, res->index = frag->index; res->discontinuous = frag->discontinuous; - GstBufferList *list; list = gst_fragment_get_buffer_list (header); gst_buffer_list_foreach (list, gst_dash_demux_add_buffer_cb, res); gst_buffer_list_unref (list); @@ -1678,16 +1684,19 @@ gst_dash_demux_get_next_fragment_set (GstDashDemux * demux) GTimeVal start; GstClockTime diff; guint64 size_buffer = 0; + gboolean need_header; + guint stream_idx = 0; g_get_current_time (&start); /* Figure out if we will need to switch pads, thus requiring a new * header to initialize the new decoding chain * FIXME: redundant with needs_pad_switch */ - gboolean need_header = need_add_header (demux); - guint stream_idx = 0; + need_header = need_add_header (demux); fragment_set = NULL; /* Get the fragment corresponding to each stream index */ while (stream_idx < gst_mpdparser_get_nb_active_stream (demux->client)) { + GstCaps *caps; + if (!gst_mpd_client_get_next_fragment (demux->client, stream_idx, &discont, &next_fragment_uri, &duration, ×tamp)) { GST_INFO_OBJECT (demux, "This Period doesn't contain more fragments"); @@ -1715,7 +1724,7 @@ gst_dash_demux_get_next_fragment_set (GstDashDemux * demux) download->index = gst_mpd_client_get_segment_index (stream) - 1; - GstCaps *caps = gst_dash_demux_get_input_caps (demux, stream); + caps = gst_dash_demux_get_input_caps (demux, stream); if (need_header) { /* Store the new input caps for that stream */ diff --git a/ext/dash/gstmpdparser.c b/ext/dash/gstmpdparser.c index 291ff5a34c..0e75ff0e66 100644 --- a/ext/dash/gstmpdparser.c +++ b/ext/dash/gstmpdparser.c @@ -24,7 +24,11 @@ * Boston, MA 02111-1307, USA. */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include +#include +#include #include "gstfragmented.h" #include "gstmpdparser.h" @@ -109,7 +113,7 @@ static gint convert_to_millisecs (gint decimals, gint pos); static int strncmp_ext (const char *s1, const char *s2); static GstStreamPeriod *gst_mpdparser_get_stream_period (GstMpdClient * client); static gchar *gst_mpdparser_parse_baseURL (GstMpdClient * client, - GstActiveStream *stream); + GstActiveStream * stream); static gchar *gst_mpdparser_get_segmentURL_for_range (gchar * url, GstRange * range); static gchar *gst_mpdparser_get_mediaURL (GstActiveStream * stream, @@ -128,13 +132,13 @@ static void gst_mpd_client_set_segment_index (GstActiveStream * stream, /* Adaptation Set */ static GstAdaptationSetNode - *gst_mpdparser_get_first_adapt_set_with_mimeType (GList * AdaptationSets, + * gst_mpdparser_get_first_adapt_set_with_mimeType (GList * AdaptationSets, const gchar * mimeType); static GstAdaptationSetNode - *gst_mpdparser_get_adapt_set_with_mimeType_and_idx (GList * AdaptationSets, + * gst_mpdparser_get_adapt_set_with_mimeType_and_idx (GList * AdaptationSets, const gchar * mimeType, gint idx); static GstAdaptationSetNode - *gst_mpdparser_get_first_adapt_set_with_mimeType_and_lang (GList * + * gst_mpdparser_get_first_adapt_set_with_mimeType_and_lang (GList * AdaptationSets, const gchar * mimeType, const gchar * lang); /* Representation */ @@ -144,7 +148,7 @@ static GstRepresentationNode *gst_mpdparser_get_lowest_representation (GList * static GstRepresentationNode *gst_mpdparser_get_highest_representation (GList * Representations); static GstRepresentationNode - *gst_mpdparser_get_representation_with_max_bandwidth (GList * + * gst_mpdparser_get_representation_with_max_bandwidth (GList * Representations, gint max_bandwidth); #endif static GstSegmentBaseType *gst_mpdparser_get_segment_base (GstPeriodNode * @@ -409,13 +413,13 @@ gst_mpdparser_get_xml_prop_range (xmlNode * a_node, const gchar * property) } /* read first_byte_pos */ if (pos != 0) { - if (sscanf (str, "%llu", &first_byte_pos) != 1) { + if (sscanf (str, "%" G_GUINT64_FORMAT, &first_byte_pos) != 1) { goto error; } } /* read last_byte_pos */ if (pos < (len - 1)) { - if (sscanf (str + pos + 1, "%llu", &last_byte_pos) != 1) { + if (sscanf (str + pos + 1, "%" G_GUINT64_FORMAT, &last_byte_pos) != 1) { goto error; } } @@ -955,17 +959,17 @@ gst_mpdparser_parse_content_component_node (GList ** list, xmlNode * a_node) 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 *) "Accessibility") == 0) { - gst_mpdparser_parse_descriptor_type_node (&new_content_component-> - Accessibility, cur_node); + gst_mpdparser_parse_descriptor_type_node + (&new_content_component->Accessibility, cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "Role") == 0) { gst_mpdparser_parse_descriptor_type_node (&new_content_component->Role, cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "Rating") == 0) { - gst_mpdparser_parse_descriptor_type_node (&new_content_component-> - Rating, cur_node); + gst_mpdparser_parse_descriptor_type_node + (&new_content_component->Rating, cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "Viewpoint") == 0) { - gst_mpdparser_parse_descriptor_type_node (&new_content_component-> - Viewpoint, cur_node); + gst_mpdparser_parse_descriptor_type_node + (&new_content_component->Viewpoint, cur_node); } } } @@ -1161,12 +1165,12 @@ gst_mpdparser_parse_mult_seg_base_type_ext (GstMultSegmentBaseType ** pointer, 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 *) "SegmentTimeline") == 0) { - gst_mpdparser_parse_segment_timeline_node (&mult_seg_base_type-> - SegmentTimeline, cur_node); + gst_mpdparser_parse_segment_timeline_node + (&mult_seg_base_type->SegmentTimeline, cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "BitstreamSwitching") == 0) { - gst_mpdparser_parse_url_type_node (&mult_seg_base_type-> - BitstreamSwitching, cur_node); + gst_mpdparser_parse_url_type_node + (&mult_seg_base_type->BitstreamSwitching, cur_node); } } } @@ -1187,8 +1191,8 @@ gst_mpdparser_parse_segment_list_node (GstSegmentListNode ** pointer, } GST_LOG ("extension of SegmentList node:"); - gst_mpdparser_parse_mult_seg_base_type_ext (&new_segment_list-> - MultSegBaseType, a_node); + gst_mpdparser_parse_mult_seg_base_type_ext + (&new_segment_list->MultSegBaseType, a_node); /* explore children nodes */ for (cur_node = a_node->children; cur_node; cur_node = cur_node->next) { @@ -1248,16 +1252,16 @@ gst_mpdparser_parse_representation_base_type (GstRepresentationBaseType ** 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 *) "FramePacking") == 0) { - gst_mpdparser_parse_descriptor_type_node (&representation_base-> - FramePacking, cur_node); + gst_mpdparser_parse_descriptor_type_node + (&representation_base->FramePacking, cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "AudioChannelConfiguration") == 0) { - gst_mpdparser_parse_descriptor_type_node (&representation_base-> - AudioChannelConfiguration, cur_node); + gst_mpdparser_parse_descriptor_type_node + (&representation_base->AudioChannelConfiguration, cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "ContentProtection") == 0) { - gst_mpdparser_parse_descriptor_type_node (&representation_base-> - ContentProtection, cur_node); + gst_mpdparser_parse_descriptor_type_node + (&representation_base->ContentProtection, cur_node); } } } @@ -1289,8 +1293,8 @@ gst_mpdparser_parse_representation_node (GList ** list, xmlNode * a_node) "mediaStreamStructureId"); /* RepresentationBase extension */ - gst_mpdparser_parse_representation_base_type (&new_representation-> - RepresentationBase, a_node); + gst_mpdparser_parse_representation_base_type + (&new_representation->RepresentationBase, a_node); /* explore children nodes */ for (cur_node = a_node->children; cur_node; cur_node = cur_node->next) { @@ -1299,8 +1303,8 @@ gst_mpdparser_parse_representation_node (GList ** list, xmlNode * a_node) gst_mpdparser_parse_seg_base_type_ext (&new_representation->SegmentBase, cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "SegmentTemplate") == 0) { - gst_mpdparser_parse_segment_template_node (&new_representation-> - SegmentTemplate, cur_node); + gst_mpdparser_parse_segment_template_node + (&new_representation->SegmentTemplate, cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "SegmentList") == 0) { gst_mpdparser_parse_segment_list_node (&new_representation->SegmentList, cur_node); @@ -1309,8 +1313,8 @@ gst_mpdparser_parse_representation_node (GList ** list, xmlNode * a_node) cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "SubRepresentation") == 0) { - gst_mpdparser_parse_subrepresentation_node (&new_representation-> - SubRepresentations, cur_node); + gst_mpdparser_parse_subrepresentation_node + (&new_representation->SubRepresentations, cur_node); } } } @@ -1364,8 +1368,8 @@ gst_mpdparser_parse_adaptation_set_node (GList ** list, xmlNode * a_node) gst_mpdparser_get_xml_prop_boolean (a_node, "bitstreamSwitching"); /* RepresentationBase extension */ - gst_mpdparser_parse_representation_base_type (&new_adap_set-> - RepresentationBase, a_node); + gst_mpdparser_parse_representation_base_type + (&new_adap_set->RepresentationBase, a_node); /* explore children nodes */ for (cur_node = a_node->children; cur_node; cur_node = cur_node->next) { @@ -1395,11 +1399,11 @@ gst_mpdparser_parse_adaptation_set_node (GList ** list, xmlNode * a_node) cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "ContentComponent") == 0) { - gst_mpdparser_parse_content_component_node (&new_adap_set-> - ContentComponents, cur_node); + gst_mpdparser_parse_content_component_node + (&new_adap_set->ContentComponents, cur_node); } else if (xmlStrcmp (cur_node->name, (xmlChar *) "SegmentTemplate") == 0) { - gst_mpdparser_parse_segment_template_node (&new_adap_set-> - SegmentTemplate, cur_node); + gst_mpdparser_parse_segment_template_node + (&new_adap_set->SegmentTemplate, cur_node); } } } @@ -1437,8 +1441,8 @@ gst_mpdparser_parse_segment_template_node (GstSegmentTemplateNode ** pointer, } GST_LOG ("extension of SegmentTemplate node:"); - gst_mpdparser_parse_mult_seg_base_type_ext (&new_segment_template-> - MultSegBaseType, a_node); + gst_mpdparser_parse_mult_seg_base_type_ext + (&new_segment_template->MultSegBaseType, a_node); GST_LOG ("attributes of SegmentTemplate node:"); new_segment_template->media = @@ -1684,7 +1688,7 @@ gst_mpdparser_get_first_adapt_set_with_mimeType (GList * AdaptationSets, if (!this_mimeType && adapt_set->RepresentationBase) { this_mimeType = adapt_set->RepresentationBase->mimeType; } - GST_DEBUG("Looking for mime type %s -> %s", mimeType, this_mimeType); + GST_DEBUG ("Looking for mime type %s -> %s", mimeType, this_mimeType); if (strncmp_ext (this_mimeType, mimeType) == 0) return adapt_set; } @@ -1720,7 +1724,8 @@ gst_mpdparser_get_adapt_set_with_mimeType_and_idx (GList * AdaptationSets, this_mimeType = rep->RepresentationBase->mimeType; if (!this_mimeType && adapt_set->RepresentationBase) this_mimeType = adapt_set->RepresentationBase->mimeType; - GST_DEBUG("Looking for mime type %s -> %i: %s", mimeType, i, this_mimeType); + GST_DEBUG ("Looking for mime type %s -> %i: %s", mimeType, i, + this_mimeType); if (strncmp_ext (this_mimeType, mimeType) == 0) { if (idx < 0 || i <= idx) selected = adapt_set; @@ -1752,14 +1757,14 @@ gst_mpdparser_get_first_adapt_set_with_mimeType_and_lang (GList * gst_mpdparser_get_lowest_representation (adapt_set->Representations); if (rep && rep->BaseURLs) { GstBaseURL *url = rep->BaseURLs->data; - GST_DEBUG("%s", url->baseURL); + GST_DEBUG ("%s", url->baseURL); } if (rep->RepresentationBase) this_mimeType = rep->RepresentationBase->mimeType; if (!this_mimeType && adapt_set->RepresentationBase) { this_mimeType = adapt_set->RepresentationBase->mimeType; } - GST_DEBUG("Looking for mime type %s -> %s", mimeType, this_mimeType); + GST_DEBUG ("Looking for mime type %s -> %s", mimeType, this_mimeType); if (strncmp_ext (this_mimeType, mimeType) == 0 && strncmp_ext (this_lang, lang) == 0) return adapt_set; @@ -1849,14 +1854,14 @@ gst_mpdparser_get_segment_base (GstPeriodNode * Period, if (Representation && Representation->SegmentList && Representation->SegmentList->MultSegBaseType && Representation->SegmentList->MultSegBaseType->SegBaseType - && Representation->SegmentList->MultSegBaseType->SegBaseType-> - Initialization) { + && Representation->SegmentList->MultSegBaseType-> + SegBaseType->Initialization) { SegmentBase = Representation->SegmentList->MultSegBaseType->SegBaseType; } else if (AdaptationSet && AdaptationSet->SegmentList && AdaptationSet->SegmentList->MultSegBaseType && AdaptationSet->SegmentList->MultSegBaseType->SegBaseType - && AdaptationSet->SegmentList->MultSegBaseType->SegBaseType-> - Initialization) { + && AdaptationSet->SegmentList->MultSegBaseType-> + SegBaseType->Initialization) { SegmentBase = AdaptationSet->SegmentList->MultSegBaseType->SegBaseType; } else if (Period && Period->SegmentList && Period->SegmentList->MultSegBaseType @@ -1872,12 +1877,12 @@ gst_mpdparser_get_segment_base (GstPeriodNode * Period, gint gst_mpdparser_get_rep_idx_with_min_bandwidth (GList * Representations) { - GList *list = NULL, *lowest; + GList *list = NULL, *lowest = NULL; GstRepresentationNode *rep = NULL; gint lowest_bandwidth = -1; if (Representations == NULL) - return NULL; + return -1; for (list = g_list_first (Representations); list; list = g_list_next (list)) { rep = (GstRepresentationNode *) list->data; @@ -2103,8 +2108,8 @@ gst_mpdparser_free_adaptation_set_node (GstAdaptationSetNode * (adaptation_set_node->RepresentationBase); gst_mpdparser_free_seg_base_type_ext (adaptation_set_node->SegmentBase); gst_mpdparser_free_segment_list_node (adaptation_set_node->SegmentList); - gst_mpdparser_free_segment_template_node (adaptation_set_node-> - SegmentTemplate); + gst_mpdparser_free_segment_template_node + (adaptation_set_node->SegmentTemplate); g_list_foreach (adaptation_set_node->BaseURLs, (GFunc) gst_mpdparser_free_base_url_node, NULL); g_list_free (adaptation_set_node->BaseURLs); @@ -2132,8 +2137,8 @@ gst_mpdparser_free_representation_node (GstRepresentationNode * (GFunc) gst_mpdparser_free_subrepresentation_node, NULL); g_list_free (representation_node->SubRepresentations); gst_mpdparser_free_seg_base_type_ext (representation_node->SegmentBase); - gst_mpdparser_free_segment_template_node (representation_node-> - SegmentTemplate); + gst_mpdparser_free_segment_template_node + (representation_node->SegmentTemplate); gst_mpdparser_free_segment_list_node (representation_node->SegmentList); g_list_foreach (representation_node->BaseURLs, (GFunc) gst_mpdparser_free_base_url_node, NULL); @@ -2147,8 +2152,8 @@ gst_mpdparser_free_subrepresentation_node (GstSubRepresentationNode * subrep_node) { if (subrep_node) { - gst_mpdparser_free_representation_base_type (subrep_node-> - RepresentationBase); + gst_mpdparser_free_representation_base_type + (subrep_node->RepresentationBase); g_free (subrep_node->dependencyLevel); g_strfreev (subrep_node->contentComponent); } @@ -2312,8 +2317,8 @@ gst_mpdparser_get_segmentURL_for_range (gchar * url, GstRange * range) if (range) { gchar *range_suffix; range_suffix = - g_strdup_printf ("?range=%llu-%llu", range->first_byte_pos, - range->last_byte_pos); + g_strdup_printf ("?range=%" G_GUINT64_FORMAT "-%" G_GUINT64_FORMAT, + range->first_byte_pos, range->last_byte_pos); segmentURL = g_strconcat (url, range_suffix, NULL); g_free (range_suffix); } else { @@ -2324,7 +2329,7 @@ gst_mpdparser_get_segmentURL_for_range (gchar * url, GstRange * range) } static gchar * -gst_mpdparser_get_mediaURL (GstActiveStream *stream, +gst_mpdparser_get_mediaURL (GstActiveStream * stream, GstSegmentURLNode * segmentURL) { const gchar *url_prefix; @@ -2423,7 +2428,7 @@ gst_mpdparser_get_stream_period (GstMpdClient * client) /* select a stream and extract the baseURL (if present) */ static gchar * -gst_mpdparser_parse_baseURL (GstMpdClient * client, GstActiveStream *stream) +gst_mpdparser_parse_baseURL (GstMpdClient * client, GstActiveStream * stream) { //GstActiveStream *stream; GstStreamPeriod *stream_period; @@ -2460,7 +2465,7 @@ gst_mpdparser_parse_baseURL (GstMpdClient * client, GstActiveStream *stream) } baseURL_array[1] = baseURL->baseURL; } - GST_DEBUG("Current adaptation set id %i (%s)", stream->cur_adapt_set->id, + GST_DEBUG ("Current adaptation set id %i (%s)", stream->cur_adapt_set->id, stream->cur_adapt_set->contentType); if ((list = stream->cur_adapt_set->BaseURLs) != NULL) { @@ -2539,7 +2544,7 @@ gst_mpd_client_get_segment_duration (GstMpdClient * client) /*****************************/ GstMpdClient * -gst_mpd_client_new () +gst_mpd_client_new (void) { GstMpdClient *client; @@ -3006,7 +3011,7 @@ no_mem: gboolean gst_mpd_client_setup_streaming (GstMpdClient * client, - GstStreamMimeType mimeType, gchar * lang) + GstStreamMimeType mimeType, const gchar * lang) { GstActiveStream *stream; GstStreamPeriod *stream_period; @@ -3014,9 +3019,6 @@ gst_mpd_client_setup_streaming (GstMpdClient * client, GstRepresentationNode *representation; GList *rep_list = NULL; - GstRepresentationNode *rep; - GstBaseURL *url; - stream_period = gst_mpdparser_get_stream_period (client); if (stream_period == NULL || stream_period->period == NULL) { GST_DEBUG ("No more Period nodes in the MPD file, terminating..."); @@ -3027,8 +3029,8 @@ gst_mpd_client_setup_streaming (GstMpdClient * client, case GST_STREAM_VIDEO: /* select the adaptation set for the video pipeline */ adapt_set = - gst_mpdparser_get_adapt_set_with_mimeType_and_idx (stream_period-> - period->AdaptationSets, "video", 0); + gst_mpdparser_get_adapt_set_with_mimeType_and_idx + (stream_period->period->AdaptationSets, "video", 0); if (!adapt_set) { GST_INFO ("No video adaptation set found"); return FALSE; @@ -3047,8 +3049,8 @@ gst_mpd_client_setup_streaming (GstMpdClient * client, /* if we did not found the requested audio language, get the first one */ if (!adapt_set) adapt_set = - gst_mpdparser_get_first_adapt_set_with_mimeType (stream_period-> - period->AdaptationSets, "audio"); + gst_mpdparser_get_first_adapt_set_with_mimeType + (stream_period->period->AdaptationSets, "audio"); if (!adapt_set) { GST_INFO ("No audio adaptation set found"); return FALSE; @@ -3066,8 +3068,8 @@ gst_mpd_client_setup_streaming (GstMpdClient * client, /* if we did not found the requested subtitles language, get the first one */ if (!adapt_set) adapt_set = - gst_mpdparser_get_first_adapt_set_with_mimeType (stream_period-> - period->AdaptationSets, "application"); + gst_mpdparser_get_first_adapt_set_with_mimeType + (stream_period->period->AdaptationSets, "application"); if (!adapt_set) { GST_INFO ("No application adaptation set found"); return FALSE; @@ -3094,7 +3096,7 @@ gst_mpd_client_setup_streaming (GstMpdClient * client, stream->mimeType = mimeType; stream->cur_adapt_set = adapt_set; - GST_DEBUG("0. Current stream %p", stream); + GST_DEBUG ("0. Current stream %p", stream); /* retrive representation list */ if (stream->cur_adapt_set != NULL) @@ -3159,7 +3161,7 @@ gst_mpd_client_get_next_fragment (GstMpdClient * client, return FALSE; } - GST_DEBUG("currentChunk->SegmentURL = %s", currentChunk->SegmentURL); + GST_DEBUG ("currentChunk->SegmentURL = %s", currentChunk->SegmentURL); if (currentChunk->SegmentURL != NULL) { mediaURL = gst_mpdparser_get_mediaURL (stream, currentChunk->SegmentURL); } else if (stream->cur_seg_template != NULL) { @@ -3168,7 +3170,7 @@ gst_mpd_client_get_next_fragment (GstMpdClient * client, stream->cur_representation->id, currentChunk->number, stream->cur_representation->bandwidth, currentChunk->start); } - GST_DEBUG("mediaURL = %s", mediaURL); + GST_DEBUG ("mediaURL = %s", mediaURL); *timestamp = currentChunk->start_time; *duration = currentChunk->duration; @@ -3209,8 +3211,8 @@ gst_mpd_client_get_next_header (GstMpdClient * client, const gchar ** uri, *uri = NULL; if (stream->cur_segment_base && stream->cur_segment_base->Initialization) { *uri = - gst_mpdparser_get_initializationURL (stream->cur_segment_base-> - Initialization); + gst_mpdparser_get_initializationURL (stream-> + cur_segment_base->Initialization); } else if (stream->cur_seg_template) { const gchar *initialization = NULL; if (stream->cur_seg_template->initialization) { @@ -3500,7 +3502,7 @@ gst_mpdparser_get_list_and_nb_of_audio_language (GstMpdClient * client, GstStreamPeriod *stream_period; GstAdaptationSetNode *adapt_set; GList *list; - gchar *this_mimeType = "audio"; + const gchar *this_mimeType = "audio"; gchar *mimeType = NULL; guint nb_adapatation_set = 0; diff --git a/ext/dash/gstmpdparser.h b/ext/dash/gstmpdparser.h index 6663804adc..3fafe884a5 100644 --- a/ext/dash/gstmpdparser.h +++ b/ext/dash/gstmpdparser.h @@ -456,7 +456,7 @@ struct _GstMpdClient }; /* Basic initialization/deinitialization functions */ -GstMpdClient *gst_mpd_client_new (); +GstMpdClient *gst_mpd_client_new (void); void gst_active_streams_free (GstMpdClient * client); void gst_mpd_client_free (GstMpdClient * client); @@ -465,7 +465,7 @@ gboolean gst_mpd_parse (GstMpdClient *client, const gchar *data, gint size); /* Streaming management */ gboolean gst_mpd_client_setup_media_presentation (GstMpdClient *client); -gboolean gst_mpd_client_setup_streaming (GstMpdClient *client, GstStreamMimeType mimeType, gchar* lang); +gboolean gst_mpd_client_setup_streaming (GstMpdClient *client, GstStreamMimeType mimeType, const gchar* lang); gboolean gst_mpd_client_setup_representation (GstMpdClient *client, GstActiveStream *stream, GstRepresentationNode *representation); GstClockTime gst_mpd_client_get_current_position (GstMpdClient *client); GstClockTime gst_mpd_client_get_next_fragment_duration (GstMpdClient * client); diff --git a/ext/dash/gsturidownloader.c b/ext/dash/gsturidownloader.c index 411a05c742..4313f222e5 100644 --- a/ext/dash/gsturidownloader.c +++ b/ext/dash/gsturidownloader.c @@ -19,6 +19,8 @@ * Boston, MA 02111-1307, USA. */ +#define GLIB_DISABLE_DEPRECATION_WARNINGS + #include #include "gstfragmented.h" #include "gstfragment.h" @@ -274,13 +276,17 @@ gst_uri_downloader_set_uri (GstUriDownloader * downloader, const gchar * uri) return FALSE; if (downloader->priv->urisrc == NULL) { - GST_DEBUG_OBJECT (downloader, "Creating source element for the URI:%s", uri); - downloader->priv->urisrc = gst_element_make_from_uri (GST_URI_SRC, uri, NULL); + GST_DEBUG_OBJECT (downloader, "Creating source element for the URI:%s", + uri); + downloader->priv->urisrc = + gst_element_make_from_uri (GST_URI_SRC, uri, NULL); if (!downloader->priv->urisrc) return FALSE; } else { - GST_DEBUG_OBJECT (downloader, "Reusing existing source element for the URI:%s", uri); - if (!gst_uri_handler_set_uri (GST_URI_HANDLER (downloader->priv->urisrc), uri)) + GST_DEBUG_OBJECT (downloader, + "Reusing existing source element for the URI:%s", uri); + if (!gst_uri_handler_set_uri (GST_URI_HANDLER (downloader->priv->urisrc), + uri)) return FALSE; }