GST_END_TEST;
-GST_START_TEST (test_media_prepare)
+static void
+test_prepare_reusable (GstRTSPThreadPool * pool, const gchar * launch_line)
{
GstRTSPMediaFactory *factory;
GstRTSPMedia *media;
GstRTSPUrl *url;
- GstRTSPThreadPool *pool;
GstRTSPThread *thread;
- pool = gst_rtsp_thread_pool_new ();
-
- /* test non-reusable media first */
factory = gst_rtsp_media_factory_new ();
fail_if (gst_rtsp_media_factory_is_shared (factory));
fail_unless (gst_rtsp_url_parse ("rtsp://localhost:8554/test",
&url) == GST_RTSP_OK);
- gst_rtsp_media_factory_set_launch (factory,
- "( videotestsrc ! rtpvrawpay pt=96 name=pay0 )");
+ gst_rtsp_media_factory_set_launch (factory, launch_line);
media = gst_rtsp_media_factory_construct (factory, url);
fail_unless (GST_IS_RTSP_MEDIA (media));
fail_unless (gst_rtsp_media_n_streams (media) == 1);
+ g_object_set (G_OBJECT (media), "reusable", TRUE, NULL);
+
thread = gst_rtsp_thread_pool_get_thread (pool,
GST_RTSP_THREAD_TYPE_MEDIA, NULL);
fail_unless (gst_rtsp_media_prepare (media, thread));
thread = gst_rtsp_thread_pool_get_thread (pool,
GST_RTSP_THREAD_TYPE_MEDIA, NULL);
- fail_if (gst_rtsp_media_prepare (media, thread));
+ fail_unless (gst_rtsp_media_prepare (media, thread));
+ fail_unless (gst_rtsp_media_unprepare (media));
g_object_unref (media);
gst_rtsp_url_free (url);
g_object_unref (factory);
+}
- /* test reusable media */
+GST_START_TEST (test_media_prepare)
+{
+ GstRTSPMediaFactory *factory;
+ GstRTSPMedia *media;
+ GstRTSPUrl *url;
+ GstRTSPThreadPool *pool;
+ GstRTSPThread *thread;
+
+ pool = gst_rtsp_thread_pool_new ();
+
+ /* test non-reusable media first */
factory = gst_rtsp_media_factory_new ();
fail_if (gst_rtsp_media_factory_is_shared (factory));
fail_unless (gst_rtsp_url_parse ("rtsp://localhost:8554/test",
fail_unless (GST_IS_RTSP_MEDIA (media));
fail_unless (gst_rtsp_media_n_streams (media) == 1);
- g_object_set (G_OBJECT (media), "reusable", TRUE, NULL);
-
thread = gst_rtsp_thread_pool_get_thread (pool,
GST_RTSP_THREAD_TYPE_MEDIA, NULL);
fail_unless (gst_rtsp_media_prepare (media, thread));
thread = gst_rtsp_thread_pool_get_thread (pool,
GST_RTSP_THREAD_TYPE_MEDIA, NULL);
- fail_unless (gst_rtsp_media_prepare (media, thread));
- fail_unless (gst_rtsp_media_unprepare (media));
+ fail_if (gst_rtsp_media_prepare (media, thread));
g_object_unref (media);
gst_rtsp_url_free (url);
g_object_unref (factory);
+
+ /* test reusable media */
+ test_prepare_reusable (pool, "( videotestsrc ! rtpvrawpay pt=96 name=pay0 )");
+ test_prepare_reusable (pool,
+ "( videotestsrc is-live=true ! rtpvrawpay pt=96 name=pay0 )");
+
g_object_unref (pool);
}