Bump GLib requirement to >= 2.62
Can't require 2.64 yet because of https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568>
This commit is contained in:
parent
92a4088621
commit
9d9e59622f
@ -28,7 +28,7 @@ osxversion = curversion + 1
|
|||||||
|
|
||||||
prefix = get_option('prefix')
|
prefix = get_option('prefix')
|
||||||
|
|
||||||
glib_req = '>= 2.56.0'
|
glib_req = '>= 2.62.0'
|
||||||
|
|
||||||
if gst_version_is_stable
|
if gst_version_is_stable
|
||||||
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
||||||
|
@ -582,107 +582,6 @@ gst_validate_get_test_file_scenario (GList ** structs,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2,58,0)
|
|
||||||
|
|
||||||
/* Copied from https://gitlab.gnome.org/GNOME/glib/-/blob/main/glib/gfileutils.c#L2736 */
|
|
||||||
static gchar *
|
|
||||||
g_canonicalize_filename (const gchar * filename, const gchar * relative_to)
|
|
||||||
{
|
|
||||||
gchar *canon, *start, *p, *q;
|
|
||||||
guint i;
|
|
||||||
|
|
||||||
g_return_val_if_fail (relative_to == NULL
|
|
||||||
|| g_path_is_absolute (relative_to), NULL);
|
|
||||||
|
|
||||||
if (!g_path_is_absolute (filename)) {
|
|
||||||
gchar *cwd_allocated = NULL;
|
|
||||||
const gchar *cwd;
|
|
||||||
|
|
||||||
if (relative_to != NULL)
|
|
||||||
cwd = relative_to;
|
|
||||||
else
|
|
||||||
cwd = cwd_allocated = g_get_current_dir ();
|
|
||||||
|
|
||||||
canon = g_build_filename (cwd, filename, NULL);
|
|
||||||
g_free (cwd_allocated);
|
|
||||||
} else {
|
|
||||||
canon = g_strdup (filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
start = (char *) g_path_skip_root (canon);
|
|
||||||
|
|
||||||
if (start == NULL) {
|
|
||||||
/* This shouldn't really happen, as g_get_current_dir() should
|
|
||||||
return an absolute pathname, but bug 573843 shows this is
|
|
||||||
not always happening */
|
|
||||||
g_free (canon);
|
|
||||||
return g_build_filename (G_DIR_SEPARATOR_S, filename, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* POSIX allows double slashes at the start to
|
|
||||||
* mean something special (as does windows too).
|
|
||||||
* So, "//" != "/", but more than two slashes
|
|
||||||
* is treated as "/".
|
|
||||||
*/
|
|
||||||
i = 0;
|
|
||||||
for (p = start - 1; (p >= canon) && G_IS_DIR_SEPARATOR (*p); p--)
|
|
||||||
i++;
|
|
||||||
if (i > 2) {
|
|
||||||
i -= 1;
|
|
||||||
start -= i;
|
|
||||||
memmove (start, start + i, strlen (start + i) + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Make sure we're using the canonical dir separator */
|
|
||||||
p++;
|
|
||||||
while (p < start && G_IS_DIR_SEPARATOR (*p))
|
|
||||||
*p++ = G_DIR_SEPARATOR;
|
|
||||||
|
|
||||||
p = start;
|
|
||||||
while (*p != 0) {
|
|
||||||
if (p[0] == '.' && (p[1] == 0 || G_IS_DIR_SEPARATOR (p[1]))) {
|
|
||||||
memmove (p, p + 1, strlen (p + 1) + 1);
|
|
||||||
} else if (p[0] == '.' && p[1] == '.' && (p[2] == 0
|
|
||||||
|| G_IS_DIR_SEPARATOR (p[2]))) {
|
|
||||||
q = p + 2;
|
|
||||||
/* Skip previous separator */
|
|
||||||
p = p - 2;
|
|
||||||
if (p < start)
|
|
||||||
p = start;
|
|
||||||
while (p > start && !G_IS_DIR_SEPARATOR (*p))
|
|
||||||
p--;
|
|
||||||
if (G_IS_DIR_SEPARATOR (*p))
|
|
||||||
*p++ = G_DIR_SEPARATOR;
|
|
||||||
memmove (p, q, strlen (q) + 1);
|
|
||||||
} else {
|
|
||||||
/* Skip until next separator */
|
|
||||||
while (*p != 0 && !G_IS_DIR_SEPARATOR (*p))
|
|
||||||
p++;
|
|
||||||
|
|
||||||
if (*p != 0) {
|
|
||||||
/* Canonicalize one separator */
|
|
||||||
*p++ = G_DIR_SEPARATOR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Remove additional separators */
|
|
||||||
q = p;
|
|
||||||
while (*q && G_IS_DIR_SEPARATOR (*q))
|
|
||||||
q++;
|
|
||||||
|
|
||||||
if (p != q)
|
|
||||||
memmove (p, q, strlen (q) + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Remove trailing slashes */
|
|
||||||
if (p > start && G_IS_DIR_SEPARATOR (*(p - 1)))
|
|
||||||
*(p - 1) = 0;
|
|
||||||
|
|
||||||
return canon;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Only the first monitor pipeline will be used */
|
/* Only the first monitor pipeline will be used */
|
||||||
GstStructure *
|
GstStructure *
|
||||||
gst_validate_setup_test_file (const gchar * testfile, gboolean use_fakesinks)
|
gst_validate_setup_test_file (const gchar * testfile, gboolean use_fakesinks)
|
||||||
|
@ -27,7 +27,7 @@ curversion = gst_version_minor * 100 + gst_version_micro
|
|||||||
libversion = '@0@.@1@.0'.format(soversion, curversion)
|
libversion = '@0@.@1@.0'.format(soversion, curversion)
|
||||||
osxversion = curversion + 1
|
osxversion = curversion + 1
|
||||||
|
|
||||||
glib_req = '>= 2.56.0'
|
glib_req = '>= 2.62.0'
|
||||||
|
|
||||||
if gst_version_is_stable
|
if gst_version_is_stable
|
||||||
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
||||||
|
@ -15,7 +15,7 @@ else
|
|||||||
gst_version_nano = 0
|
gst_version_nano = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
glib_req = '>= 2.56.0'
|
glib_req = '>= 2.62.0'
|
||||||
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
||||||
tizil_req = '>= 0.19.0'
|
tizil_req = '>= 0.19.0'
|
||||||
api_version = '1.0'
|
api_version = '1.0'
|
||||||
|
@ -25,37 +25,6 @@
|
|||||||
|
|
||||||
namespace gcs = google::cloud::storage;
|
namespace gcs = google::cloud::storage;
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2, 62, 0)
|
|
||||||
static inline gchar* g_date_time_format_iso8601(GDateTime* datetime) {
|
|
||||||
GString* outstr = NULL;
|
|
||||||
gchar* main_date = NULL;
|
|
||||||
gint64 offset;
|
|
||||||
|
|
||||||
// Main date and time.
|
|
||||||
main_date = g_date_time_format(datetime, "%Y-%m-%dT%H:%M:%S");
|
|
||||||
outstr = g_string_new(main_date);
|
|
||||||
g_free(main_date);
|
|
||||||
|
|
||||||
// Timezone. Format it as `%:::z` unless the offset is zero, in which case
|
|
||||||
// we can simply use `Z`.
|
|
||||||
offset = g_date_time_get_utc_offset(datetime);
|
|
||||||
|
|
||||||
if (offset == 0) {
|
|
||||||
g_string_append_c(outstr, 'Z');
|
|
||||||
} else {
|
|
||||||
gchar* time_zone = g_date_time_format(datetime, "%:::z");
|
|
||||||
g_string_append(outstr, time_zone);
|
|
||||||
g_free(time_zone);
|
|
||||||
}
|
|
||||||
|
|
||||||
return g_string_free(outstr, FALSE);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
std::unique_ptr<google::cloud::storage::Client> gst_gs_create_client(
|
std::unique_ptr<google::cloud::storage::Client> gst_gs_create_client(
|
||||||
const gchar* service_account_email,
|
const gchar* service_account_email,
|
||||||
const gchar* service_account_credentials,
|
const gchar* service_account_credentials,
|
||||||
|
@ -502,13 +502,7 @@ mpegts_base_steal_program (MpegTSBase * base, gint program_number)
|
|||||||
for (i = 0; i < base->programs->len; i++) {
|
for (i = 0; i < base->programs->len; i++) {
|
||||||
MpegTSBaseProgram *program = g_ptr_array_index (base->programs, i);
|
MpegTSBaseProgram *program = g_ptr_array_index (base->programs, i);
|
||||||
if (program->program_number == program_number) {
|
if (program->program_number == program_number) {
|
||||||
#if GLIB_CHECK_VERSION(2, 58, 0)
|
|
||||||
return g_ptr_array_steal_index (base->programs, i);
|
return g_ptr_array_steal_index (base->programs, i);
|
||||||
#else
|
|
||||||
program->recycle = TRUE;
|
|
||||||
g_ptr_array_remove_index (base->programs, i);
|
|
||||||
return program;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3338,21 +3338,6 @@ compare_index_table_segment (MXFIndexTableSegment * sa,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2, 62, 0)
|
|
||||||
static gboolean
|
|
||||||
has_table_segment (GArray * segments, MXFIndexTableSegment * target)
|
|
||||||
{
|
|
||||||
guint i;
|
|
||||||
for (i = 0; i < segments->len; i++) {
|
|
||||||
MXFIndexTableSegment *cand =
|
|
||||||
&g_array_index (segments, MXFIndexTableSegment, i);
|
|
||||||
if (compare_index_table_segment (cand, target) == 0)
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static GstFlowReturn
|
static GstFlowReturn
|
||||||
gst_mxf_demux_handle_index_table_segment (GstMXFDemux * demux, GstMXFKLV * klv)
|
gst_mxf_demux_handle_index_table_segment (GstMXFDemux * demux, GstMXFKLV * klv)
|
||||||
{
|
{
|
||||||
@ -3392,12 +3377,8 @@ gst_mxf_demux_handle_index_table_segment (GstMXFDemux * demux, GstMXFKLV * klv)
|
|||||||
}
|
}
|
||||||
for (tmp = demux->index_tables; tmp; tmp = tmp->next) {
|
for (tmp = demux->index_tables; tmp; tmp = tmp->next) {
|
||||||
GstMXFDemuxIndexTable *table = (GstMXFDemuxIndexTable *) tmp->data;
|
GstMXFDemuxIndexTable *table = (GstMXFDemuxIndexTable *) tmp->data;
|
||||||
#if !GLIB_CHECK_VERSION (2, 62, 0)
|
|
||||||
if (has_table_segment (table->segments, segment)) {
|
|
||||||
#else
|
|
||||||
if (g_array_binary_search (table->segments, segment,
|
if (g_array_binary_search (table->segments, segment,
|
||||||
(GCompareFunc) compare_index_table_segment, NULL)) {
|
(GCompareFunc) compare_index_table_segment, NULL)) {
|
||||||
#endif
|
|
||||||
GST_DEBUG_OBJECT (demux, "Already handled");
|
GST_DEBUG_OBJECT (demux, "Already handled");
|
||||||
g_free (segment);
|
g_free (segment);
|
||||||
return GST_FLOW_OK;
|
return GST_FLOW_OK;
|
||||||
|
@ -17,7 +17,7 @@ endif
|
|||||||
gst_version_is_stable = gst_version_minor.is_even()
|
gst_version_is_stable = gst_version_minor.is_even()
|
||||||
gst_version_is_dev = gst_version_minor.is_odd() and gst_version_micro < 90
|
gst_version_is_dev = gst_version_minor.is_odd() and gst_version_micro < 90
|
||||||
|
|
||||||
glib_req = '>= 2.56.0'
|
glib_req = '>= 2.62.0'
|
||||||
orc_req = '>= 0.4.17'
|
orc_req = '>= 0.4.17'
|
||||||
|
|
||||||
if gst_version_is_stable
|
if gst_version_is_stable
|
||||||
|
@ -80,22 +80,6 @@ using namespace Microsoft::WRL;
|
|||||||
* D3D11_VIDEO_PROCESSOR_STREAM::ppFutureSurfaces
|
* D3D11_VIDEO_PROCESSOR_STREAM::ppFutureSurfaces
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* g_queue_clear_full is available since 2.60 */
|
|
||||||
#if !GLIB_CHECK_VERSION(2,60,0)
|
|
||||||
#define g_queue_clear_full gst_d3d11_deinterlace_g_queue_clear_full
|
|
||||||
static void
|
|
||||||
gst_d3d11_deinterlace_g_queue_clear_full (GQueue * queue,
|
|
||||||
GDestroyNotify free_func)
|
|
||||||
{
|
|
||||||
g_return_if_fail (queue != NULL);
|
|
||||||
|
|
||||||
if (free_func != NULL)
|
|
||||||
g_queue_foreach (queue, (GFunc) free_func, NULL);
|
|
||||||
|
|
||||||
g_queue_clear (queue);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
GST_D3D11_DEINTERLACE_METHOD_BLEND =
|
GST_D3D11_DEINTERLACE_METHOD_BLEND =
|
||||||
|
@ -24,34 +24,4 @@
|
|||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2, 60, 0)
|
|
||||||
#define g_queue_clear_full queue_clear_full
|
|
||||||
static inline void
|
|
||||||
queue_clear_full (GQueue * queue, GDestroyNotify free_func)
|
|
||||||
{
|
|
||||||
gpointer data;
|
|
||||||
|
|
||||||
while ((data = g_queue_pop_head (queue)) != NULL)
|
|
||||||
free_func (data);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2, 62, 0)
|
|
||||||
#define g_array_copy array_copy
|
|
||||||
static inline GArray *
|
|
||||||
array_copy (GArray *array)
|
|
||||||
{
|
|
||||||
GArray *new_array;
|
|
||||||
guint elt_size = g_array_get_element_size (array);
|
|
||||||
|
|
||||||
new_array = g_array_sized_new (FALSE, FALSE, elt_size, array->len);
|
|
||||||
|
|
||||||
g_array_set_size (new_array, array->len);
|
|
||||||
if (array->len > 0)
|
|
||||||
memcpy (new_array->data, array->data, array->len * elt_size);
|
|
||||||
|
|
||||||
return new_array;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
@ -1304,7 +1304,6 @@ error:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* NOTE: This changes the values of vectors if multiple iterations are needed! */
|
/* NOTE: This changes the values of vectors if multiple iterations are needed! */
|
||||||
#if GLIB_CHECK_VERSION(2, 59, 1)
|
|
||||||
static GstRTSPResult
|
static GstRTSPResult
|
||||||
writev_bytes (GOutputStream * stream, GOutputVector * vectors, gint n_vectors,
|
writev_bytes (GOutputStream * stream, GOutputVector * vectors, gint n_vectors,
|
||||||
gsize * bytes_written, gboolean block, GCancellable * cancellable)
|
gsize * bytes_written, gboolean block, GCancellable * cancellable)
|
||||||
@ -1373,31 +1372,6 @@ error:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
static GstRTSPResult
|
|
||||||
writev_bytes (GOutputStream * stream, GOutputVector * vectors, gint n_vectors,
|
|
||||||
gsize * bytes_written, gboolean block, GCancellable * cancellable)
|
|
||||||
{
|
|
||||||
gsize _bytes_written = 0;
|
|
||||||
guint written;
|
|
||||||
gint i;
|
|
||||||
GstRTSPResult res = GST_RTSP_OK;
|
|
||||||
|
|
||||||
for (i = 0; i < n_vectors; i++) {
|
|
||||||
written = 0;
|
|
||||||
res =
|
|
||||||
write_bytes (stream, vectors[i].buffer, &written, vectors[i].size,
|
|
||||||
block, cancellable);
|
|
||||||
_bytes_written += written;
|
|
||||||
if (G_UNLIKELY (res != GST_RTSP_OK))
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
*bytes_written = _bytes_written;
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
fill_raw_bytes (GstRTSPConnection * conn, guint8 * buffer, guint size,
|
fill_raw_bytes (GstRTSPConnection * conn, guint8 * buffer, guint size,
|
||||||
|
@ -2281,18 +2281,6 @@ gst_video_decoder_get_buffer_info_at_offset (GstVideoDecoder *
|
|||||||
GST_TIME_ARGS (*pts), GST_TIME_ARGS (*dts), *flags, got_offset, offset);
|
GST_TIME_ARGS (*pts), GST_TIME_ARGS (*dts), *flags, got_offset, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2, 60, 0)
|
|
||||||
#define g_queue_clear_full queue_clear_full
|
|
||||||
static void
|
|
||||||
queue_clear_full (GQueue * queue, GDestroyNotify free_func)
|
|
||||||
{
|
|
||||||
gpointer data;
|
|
||||||
|
|
||||||
while ((data = g_queue_pop_head (queue)) != NULL)
|
|
||||||
free_func (data);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_video_decoder_clear_queues (GstVideoDecoder * dec)
|
gst_video_decoder_clear_queues (GstVideoDecoder * dec)
|
||||||
{
|
{
|
||||||
|
@ -444,18 +444,6 @@ _flush_events (GstPad * pad, GList * events)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2, 60, 0)
|
|
||||||
#define g_queue_clear_full queue_clear_full
|
|
||||||
static void
|
|
||||||
queue_clear_full (GQueue * queue, GDestroyNotify free_func)
|
|
||||||
{
|
|
||||||
gpointer data;
|
|
||||||
|
|
||||||
while ((data = g_queue_pop_head (queue)) != NULL)
|
|
||||||
free_func (data);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_video_encoder_reset (GstVideoEncoder * encoder, gboolean hard)
|
gst_video_encoder_reset (GstVideoEncoder * encoder, gboolean hard)
|
||||||
{
|
{
|
||||||
|
@ -27,7 +27,7 @@ else
|
|||||||
have_objc = false
|
have_objc = false
|
||||||
endif
|
endif
|
||||||
|
|
||||||
glib_req = '>= 2.56.0'
|
glib_req = '>= 2.62.0'
|
||||||
orc_req = '>= 0.4.24'
|
orc_req = '>= 0.4.24'
|
||||||
|
|
||||||
if gst_version_is_stable
|
if gst_version_is_stable
|
||||||
|
@ -469,11 +469,6 @@ live_switch_push (gint pts, gint rate, GstCaps * caps)
|
|||||||
gst_caps_unref (desired);
|
gst_caps_unref (desired);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2,58,0)
|
|
||||||
#define G_APPROX_VALUE(a, b, epsilon) \
|
|
||||||
(((a) > (b) ? (a) - (b) : (b) - (a)) < (epsilon))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
GST_START_TEST (test_live_switch)
|
GST_START_TEST (test_live_switch)
|
||||||
{
|
{
|
||||||
GstElement *audioresample;
|
GstElement *audioresample;
|
||||||
|
@ -383,34 +383,6 @@ GstStreamType gst_stream_type_from_hls_type (GstHLSRenditionStreamType
|
|||||||
GstStreamType gst_hls_get_stream_type_from_structure (GstStructure *structure);
|
GstStreamType gst_hls_get_stream_type_from_structure (GstStructure *structure);
|
||||||
GstStreamType gst_hls_get_stream_type_from_caps (GstCaps *caps);
|
GstStreamType gst_hls_get_stream_type_from_caps (GstCaps *caps);
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2, 62, 0)
|
|
||||||
static inline gchar* g_date_time_format_iso8601(GDateTime* datetime) {
|
|
||||||
GString* outstr = NULL;
|
|
||||||
gchar* main_date = NULL;
|
|
||||||
gint64 offset;
|
|
||||||
|
|
||||||
// Main date and time.
|
|
||||||
main_date = g_date_time_format(datetime, "%Y-%m-%dT%H:%M:%S");
|
|
||||||
outstr = g_string_new(main_date);
|
|
||||||
g_free(main_date);
|
|
||||||
|
|
||||||
// Timezone. Format it as `%:::z` unless the offset is zero, in which case
|
|
||||||
// we can simply use `Z`.
|
|
||||||
offset = g_date_time_get_utc_offset(datetime);
|
|
||||||
|
|
||||||
if (offset == 0) {
|
|
||||||
g_string_append_c(outstr, 'Z');
|
|
||||||
} else {
|
|
||||||
gchar* time_zone = g_date_time_format(datetime, "%:::z");
|
|
||||||
g_string_append(outstr, time_zone);
|
|
||||||
g_free(time_zone);
|
|
||||||
}
|
|
||||||
|
|
||||||
return g_string_free(outstr, FALSE);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __M3U8_H__ */
|
#endif /* __M3U8_H__ */
|
||||||
|
@ -279,18 +279,6 @@ enum
|
|||||||
#define GST_BUFFER_IS_RETRANSMISSION(buffer) \
|
#define GST_BUFFER_IS_RETRANSMISSION(buffer) \
|
||||||
GST_BUFFER_FLAG_IS_SET (buffer, GST_RTP_BUFFER_FLAG_RETRANSMISSION)
|
GST_BUFFER_FLAG_IS_SET (buffer, GST_RTP_BUFFER_FLAG_RETRANSMISSION)
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2, 60, 0)
|
|
||||||
#define g_queue_clear_full queue_clear_full
|
|
||||||
static void
|
|
||||||
queue_clear_full (GQueue * queue, GDestroyNotify free_func)
|
|
||||||
{
|
|
||||||
gpointer data;
|
|
||||||
|
|
||||||
while ((data = g_queue_pop_head (queue)) != NULL)
|
|
||||||
free_func (data);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct _GstRtpJitterBufferPrivate
|
struct _GstRtpJitterBufferPrivate
|
||||||
{
|
{
|
||||||
GstPad *sinkpad, *srcpad;
|
GstPad *sinkpad, *srcpad;
|
||||||
|
@ -70,18 +70,6 @@
|
|||||||
|
|
||||||
#include "gstrtpst2022-1-fecenc.h"
|
#include "gstrtpst2022-1-fecenc.h"
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2, 60, 0)
|
|
||||||
#define g_queue_clear_full queue_clear_full
|
|
||||||
static void
|
|
||||||
queue_clear_full (GQueue * queue, GDestroyNotify free_func)
|
|
||||||
{
|
|
||||||
gpointer data;
|
|
||||||
|
|
||||||
while ((data = g_queue_pop_head (queue)) != NULL)
|
|
||||||
free_func (data);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_STATIC (gst_rtpst_2022_1_fecenc_debug);
|
GST_DEBUG_CATEGORY_STATIC (gst_rtpst_2022_1_fecenc_debug);
|
||||||
#define GST_CAT_DEFAULT gst_rtpst_2022_1_fecenc_debug
|
#define GST_CAT_DEFAULT gst_rtpst_2022_1_fecenc_debug
|
||||||
|
|
||||||
|
@ -32,12 +32,6 @@ udp_element_init (GstPlugin * plugin)
|
|||||||
{
|
{
|
||||||
static gsize res = FALSE;
|
static gsize res = FALSE;
|
||||||
if (g_once_init_enter (&res)) {
|
if (g_once_init_enter (&res)) {
|
||||||
/* not using GLIB_CHECK_VERSION on purpose, run-time version matters */
|
|
||||||
if (glib_check_version (2, 36, 0) != NULL) {
|
|
||||||
GST_WARNING ("Your GLib version is < 2.36, UDP multicasting support may "
|
|
||||||
"be broken, see https://bugzilla.gnome.org/show_bug.cgi?id=688378");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* register info of the netaddress metadata so that we can use it from
|
/* register info of the netaddress metadata so that we can use it from
|
||||||
* multiple threads right away. Note that the plugin loading is always
|
* multiple threads right away. Note that the plugin loading is always
|
||||||
* serialized */
|
* serialized */
|
||||||
|
@ -19,7 +19,7 @@ gst_version_is_dev = gst_version_minor.is_odd() and gst_version_micro < 90
|
|||||||
|
|
||||||
have_cxx = add_languages('cpp', native: false, required: false)
|
have_cxx = add_languages('cpp', native: false, required: false)
|
||||||
|
|
||||||
glib_req = '>= 2.56.0'
|
glib_req = '>= 2.62.0'
|
||||||
orc_req = '>= 0.4.17'
|
orc_req = '>= 0.4.17'
|
||||||
|
|
||||||
if gst_version_is_stable
|
if gst_version_is_stable
|
||||||
|
@ -19,7 +19,7 @@ gst_version_is_dev = gst_version_minor.is_odd() and gst_version_micro < 90
|
|||||||
|
|
||||||
have_cxx = add_languages('cpp', native: false, required: false)
|
have_cxx = add_languages('cpp', native: false, required: false)
|
||||||
|
|
||||||
glib_req = '>= 2.56.0'
|
glib_req = '>= 2.62.0'
|
||||||
|
|
||||||
if gst_version_is_stable
|
if gst_version_is_stable
|
||||||
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
||||||
|
@ -16,7 +16,7 @@ endif
|
|||||||
gst_version_is_stable = gst_version_minor.is_even()
|
gst_version_is_stable = gst_version_minor.is_even()
|
||||||
gst_version_is_dev = gst_version_minor.is_odd() and gst_version_micro < 90
|
gst_version_is_dev = gst_version_minor.is_odd() and gst_version_micro < 90
|
||||||
|
|
||||||
glib_req = '>= 2.56.0'
|
glib_req = '>= 2.62.0'
|
||||||
|
|
||||||
if gst_version_is_stable
|
if gst_version_is_stable
|
||||||
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)
|
||||||
|
@ -373,18 +373,6 @@ gst_device_monitor_dispose (GObject * object)
|
|||||||
G_OBJECT_CLASS (gst_device_monitor_parent_class)->dispose (object);
|
G_OBJECT_CLASS (gst_device_monitor_parent_class)->dispose (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !GLIB_CHECK_VERSION(2, 60, 0)
|
|
||||||
#define g_queue_clear_full queue_clear_full
|
|
||||||
static void
|
|
||||||
queue_clear_full (GQueue * queue, GDestroyNotify free_func)
|
|
||||||
{
|
|
||||||
gpointer data;
|
|
||||||
|
|
||||||
while ((data = g_queue_pop_head (queue)) != NULL)
|
|
||||||
free_func (data);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gst_device_monitor_get_devices:
|
* gst_device_monitor_get_devices:
|
||||||
* @monitor: A #GstDeviceProvider
|
* @monitor: A #GstDeviceProvider
|
||||||
|
@ -521,8 +521,10 @@ configinc = include_directories('.')
|
|||||||
libsinc = include_directories('libs')
|
libsinc = include_directories('libs')
|
||||||
privinc = include_directories('gst')
|
privinc = include_directories('gst')
|
||||||
|
|
||||||
|
glib_req = '>= 2.62.0'
|
||||||
|
|
||||||
# Find dependencies
|
# Find dependencies
|
||||||
glib_dep = dependency('glib-2.0', version : '>=2.56.0',
|
glib_dep = dependency('glib-2.0', version: glib_req,
|
||||||
fallback: ['glib', 'libglib_dep'])
|
fallback: ['glib', 'libglib_dep'])
|
||||||
gobject_dep = dependency('gobject-2.0')
|
gobject_dep = dependency('gobject-2.0')
|
||||||
gmodule_dep = dependency('gmodule-no-export-2.0')
|
gmodule_dep = dependency('gmodule-no-export-2.0')
|
||||||
|
@ -477,12 +477,7 @@ static const struct URITest url_presenting_tests[] = {
|
|||||||
{.uri = {"scheme", "user:pass", "host", 1234, "/path/to/dir",
|
{.uri = {"scheme", "user:pass", "host", 1234, "/path/to/dir",
|
||||||
{{"query", NULL}, {"key", "value"}}, "fragment"},
|
{{"query", NULL}, {"key", "value"}}, "fragment"},
|
||||||
.str =
|
.str =
|
||||||
#if GLIB_CHECK_VERSION(2, 59, 0)
|
|
||||||
"scheme://user:pass@host:1234/path/to/dir?key=value&query#fragment"},
|
"scheme://user:pass@host:1234/path/to/dir?key=value&query#fragment"},
|
||||||
#else
|
|
||||||
"scheme://user:pass@host:1234/path/to/dir?query&key=value#fragment"},
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* IPv6 literal should render in square brackets */
|
/* IPv6 literal should render in square brackets */
|
||||||
{.uri = {"scheme", "user:pass", "12:34:56:78:9a:bc:de:f0", 1234,
|
{.uri = {"scheme", "user:pass", "12:34:56:78:9a:bc:de:f0", 1234,
|
||||||
"/path/to/dir", {{"query", "value"}}, "fragment"},
|
"/path/to/dir", {{"query", "value"}}, "fragment"},
|
||||||
@ -1044,24 +1039,14 @@ GST_START_TEST (test_url_get_set)
|
|||||||
|
|
||||||
fail_unless (gst_uri_set_query_value (url, "key", "value"));
|
fail_unless (gst_uri_set_query_value (url, "key", "value"));
|
||||||
tmp_str = gst_uri_to_string (url);
|
tmp_str = gst_uri_to_string (url);
|
||||||
#if GLIB_CHECK_VERSION(2, 59, 0)
|
|
||||||
fail_unless_equals_string (tmp_str,
|
fail_unless_equals_string (tmp_str,
|
||||||
"//example.com/path/to/file/there/segment?key=value&query#fragment");
|
"//example.com/path/to/file/there/segment?key=value&query#fragment");
|
||||||
#else
|
|
||||||
fail_unless_equals_string (tmp_str,
|
|
||||||
"//example.com/path/to/file/there/segment?query&key=value#fragment");
|
|
||||||
#endif
|
|
||||||
g_free (tmp_str);
|
g_free (tmp_str);
|
||||||
|
|
||||||
fail_unless (gst_uri_set_query_value (url, "key", NULL));
|
fail_unless (gst_uri_set_query_value (url, "key", NULL));
|
||||||
tmp_str = gst_uri_to_string (url);
|
tmp_str = gst_uri_to_string (url);
|
||||||
#if GLIB_CHECK_VERSION(2, 59, 0)
|
|
||||||
fail_unless_equals_string (tmp_str,
|
fail_unless_equals_string (tmp_str,
|
||||||
"//example.com/path/to/file/there/segment?key&query#fragment");
|
"//example.com/path/to/file/there/segment?key&query#fragment");
|
||||||
#else
|
|
||||||
fail_unless_equals_string (tmp_str,
|
|
||||||
"//example.com/path/to/file/there/segment?query&key#fragment");
|
|
||||||
#endif
|
|
||||||
g_free (tmp_str);
|
g_free (tmp_str);
|
||||||
|
|
||||||
fail_unless (!gst_uri_set_query_value (NULL, "key", "value"));
|
fail_unless (!gst_uri_set_query_value (NULL, "key", "value"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user