adaptivedemux2: Prevent duplicate symbols on static builds
authorPiotr Brzeziński <piotr@centricular.com>
Tue, 14 Jun 2022 21:03:26 +0000 (23:03 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 15 Jun 2022 01:13:16 +0000 (01:13 +0000)
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2534>

17 files changed:
subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpd-prelude.h [new file with mode: 0644]
subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdhelper.h
subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdnode.h
subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstmpdparser.h
subprojects/gst-plugins-good/ext/adaptivedemux2/dash/gstxmlhelper.h
subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlsdemux.c
subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlselement.c
subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlselements.h
subprojects/gst-plugins-good/ext/adaptivedemux2/hls/m3u8.c
subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmss-prelude.h [new file with mode: 0644]
subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssdemux.c
subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssdemux.h
subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssfragmentparser.h
subprojects/gst-plugins-good/ext/adaptivedemux2/mss/gstmssmanifest.h
subprojects/gst-plugins-good/ext/soup/gstsouploader.c
subprojects/gst-plugins-good/ext/soup/gstsouploader.h
subprojects/gst-plugins-good/tests/check/elements/hlsdemux_m3u8.c

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 (file)
index 0000000..a49a8f8
--- /dev/null
@@ -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__ */
index 91cb7d3..65a7e45 100644 (file)
@@ -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"
index e878762..7aab15b 100644 (file)
@@ -22,6 +22,7 @@
 #define __GSTMPDNODE_H__
 
 #include <gst/gst.h>
+#include "gstmpd-prelude.h"
 #include "gstxmlhelper.h"
 G_BEGIN_DECLS
 
index 69b2935..7dd6f96 100644 (file)
@@ -32,6 +32,7 @@
 
 #include "gstadaptivedemux.h"
 
+#include "gstmpd-prelude.h"
 #include "gstmpdhelper.h"
 #include "gstxmlhelper.h"
 #include "gstmpdrootnode.h"
index 6537cf0..8cc909d 100644 (file)
@@ -24,6 +24,7 @@
 #include <libxml/parser.h>
 #include <libxml/tree.h>
 #include <gst/gst.h>
+#include "gstmpd-prelude.h"
 #include "gstdash_debug.h"
 
 G_BEGIN_DECLS
index d9838fa..07551ca 100644 (file)
@@ -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)
index c2f2d16..14761ee 100644 (file)
@@ -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);
   }
index bdc1943..3caeca1 100644 (file)
@@ -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
 
index ffc538f..b1e6f79 100644 (file)
@@ -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 (file)
index 0000000..c834d82
--- /dev/null
@@ -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__ */
index 2829429..5e3997d 100644 (file)
@@ -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);
 
index c1331bc..4be59e7 100644 (file)
@@ -27,6 +27,7 @@
 #include <gst/base/gstadapter.h>
 #include <gst/base/gstdataqueue.h>
 #include <gst/gstprotection.h>
+#include "gstmss-prelude.h"
 #include "gstmssmanifest.h"
 #include "../gstadaptivedemux.h"
 
index a2b2f85..b65cfda 100644 (file)
@@ -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,
index cbe8e41..278adff 100644 (file)
 #include <gst/gst.h>
 #include <gio/gio.h>
 
+/* 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);
index a6bf53d..f4eb8ea 100644 (file)
@@ -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);