From 0a2c490723fecff3a93620cd3ef47f661fc041d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Brzezi=C5=84ski?= Date: Tue, 14 Jun 2022 23:03:26 +0200 Subject: [PATCH] adaptivedemux2: Prevent duplicate symbols on static builds Uses prelude header files with #defines to rename DASH and MSS symbols duplicated in their old standalone versions. Also redefines soup-related functions when building it for adaptivedemux2 to prevent symbol conflicts there. Part-of: --- .../ext/adaptivedemux2/dash/gstmpd-prelude.h | 165 ++++++++++++++++++ .../ext/adaptivedemux2/dash/gstmpdhelper.h | 1 + .../ext/adaptivedemux2/dash/gstmpdnode.h | 1 + .../ext/adaptivedemux2/dash/gstmpdparser.h | 1 + .../ext/adaptivedemux2/dash/gstxmlhelper.h | 1 + .../ext/adaptivedemux2/hls/gsthlsdemux.c | 2 +- .../ext/adaptivedemux2/hls/gsthlselement.c | 6 +- .../ext/adaptivedemux2/hls/gsthlselements.h | 4 +- .../ext/adaptivedemux2/hls/m3u8.c | 2 +- .../ext/adaptivedemux2/mss/gstmss-prelude.h | 63 +++++++ .../ext/adaptivedemux2/mss/gstmssdemux.c | 2 +- .../ext/adaptivedemux2/mss/gstmssdemux.h | 1 + .../adaptivedemux2/mss/gstmssfragmentparser.h | 1 + .../ext/adaptivedemux2/mss/gstmssmanifest.h | 1 + .../gst-plugins-good/ext/soup/gstsouploader.c | 6 - .../gst-plugins-good/ext/soup/gstsouploader.h | 47 ++++- .../tests/check/elements/hlsdemux_m3u8.c | 4 +- 17 files changed, 290 insertions(+), 18 deletions(-) create mode 100644 subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpd-prelude.h create mode 100644 subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmss-prelude.h diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpd-prelude.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpd-prelude.h new file mode 100644 index 0000000000..a49a8f85df --- /dev/null +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpd-prelude.h @@ -0,0 +1,165 @@ +/* GStreamer + * Copyright (C) 2022 GStreamer developers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library (COPYING); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MPD_PRELUDE_H__ +#define __GST_MPD_PRELUDE_H__ + +#define gst_mpd_adaptation_set_node_free gst_mpd_adaptation_set_node2_free +#define gst_mpd_adaptation_set_node_get_type gst_mpd_adaptation_set_node2_get_type +#define gst_mpd_adaptation_set_node_new gst_mpd_adaptation_set_node2_new +#define gst_mpd_baseurl_node_free gst_mpd_baseurl_node2_free +#define gst_mpd_baseurl_node_get_type gst_mpd_baseurl_node2_get_type +#define gst_mpd_baseurl_node_new gst_mpd_baseurl_node2_new +#define gst_mpd_content_component_node_free gst_mpd_content_component_node2_free +#define gst_mpd_content_component_node_get_type gst_mpd_content_component_node2_get_type +#define gst_mpd_content_component_node_new gst_mpd_content_component_node2_new +#define gst_mpd_descriptor_type_node_free gst_mpd_descriptor_type_node2_free +#define gst_mpd_descriptor_type_node_get_type gst_mpd_descriptor_type_node2_get_type +#define gst_mpd_descriptor_type_node_new gst_mpd_descriptor_type_node2_new +#define gst_mpd_helper_combine_urls gst_mpd_helper2_combine_urls +#define gst_mpd_helper_get_audio_codec_from_mime gst_mpd_helper2_get_audio_codec_from_mime +#define gst_mpd_helper_get_mpd_type gst_mpd_helper2_get_mpd_type +#define gst_mpd_helper_get_SAP_type gst_mpd_helper2_get_SAP_type +#define gst_mpd_helper_get_video_codec_from_mime gst_mpd_helper2_get_video_codec_from_mime +#define gst_mpd_helper_mimetype_to_caps gst_mpd_helper2_mimetype_to_caps +#define gst_mpd_helper_strncmp_ext gst_mpd_helper2_strncmp_ext +#define gst_mpd_location_node_free gst_mpd_location_node2_free +#define gst_mpd_location_node_get_type gst_mpd_location_node2_get_type +#define gst_mpd_location_node_new gst_mpd_location_node2_new +#define gst_mpd_metrics_node_free gst_mpd_metrics_node2_free +#define gst_mpd_metrics_node_get_type gst_mpd_metrics_node2_get_type +#define gst_mpd_metrics_node_new gst_mpd_metrics_node2_new +#define gst_mpd_metrics_range_node_free gst_mpd_metrics_range_node2_free +#define gst_mpd_metrics_range_node_get_type gst_mpd_metrics_range_node2_get_type +#define gst_mpd_metrics_range_node_new gst_mpd_metrics_range_node2_new +#define gst_mpd_mult_segment_base_node_add_child_node gst_mpd_mult_segment_base_node2_add_child_node +#define gst_mpd_mult_segment_base_node_get_type gst_mpd_mult_segment_base_node2_get_type +#define gst_mpd_node_add_child_node gst_mpd_node2_add_child_node +#define gst_mpd_node_get_list_item gst_mpd_node2_get_list_item +#define gst_mpd_node_get_type gst_mpd_node2_get_type +#define gst_mpd_node_get_xml_buffer gst_mpd_node2_get_xml_buffer +#define gst_mpd_node_get_xml_pointer gst_mpd_node2_get_xml_pointer +#define gst_mpdparser_build_URL_from_template gst_mpdparser2_build_URL_from_template +#define gst_mpdparser_free_active_stream gst_mpdparser2_free_active_stream +#define gst_mpdparser_free_media_segment gst_mpdparser2_free_media_segment +#define gst_mpdparser_free_stream_period gst_mpdparser2_free_stream_period +#define gst_mpdparser_get_external_adaptation_sets gst_mpdparser2_get_external_adaptation_sets +#define gst_mpdparser_get_external_periods gst_mpdparser2_get_external_periods +#define gst_mpdparser_get_external_segment_list gst_mpdparser2_get_external_segment_list +#define gst_mpdparser_get_initializationURL gst_mpdparser2_get_initializationURL +#define gst_mpdparser_get_mediaURL gst_mpdparser2_get_mediaURL +#define gst_mpdparser_get_mpd_root_node gst_mpdparser2_get_mpd_root_node +#define gst_mpdparser_init_active_stream_segments gst_mpdparser2_init_active_stream_segments +#define gst_mpdparser_media_fragment_info_clear gst_mpdparser2_media_fragment_info_clear +#define gst_mpdparser_representation_get_mimetype gst_mpdparser2_representation_get_mimetype +#define gst_mpd_period_node_free gst_mpd_period_node2_free +#define gst_mpd_period_node_get_type gst_mpd_period_node2_get_type +#define gst_mpd_period_node_new gst_mpd_period_node2_new +#define gst_mpd_program_information_node_free gst_mpd_program_information_node2_free +#define gst_mpd_program_information_node_get_type gst_mpd_program_information_node2_get_type +#define gst_mpd_program_information_node_new gst_mpd_program_information_node2_new +#define gst_mpd_reporting_node_free gst_mpd_reporting_node2_free +#define gst_mpd_reporting_node_get_type gst_mpd_reporting_node2_get_type +#define gst_mpd_reporting_node_new gst_mpd_reporting_node2_new +#define gst_mpd_representation_base_node_get_list_item gst_mpd_representation_base_node2_get_list_item +#define gst_mpd_representation_base_node_get_type gst_mpd_representation_base_node2_get_type +#define gst_mpd_representation_node_free gst_mpd_representation_node2_free +#define gst_mpd_representation_node_get_type gst_mpd_representation_node2_get_type +#define gst_mpd_representation_node_new gst_mpd_representation_node2_new +#define gst_mpd_root_node_free gst_mpd_root_node2_free +#define gst_mpd_root_node_get_type gst_mpd_root_node2_get_type +#define gst_mpd_root_node_new gst_mpd_root_node2_new +#define gst_mpd_segment_base_node_free gst_mpd_segment_base_node2_free +#define gst_mpd_segment_base_node_get_type gst_mpd_segment_base_node2_get_type +#define gst_mpd_segment_base_node_new gst_mpd_segment_base_node2_new +#define gst_mpd_segment_list_node_add_segment gst_mpd_segment_list_node2_add_segment +#define gst_mpd_segment_list_node_free gst_mpd_segment_list_node2_free +#define gst_mpd_segment_list_node_get_type gst_mpd_segment_list_node2_get_type +#define gst_mpd_segment_list_node_new gst_mpd_segment_list_node2_new +#define gst_mpd_segment_template_node_free gst_mpd_segment_template_node2_free +#define gst_mpd_segment_template_node_get_type gst_mpd_segment_template_node2_get_type +#define gst_mpd_segment_template_node_new gst_mpd_segment_template_node2_new +#define gst_mpd_segment_timeline_node_clone gst_mpd_segment_timeline_node2_clone +#define gst_mpd_segment_timeline_node_free gst_mpd_segment_timeline_node2_free +#define gst_mpd_segment_timeline_node_get_type gst_mpd_segment_timeline_node2_get_type +#define gst_mpd_segment_timeline_node_new gst_mpd_segment_timeline_node2_new +#define gst_mpd_segment_url_node_clone gst_mpd_segment_url_node2_clone +#define gst_mpd_segment_url_node_free gst_mpd_segment_url_node2_free +#define gst_mpd_segment_url_node_get_type gst_mpd_segment_url_node2_get_type +#define gst_mpd_segment_url_node_new gst_mpd_segment_url_node2_new +#define gst_mpd_s_node_clone gst_mpd_s_node2_clone +#define gst_mpd_s_node_free gst_mpd_s_node2_free +#define gst_mpd_s_node_get_type gst_mpd_s_node2_get_type +#define gst_mpd_s_node_new gst_mpd_s_node2_new +#define gst_mpd_sub_representation_node_free gst_mpd_sub_representation_node2_free +#define gst_mpd_sub_representation_node_get_type gst_mpd_sub_representation_node2_get_type +#define gst_mpd_sub_representation_node_new gst_mpd_sub_representation_node2_new +#define gst_mpd_subset_node_free gst_mpd_subset_node2_free +#define gst_mpd_subset_node_get_type gst_mpd_subset_node2_get_type +#define gst_mpd_subset_node_new gst_mpd_subset_node2_new +#define gst_mpd_url_type_node_clone gst_mpd_url_type_node2_clone +#define gst_mpd_url_type_node_free gst_mpd_url_type_node2_free +#define gst_mpd_url_type_node_get_type gst_mpd_url_type_node2_get_type +#define gst_mpd_url_type_node_new gst_mpd_url_type_node2_new +#define gst_mpd_utctiming_get_method gst_mpd_utctiming2_get_method +#define gst_mpd_utctiming_get_scheme_id_uri gst_mpd_utctiming2_get_scheme_id_uri +#define gst_mpd_utctiming_node_free gst_mpd_utctiming_node2_free +#define gst_mpd_utctiming_node_get_type gst_mpd_utctiming_node2_get_type +#define gst_mpd_utctiming_node_new gst_mpd_utctiming_node2_new +#define gst_xml_helper_clone_frame_rate gst_xml_helper2_clone_frame_rate +#define gst_xml_helper_clone_range gst_xml_helper2_clone_range +#define gst_xml_helper_clone_ratio gst_xml_helper2_clone_ratio +#define gst_xml_helper_get_node_as_string gst_xml_helper2_get_node_as_string +#define gst_xml_helper_get_node_content gst_xml_helper2_get_node_content +#define gst_xml_helper_get_node_namespace gst_xml_helper2_get_node_namespace +#define gst_xml_helper_get_ns_prop_string gst_xml_helper2_get_ns_prop_string +#define gst_xml_helper_get_prop_boolean gst_xml_helper2_get_prop_boolean +#define gst_xml_helper_get_prop_cond_uint gst_xml_helper2_get_prop_cond_uint +#define gst_xml_helper_get_prop_dateTime gst_xml_helper2_get_prop_dateTime +#define gst_xml_helper_get_prop_double gst_xml_helper2_get_prop_double +#define gst_xml_helper_get_prop_duration gst_xml_helper2_get_prop_duration +#define gst_xml_helper_get_prop_framerate gst_xml_helper2_get_prop_framerate +#define gst_xml_helper_get_prop_range gst_xml_helper2_get_prop_range +#define gst_xml_helper_get_prop_ratio gst_xml_helper2_get_prop_ratio +#define gst_xml_helper_get_prop_signed_integer gst_xml_helper2_get_prop_signed_integer +#define gst_xml_helper_get_prop_string gst_xml_helper2_get_prop_string +#define gst_xml_helper_get_prop_string_no_whitespace gst_xml_helper2_get_prop_string_no_whitespace +#define gst_xml_helper_get_prop_string_stripped gst_xml_helper2_get_prop_string_stripped +#define gst_xml_helper_get_prop_string_vector_type gst_xml_helper2_get_prop_string_vector_type +#define gst_xml_helper_get_prop_uint_vector_type gst_xml_helper2_get_prop_uint_vector_type +#define gst_xml_helper_get_prop_unsigned_integer gst_xml_helper2_get_prop_unsigned_integer +#define gst_xml_helper_get_prop_unsigned_integer_64 gst_xml_helper2_get_prop_unsigned_integer_64 +#define gst_xml_helper_get_prop_validated_string gst_xml_helper2_get_prop_validated_string +#define gst_xml_helper_set_content gst_xml_helper2_set_content +#define gst_xml_helper_set_prop_boolean gst_xml_helper2_set_prop_boolean +#define gst_xml_helper_set_prop_cond_uint gst_xml_helper2_set_prop_cond_uint +#define gst_xml_helper_set_prop_date_time gst_xml_helper2_set_prop_date_time +#define gst_xml_helper_set_prop_double gst_xml_helper2_set_prop_double +#define gst_xml_helper_set_prop_duration gst_xml_helper2_set_prop_duration +#define gst_xml_helper_set_prop_framerate gst_xml_helper2_set_prop_framerate +#define gst_xml_helper_set_prop_int gst_xml_helper2_set_prop_int +#define gst_xml_helper_set_prop_int64 gst_xml_helper2_set_prop_int64 +#define gst_xml_helper_set_prop_range gst_xml_helper2_set_prop_range +#define gst_xml_helper_set_prop_ratio gst_xml_helper2_set_prop_ratio +#define gst_xml_helper_set_prop_string gst_xml_helper2_set_prop_string +#define gst_xml_helper_set_prop_uint gst_xml_helper2_set_prop_uint +#define gst_xml_helper_set_prop_uint64 gst_xml_helper2_set_prop_uint64 +#define gst_xml_helper_set_prop_uint_vector_type gst_xml_helper2_set_prop_uint_vector_type + +#endif /* __GST_MPD_PRELUDE_H__ */ diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdhelper.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdhelper.h index 91cb7d3f2b..65a7e45bf9 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdhelper.h +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdhelper.h @@ -21,6 +21,7 @@ #ifndef __GST_MPDHELPER_H__ #define __GST_MPDHELPER_H__ +#include "gstmpd-prelude.h" #include "gstxmlhelper.h" #include "gstmpdnode.h" #include "gstmpdurltypenode.h" diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdnode.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdnode.h index e878762ac2..7aab15b786 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdnode.h +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdnode.h @@ -22,6 +22,7 @@ #define __GSTMPDNODE_H__ #include +#include "gstmpd-prelude.h" #include "gstxmlhelper.h" G_BEGIN_DECLS diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdparser.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdparser.h index 69b2935ccd..7dd6f9638d 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdparser.h +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdparser.h @@ -32,6 +32,7 @@ #include "gstadaptivedemux.h" +#include "gstmpd-prelude.h" #include "gstmpdhelper.h" #include "gstxmlhelper.h" #include "gstmpdrootnode.h" diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstxmlhelper.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstxmlhelper.h index 6537cf0058..8cc909dbba 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstxmlhelper.h +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstxmlhelper.h @@ -24,6 +24,7 @@ #include #include #include +#include "gstmpd-prelude.h" #include "gstdash_debug.h" G_BEGIN_DECLS diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlsdemux.c b/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlsdemux.c index d9838faa7d..07551ca5a6 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlsdemux.c +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlsdemux.c @@ -174,7 +174,7 @@ typedef struct _GstHLSDemux2Class GstHLSDemux2Class; #define gst_hls_demux2_parent_class parent_class G_DEFINE_TYPE_WITH_CODE (GstHLSDemux2, gst_hls_demux2, GST_TYPE_ADAPTIVE_DEMUX, - hls_element_init ()); + hls2_element_init ()); static void gst_hls_demux_finalize (GObject * obj) diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlselement.c b/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlselement.c index c2f2d16807..14761ee7a3 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlselement.c +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlselement.c @@ -5,14 +5,14 @@ #include "gsthlselements.h" -GST_DEBUG_CATEGORY (hls_debug); +GST_DEBUG_CATEGORY (hls2_debug); void -hls_element_init (void) +hls2_element_init (void) { static gsize res = FALSE; if (g_once_init_enter (&res)) { - GST_DEBUG_CATEGORY_INIT (hls_debug, "hlsng", 0, + GST_DEBUG_CATEGORY_INIT (hls2_debug, "hlsng", 0, "HTTP Live Streaming (HLS) NG"); g_once_init_leave (&res, TRUE); } diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlselements.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlselements.h index bdc1943b75..3caeca1452 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlselements.h +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlselements.h @@ -5,9 +5,9 @@ G_BEGIN_DECLS -void hls_element_init (void); +void hls2_element_init (void); -GST_DEBUG_CATEGORY_EXTERN (hls_debug); +GST_DEBUG_CATEGORY_EXTERN (hls2_debug); G_END_DECLS diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/m3u8.c b/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/m3u8.c index ffc538f17b..b1e6f799c8 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/m3u8.c +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/m3u8.c @@ -36,7 +36,7 @@ #include "gstadaptivedemux.h" #include "gsthlselements.h" -#define GST_CAT_DEFAULT hls_debug +#define GST_CAT_DEFAULT hls2_debug static void gst_m3u8_init_file_unref (GstM3U8InitFile * self); static gchar *uri_join (const gchar * uri, const gchar * path); diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmss-prelude.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmss-prelude.h new file mode 100644 index 0000000000..c834d8269f --- /dev/null +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmss-prelude.h @@ -0,0 +1,63 @@ +/* GStreamer + * Copyright (C) 2022 GStreamer developers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library (COPYING); if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MSS_PRELUDE_H__ +#define __GST_MSS_PRELUDE_H__ + +#define gst_mss_manifest_new gst_mss2_manifest_new +#define gst_mss_manifest_free gst_mss2_manifest_free +#define gst_mss_manifest_get_protection_system_id gst_mss2_manifest_get_protection_system_id +#define gst_mss_manifest_get_protection_data gst_mss2_manifest_get_protection_data +#define gst_mss_manifest_get_streams gst_mss2_manifest_get_streams +#define gst_mss_manifest_get_timescale gst_mss2_manifest_get_timescale +#define gst_mss_manifest_get_duration gst_mss2_manifest_get_duration +#define gst_mss_manifest_get_gst_duration gst_mss2_manifest_get_gst_duration +#define gst_mss_manifest_get_min_fragment_duration gst_mss2_manifest_get_min_fragment_duration +#define gst_mss_manifest_seek gst_mss2_manifest_seek +#define gst_mss_manifest_live_adapter_clear gst_mss2_manifest_live_adapter_clear +#define gst_mss_manifest_get_current_bitrate gst_mss2_manifest_get_current_bitrate +#define gst_mss_manifest_is_live gst_mss2_manifest_is_live +#define gst_mss_manifest_reload_fragments gst_mss2_manifest_reload_fragments +#define gst_mss_manifest_change_bitrate gst_mss2_manifest_change_bitrate +#define gst_mss_manifest_get_live_seek_range gst_mss2_manifest_get_live_seek_range +#define gst_mss_manifest_live_adapter_push gst_mss2_manifest_live_adapter_push +#define gst_mss_manifest_live_adapter_available gst_mss2_manifest_live_adapter_available +#define gst_mss_manifest_live_adapter_take_buffer gst_mss2_manifest_live_adapter_take_buffer +#define gst_mss_stream_get_type gst_mss2_stream_get_type +#define gst_mss_stream_set_active gst_mss2_stream_set_active +#define gst_mss_stream_get_timescale gst_mss2_stream_get_timescale +#define gst_mss_stream_get_fragment_gst_duration gst_mss2_stream_get_fragment_gst_duration +#define gst_mss_stream_get_caps gst_mss2_stream_get_caps +#define gst_mss_stream_get_fragment_url gst_mss2_stream_get_fragment_url +#define gst_mss_stream_get_fragment_gst_timestamp gst_mss2_stream_get_fragment_gst_timestamp +#define gst_mss_stream_has_next_fragment gst_mss2_stream_has_next_fragment +#define gst_mss_stream_advance_fragment gst_mss2_stream_advance_fragment +#define gst_mss_stream_type_name gst_mss2_stream_type_name +#define gst_mss_stream_regress_fragment gst_mss2_stream_regress_fragment +#define gst_mss_stream_seek gst_mss2_stream_seek +#define gst_mss_stream_select_bitrate gst_mss2_stream_select_bitrate +#define gst_mss_stream_get_current_bitrate gst_mss2_stream_get_current_bitrate +#define gst_mss_stream_get_lang gst_mss2_stream_get_lang +#define gst_mss_stream_fragment_parsing_needed gst_mss2_stream_fragment_parsing_needed +#define gst_mss_stream_parse_fragment gst_mss2_stream_parse_fragment +#define gst_mss_fragment_parser_add_buffer gst_mss2_fragment_parser_add_buffer +#define gst_mss_fragment_parser_clear gst_mss2_fragment_parser_clear +#define gst_mss_fragment_parser_init gst_mss2_fragment_parser_init + +#endif /* __GST_MSS_PRELUDE_H__ */ diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssdemux.c b/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssdemux.c index 2829429578..5e3997d066 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssdemux.c +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssdemux.c @@ -104,7 +104,7 @@ typedef struct _GstMssDemux2Class GstMssDemux2Class; #define gst_mss_demux2_parent_class parent_class G_DEFINE_TYPE (GstMssDemux2, gst_mss_demux2, GST_TYPE_ADAPTIVE_DEMUX); -#define gst_hls_demux_stream_parent_class stream_parent_class +#define gst_mss_demux_stream_parent_class stream_parent_class G_DEFINE_TYPE (GstMssDemuxStream, gst_mss_demux_stream, GST_TYPE_ADAPTIVE_DEMUX2_STREAM); diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssdemux.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssdemux.h index c1331bcd4f..4be59e7a6f 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssdemux.h +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssdemux.h @@ -27,6 +27,7 @@ #include #include #include +#include "gstmss-prelude.h" #include "gstmssmanifest.h" #include "../gstadaptivedemux.h" diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssfragmentparser.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssfragmentparser.h index 2a53f888b1..54a654ae4d 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssfragmentparser.h +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssfragmentparser.h @@ -28,6 +28,7 @@ #include #include "../gstisoff.h" +#include "gstmss-prelude.h" G_BEGIN_DECLS diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssmanifest.h b/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssmanifest.h index 86da662e80..a3ebdba722 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssmanifest.h +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssmanifest.h @@ -27,6 +27,7 @@ #include #include #include +#include "gstmss-prelude.h" G_BEGIN_DECLS diff --git a/subprojects/gst-plugins-good/ext/soup/gstsouploader.c b/subprojects/gst-plugins-good/ext/soup/gstsouploader.c index a2b2f851c5..b65cfdab52 100644 --- a/subprojects/gst-plugins-good/ext/soup/gstsouploader.c +++ b/subprojects/gst-plugins-good/ext/soup/gstsouploader.c @@ -112,11 +112,9 @@ typedef struct _GstSoupVTable goffset (*_soup_message_headers_get_content_length) (SoupMessageHeaders * hdrs); const char *(*_soup_message_headers_get_content_type) (SoupMessageHeaders * hdrs, GHashTable ** value); -#ifdef BUILDING_ADAPTIVEDEMUX2 gboolean (*_soup_message_headers_get_content_range) (SoupMessageHeaders *hdrs, goffset *start, goffset *end, goffset *total_length); void (*_soup_message_headers_set_range) (SoupMessageHeaders *hdrs, goffset start, goffset end); -#endif SoupEncoding (*_soup_message_headers_get_encoding) (SoupMessageHeaders * hdrs); const char *(*_soup_message_headers_get_one) (SoupMessageHeaders * hdrs, const char * name); @@ -280,10 +278,8 @@ gst_soup_load_library (void) LOAD_SYMBOL (soup_message_headers_foreach); LOAD_SYMBOL (soup_message_headers_get_content_length); LOAD_SYMBOL (soup_message_headers_get_content_type); -#ifdef BUILDING_ADAPTIVEDEMUX2 LOAD_SYMBOL (soup_message_headers_get_content_range); LOAD_SYMBOL (soup_message_headers_set_range); -#endif LOAD_SYMBOL (soup_message_headers_get_encoding); LOAD_SYMBOL (soup_message_headers_get_one); LOAD_SYMBOL (soup_message_headers_remove); @@ -814,7 +810,6 @@ _soup_message_headers_get_content_type (SoupMessageHeaders * hdrs, #endif } -#ifdef BUILDING_ADAPTIVEDEMUX2 gboolean _soup_message_headers_get_content_range (SoupMessageHeaders * hdrs, goffset * start, goffset * end, goffset * total_length) @@ -840,7 +835,6 @@ _soup_message_headers_set_range (SoupMessageHeaders * hdrs, goffset start, gst_soup_vtable._soup_message_headers_set_range (hdrs, start, end); #endif } -#endif void _soup_auth_authenticate (SoupAuth * auth, const char *username, diff --git a/subprojects/gst-plugins-good/ext/soup/gstsouploader.h b/subprojects/gst-plugins-good/ext/soup/gstsouploader.h index cbe8e41680..278adff1ac 100644 --- a/subprojects/gst-plugins-good/ext/soup/gstsouploader.h +++ b/subprojects/gst-plugins-good/ext/soup/gstsouploader.h @@ -24,6 +24,51 @@ #include #include +/* Prevent conflicting symbols when building both soup and adaptivedemux2 */ +#ifdef BUILDING_ADAPTIVEDEMUX2 +#define gst_soup_loader_get_api_version ad2_gst_soup_loader_get_api_version +#define _soup_session_new_with_options _ad2_soup_session_new_with_options +#define _soup_logger_new _ad2_soup_logger_new +#define _soup_logger_set_printer _ad2_soup_logger_set_printer +#define _soup_session_add_feature _ad2_soup_session_add_feature +#define _soup_session_add_feature_by_type _ad2_soup_session_add_feature_by_type +#define gst_soup_uri_new ad2_gst_soup_uri_new +#define gst_soup_uri_free ad2_gst_soup_uri_free +#define gst_soup_uri_to_string ad2_gst_soup_uri_to_string +#define gst_soup_message_uri_to_string ad2_gst_soup_message_uri_to_string +#define _soup_get_major_version _ad2_soup_get_major_version +#define _soup_get_minor_version _ad2_soup_get_minor_version +#define _soup_get_micro_version _ad2_soup_get_micro_version +#define _soup_message_set_request_body_from_bytes _ad2_soup_message_set_request_body_from_bytes +#define _soup_session_get_type _ad2_soup_session_get_type +#define _soup_logger_log_level_get_type _ad2_soup_logger_log_level_get_type +#define _soup_content_decoder_get_type _ad2_soup_content_decoder_get_type +#define _soup_cookie_jar_get_type _ad2_soup_cookie_jar_get_type +#define _soup_session_abort _ad2_soup_session_abort +#define _soup_message_new _ad2_soup_message_new +#define _soup_message_get_request_headers _ad2_soup_message_get_request_headers +#define _soup_message_get_response_headers _ad2_soup_message_get_response_headers +#define _soup_message_headers_remove _ad2_soup_message_headers_remove +#define _soup_message_headers_append _ad2_soup_message_headers_append +#define _soup_message_set_flags _ad2_soup_message_set_flags +#define _soup_message_headers_foreach _ad2_soup_message_headers_foreach +#define _soup_message_headers_get_encoding _ad2_soup_message_headers_get_encoding +#define _soup_message_headers_get_content_length _ad2_soup_message_headers_get_content_length +#define _soup_message_get_status _ad2_soup_message_get_status +#define _soup_message_get_reason_phrase _ad2_soup_message_get_reason_phrase +#define _soup_message_headers_get_one _ad2_soup_message_headers_get_one +#define _soup_message_disable_feature _ad2_soup_message_disable_feature +#define _soup_message_headers_get_content_type _ad2_soup_message_headers_get_content_type +#define _soup_message_headers_get_content_range _ad2_soup_message_headers_get_content_range +#define _soup_message_headers_set_range _ad2_soup_message_headers_set_range +#define _soup_auth_authenticate _ad2_soup_auth_authenticate +#define _soup_message_get_method _ad2_soup_message_get_method +#define _soup_session_send_async _ad2_soup_session_send_async +#define _soup_session_send_finish _ad2_soup_session_send_finish +#define _soup_session_send _ad2_soup_session_send +#define gst_soup_session_cancel_message ad2_gst_soup_session_cancel_message +#endif + G_BEGIN_DECLS gboolean gst_soup_load_library (void); @@ -96,13 +141,11 @@ void _soup_message_disable_feature (SoupMessage *msg, GType feature_type); const char *_soup_message_headers_get_content_type (SoupMessageHeaders *hdrs, GHashTable **params); -#ifdef BUILDING_ADAPTIVEDEMUX2 gboolean _soup_message_headers_get_content_range (SoupMessageHeaders *hdrs, goffset *start, goffset *end, goffset *total_length); void _soup_message_headers_set_range (SoupMessageHeaders *hdrs, goffset start, goffset end); -#endif void _soup_auth_authenticate (SoupAuth *auth, const char *username, const char *password); diff --git a/subprojects/gst-plugins-good/tests/check/elements/hlsdemux_m3u8.c b/subprojects/gst-plugins-good/tests/check/elements/hlsdemux_m3u8.c index a6bf53d9a8..f4eb8eab8e 100644 --- a/subprojects/gst-plugins-good/tests/check/elements/hlsdemux_m3u8.c +++ b/subprojects/gst-plugins-good/tests/check/elements/hlsdemux_m3u8.c @@ -28,7 +28,7 @@ #include "m3u8.h" #include "m3u8.c" -GST_DEBUG_CATEGORY (hls_debug); +GST_DEBUG_CATEGORY (hls2_debug); static const gchar *INVALID_PLAYLIST = "#EXTM3 UINVALID"; @@ -849,7 +849,7 @@ hlsdemux_suite (void) Suite *s = suite_create ("hlsdemux_m3u8"); TCase *tc_m3u8 = tcase_create ("m3u8client"); - GST_DEBUG_CATEGORY_INIT (hls_debug, "hlsdemux_m3u", 0, "hlsdemux m3u test"); + GST_DEBUG_CATEGORY_INIT (hls2_debug, "hlsdemux_m3u", 0, "hlsdemux m3u test"); suite_add_tcase (s, tc_m3u8); tcase_add_test (tc_m3u8, test_load_main_playlist_invalid);