mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-20 04:56:24 +00:00
tests: Add a basic test for pipeline state change
Add some test utils to create a pipeline
This commit is contained in:
parent
7e121ff167
commit
b84ec5add6
3 changed files with 54 additions and 0 deletions
|
@ -19,6 +19,8 @@
|
||||||
* Boston, MA 02110-1301, USA.
|
* Boston, MA 02110-1301, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "test-utils.h"
|
||||||
|
|
||||||
#include <ges/ges.h>
|
#include <ges/ges.h>
|
||||||
#include <gst/check/gstcheck.h>
|
#include <gst/check/gstcheck.h>
|
||||||
|
|
||||||
|
@ -689,6 +691,39 @@ GST_START_TEST (test_ges_timeline_multiple_tracks)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_ges_timeline_pipeline_change_state)
|
||||||
|
{
|
||||||
|
GstState state;
|
||||||
|
GESAsset *asset;
|
||||||
|
GESLayer *layer;
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelinePipeline *pipeline;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
layer = ges_layer_new ();
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
fail_unless (ges_timeline_add_layer (timeline, layer));
|
||||||
|
|
||||||
|
pipeline = ges_test_create_pipeline (timeline);
|
||||||
|
|
||||||
|
asset = ges_asset_request (GES_TYPE_TEST_CLIP, NULL, NULL);
|
||||||
|
ges_layer_add_asset (layer, asset, 0, 0, 10, GES_TRACK_TYPE_UNKNOWN);
|
||||||
|
gst_object_unref (asset);
|
||||||
|
|
||||||
|
ASSERT_SET_STATE (GST_ELEMENT (pipeline), GST_STATE_PLAYING,
|
||||||
|
GST_STATE_CHANGE_ASYNC);
|
||||||
|
fail_unless (gst_element_get_state (GST_ELEMENT (pipeline), &state, NULL,
|
||||||
|
GST_CLOCK_TIME_NONE) == GST_STATE_CHANGE_SUCCESS);
|
||||||
|
fail_unless (state == GST_STATE_PLAYING);
|
||||||
|
ASSERT_SET_STATE (GST_ELEMENT (pipeline), GST_STATE_NULL,
|
||||||
|
GST_STATE_CHANGE_SUCCESS);
|
||||||
|
|
||||||
|
gst_object_unref (pipeline);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
static Suite *
|
static Suite *
|
||||||
ges_suite (void)
|
ges_suite (void)
|
||||||
{
|
{
|
||||||
|
@ -703,6 +738,7 @@ ges_suite (void)
|
||||||
tcase_add_test (tc_chain, test_ges_timeline_add_layer_first);
|
tcase_add_test (tc_chain, test_ges_timeline_add_layer_first);
|
||||||
tcase_add_test (tc_chain, test_ges_timeline_remove_track);
|
tcase_add_test (tc_chain, test_ges_timeline_remove_track);
|
||||||
tcase_add_test (tc_chain, test_ges_timeline_multiple_tracks);
|
tcase_add_test (tc_chain, test_ges_timeline_multiple_tracks);
|
||||||
|
tcase_add_test (tc_chain, test_ges_timeline_pipeline_change_state);
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,3 +84,19 @@ ges_test_file_uri (const gchar * filename)
|
||||||
|
|
||||||
return uri;
|
return uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GESTimelinePipeline *
|
||||||
|
ges_test_create_pipeline (GESTimeline * timeline)
|
||||||
|
{
|
||||||
|
GESTimelinePipeline *pipeline;
|
||||||
|
|
||||||
|
pipeline = ges_timeline_pipeline_new ();
|
||||||
|
fail_unless (ges_timeline_pipeline_add_timeline (pipeline, timeline));
|
||||||
|
|
||||||
|
g_object_set (pipeline, "audio-sink", gst_element_factory_make ("fakesink",
|
||||||
|
"test-audiofakesink"), "video-sink",
|
||||||
|
gst_element_factory_make ("fakesink", "test-videofakesink"), NULL);
|
||||||
|
|
||||||
|
return pipeline;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -23,7 +23,9 @@
|
||||||
#define _GES_TEST_UTILS
|
#define _GES_TEST_UTILS
|
||||||
|
|
||||||
#include <ges/ges.h>
|
#include <ges/ges.h>
|
||||||
|
#include <gst/check/gstcheck.h>
|
||||||
|
|
||||||
|
GESTimelinePipeline * ges_test_create_pipeline (GESTimeline *timeline);
|
||||||
gchar * ges_test_get_audio_only_uri (void);
|
gchar * ges_test_get_audio_only_uri (void);
|
||||||
gchar * ges_test_get_audio_video_uri (void);
|
gchar * ges_test_get_audio_video_uri (void);
|
||||||
gchar * ges_test_get_image_uri (void);
|
gchar * ges_test_get_image_uri (void);
|
||||||
|
|
Loading…
Reference in a new issue