media: allow NULL as the thread

Use the default context whan passing a NULL thread.
This commit is contained in:
Ognyan Tonchev 2014-04-12 05:53:15 +02:00 committed by Wim Taymans
parent adc3e8907e
commit de2a70bb10
2 changed files with 8 additions and 5 deletions

View file

@ -2157,9 +2157,9 @@ gst_rtsp_media_prepare (GstRTSPMedia * media, GstRTSPThread * thread)
GstBus *bus;
GSource *source;
GstRTSPMediaClass *klass;
GMainContext *context;
g_return_val_if_fail (GST_IS_RTSP_MEDIA (media), FALSE);
g_return_val_if_fail (GST_IS_RTSP_THREAD (thread), FALSE);
priv = media->priv;
@ -2206,6 +2206,8 @@ gst_rtsp_media_prepare (GstRTSPMedia * media, GstRTSPThread * thread)
priv->seekable = FALSE;
priv->buffering = FALSE;
priv->thread = thread;
context = (thread != NULL) ? (thread->context) : NULL;
/* we're preparing now */
gst_rtsp_media_set_status (media, GST_RTSP_MEDIA_STATUS_PREPARING);
@ -2218,7 +2220,7 @@ gst_rtsp_media_prepare (GstRTSPMedia * media, GstRTSPThread * thread)
g_source_set_callback (priv->source, (GSourceFunc) bus_message,
g_object_ref (media), (GDestroyNotify) watch_destroyed);
priv->id = g_source_attach (priv->source, thread->context);
priv->id = g_source_attach (priv->source, context);
/* add stuff to the bin */
gst_bin_add (GST_BIN (priv->pipeline), priv->rtpbin);
@ -2226,7 +2228,7 @@ gst_rtsp_media_prepare (GstRTSPMedia * media, GstRTSPThread * thread)
/* do remainder in context */
source = g_idle_source_new ();
g_source_set_callback (source, (GSourceFunc) start_prepare, media, NULL);
g_source_attach (source, thread->context);
g_source_attach (source, context);
g_source_unref (source);
wait_status:
@ -2248,7 +2250,8 @@ was_prepared:
{
GST_LOG ("media %p was prepared", media);
/* we are not going to use the giving thread, so stop it. */
gst_rtsp_thread_stop (thread);
if (thread)
gst_rtsp_thread_stop (thread);
g_rec_mutex_unlock (&priv->state_lock);
return TRUE;
}

View file

@ -317,7 +317,7 @@ GST_START_TEST (test_media_prepare_port_alloc_fail)
addrpool = gst_rtsp_address_pool_new ();
fail_unless (gst_rtsp_address_pool_add_range (addrpool, "192.168.1.1",
"192.168.1.1", 6000, 6001, 0));
"192.168.1.1", 6000, 6001, 0));
gst_rtsp_media_set_address_pool (media, addrpool);
thread = gst_rtsp_thread_pool_get_thread (pool,