diff --git a/tests/elements/test-vaapisink.c b/tests/elements/test-vaapisink.c index 5005755738..c09988eb6d 100644 --- a/tests/elements/test-vaapisink.c +++ b/tests/elements/test-vaapisink.c @@ -6,9 +6,7 @@ typedef struct _CustomData { GstElement *pipeline; GstElement *video_sink; - GstElement *src_sink; GMainLoop *loop; - GstPad *src_pad; gboolean orient_automatic; } AppData; @@ -26,7 +24,7 @@ send_rotate_event (AppData * data) tags[counter++ % G_N_ELEMENTS (tags)], NULL)); /* Send the event */ - res = gst_pad_push_event (data->src_pad, event); + res = gst_element_send_event (data->pipeline, event); g_print ("Sending event %p done: %d\n", event, res); } @@ -67,25 +65,24 @@ main (int argc, char *argv[]) AppData data; GstStateChangeReturn ret; GIOChannel *io_stdin; + GError *err = NULL; /* Initialize GStreamer */ gst_init (&argc, &argv); - /* Initialize our data structure */ - memset (&data, 0, sizeof (data)); - /* Print usage map */ g_print ("USAGE: Choose one of the following options, then press enter:\n" - " 'r' to send image-orientation tag event\n \ - 's' to set orient-automatic\n \ - 'Q' to quit\n"); + " 'r' to send image-orientation tag event\n" + " 's' to set orient-automatic\n" " 'Q' to quit\n"); - data.pipeline = - gst_parse_launch - ("videotestsrc name=src ! vaapisink name=vaapisink", NULL); - data.video_sink = gst_bin_get_by_name (GST_BIN (data.pipeline), "vaapisink"); - data.src_sink = gst_bin_get_by_name (GST_BIN (data.pipeline), "src"); - data.src_pad = gst_element_get_static_pad (data.src_sink, "src"); + data.pipeline = gst_parse_launch ("videotestsrc ! vaapisink name=sink", &err); + if (err) { + g_printerr ("failed to create pipeline: %s\n", err->message); + g_error_free (err); + return -1; + } + + data.video_sink = gst_bin_get_by_name (GST_BIN (data.pipeline), "sink"); /* Add a keyboard watch so we get notified of keystrokes */ io_stdin = g_io_channel_unix_new (fileno (stdin)); @@ -95,21 +92,21 @@ main (int argc, char *argv[]) ret = gst_element_set_state (data.pipeline, GST_STATE_PLAYING); if (ret == GST_STATE_CHANGE_FAILURE) { g_printerr ("Unable to set the pipeline to the playing state.\n"); - gst_object_unref (data.pipeline); - return -1; + goto bail; } /* Create a GLib Main Loop and set it to run */ data.loop = g_main_loop_new (NULL, FALSE); g_main_loop_run (data.loop); + gst_element_set_state (data.pipeline, GST_STATE_NULL); + +bail: /* Free resources */ g_main_loop_unref (data.loop); g_io_channel_unref (io_stdin); - gst_element_set_state (data.pipeline, GST_STATE_NULL); - if (data.video_sink != NULL) - gst_object_unref (data.video_sink); + gst_object_unref (data.video_sink); gst_object_unref (data.pipeline); return 0;