mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 02:01:12 +00:00
appsrc: Store strong references to the expected buffers in the tests
Otherwise the buffers might already be freed as they were only owned by the GstSample / appsrc and potentially don't survive until the pad probe, as observed in some CI runs of the tests. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1787>
This commit is contained in:
parent
b41c70aed5
commit
19b638debe
1 changed files with 8 additions and 7 deletions
|
@ -705,6 +705,7 @@ appsrc_pad_probe (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
|
|||
fail_unless_equals_uint64 (GST_BUFFER_DURATION (recvbuf),
|
||||
GST_BUFFER_DURATION (exp_buf));
|
||||
|
||||
gst_buffer_unref (exp_buf);
|
||||
g_list_free1 (*expected);
|
||||
*expected = next;
|
||||
}
|
||||
|
@ -817,7 +818,7 @@ GST_START_TEST (test_appsrc_period_with_custom_segment)
|
|||
sample = gst_sample_new (buffer, NULL, &segment, NULL);
|
||||
|
||||
expected = g_list_append (expected, gst_event_new_segment (&segment));
|
||||
expected = g_list_append (expected, buffer);
|
||||
expected = g_list_append (expected, gst_buffer_ref (buffer));
|
||||
|
||||
/* 1st sample includes buffer and segment */
|
||||
fail_unless (gst_app_src_push_sample (GST_APP_SRC (src), sample)
|
||||
|
@ -832,7 +833,7 @@ GST_START_TEST (test_appsrc_period_with_custom_segment)
|
|||
buffer = gst_buffer_new_and_alloc (4);
|
||||
GST_BUFFER_DTS (buffer) = GST_BUFFER_PTS (buffer) = j * GST_SECOND;
|
||||
GST_BUFFER_DURATION (buffer) = GST_SECOND;
|
||||
expected = g_list_append (expected, buffer);
|
||||
expected = g_list_append (expected, gst_buffer_ref (buffer));
|
||||
fail_unless (gst_app_src_push_buffer (GST_APP_SRC (src), buffer)
|
||||
== GST_FLOW_OK);
|
||||
}
|
||||
|
@ -869,7 +870,7 @@ GST_START_TEST (test_appsrc_period_with_custom_segment)
|
|||
sample = gst_sample_new (buffer, NULL, &segment, NULL);
|
||||
|
||||
expected = g_list_append (expected, gst_event_new_segment (&segment));
|
||||
expected = g_list_append (expected, buffer);
|
||||
expected = g_list_append (expected, gst_buffer_ref (buffer));
|
||||
|
||||
/* 1st sample includes buffer and segment */
|
||||
fail_unless (gst_app_src_push_sample (GST_APP_SRC (src), sample)
|
||||
|
@ -884,7 +885,7 @@ GST_START_TEST (test_appsrc_period_with_custom_segment)
|
|||
buffer = gst_buffer_new_and_alloc (4);
|
||||
GST_BUFFER_DTS (buffer) = GST_BUFFER_PTS (buffer) = j * GST_SECOND;
|
||||
GST_BUFFER_DURATION (buffer) = GST_SECOND;
|
||||
expected = g_list_append (expected, buffer);
|
||||
expected = g_list_append (expected, gst_buffer_ref (buffer));
|
||||
fail_unless (gst_app_src_push_buffer (GST_APP_SRC (src), buffer)
|
||||
== GST_FLOW_OK);
|
||||
}
|
||||
|
@ -999,7 +1000,7 @@ GST_START_TEST (test_appsrc_custom_segment_twice)
|
|||
} else {
|
||||
sample = gst_sample_new (buffer, NULL, &segment, NULL);
|
||||
expected = g_list_append (expected, gst_event_new_segment (&segment));
|
||||
expected = g_list_append (expected, buffer);
|
||||
expected = g_list_append (expected, gst_buffer_ref (buffer));
|
||||
}
|
||||
/* PUSH THE FIRST SAMPLE */
|
||||
fail_unless (gst_app_src_push_sample (GST_APP_SRC (src), sample)
|
||||
|
@ -1024,11 +1025,11 @@ GST_START_TEST (test_appsrc_custom_segment_twice)
|
|||
if (tc == 0 || tc == 1) {
|
||||
/* Test Case 0 or 1: Push a sample with duplicated segment */
|
||||
sample = gst_sample_new (buffer, NULL, &segment, NULL);
|
||||
expected = g_list_append (expected, buffer);
|
||||
expected = g_list_append (expected, gst_buffer_ref (buffer));
|
||||
} else {
|
||||
sample = gst_sample_new (buffer, NULL, &segment, NULL);
|
||||
expected = g_list_append (expected, gst_event_new_segment (&segment));
|
||||
expected = g_list_append (expected, buffer);
|
||||
expected = g_list_append (expected, gst_buffer_ref (buffer));
|
||||
}
|
||||
|
||||
fail_unless (gst_app_src_push_sample (GST_APP_SRC (src), sample)
|
||||
|
|
Loading…
Reference in a new issue