comparison libpurple/media.c @ 26101:f06eb6e7d907

merge of '1cd039d2f04c877820b4097e462f26831c2d828e' and 'fd3a51d3135cc4ef80591280934a987837bd3a2e'
author Mike Ruprecht <maiku@soc.pidgin.im>
date Thu, 05 Feb 2009 11:47:40 +0000
parents dcff28a0415c 23038e1a1754
children f44b5f61d4b7
comparison
equal deleted inserted replaced
26099:dcff28a0415c 26101:f06eb6e7d907
2416 } 2416 }
2417 } 2417 }
2418 2418
2419 bin = gst_bin_new(NULL); 2419 bin = gst_bin_new(NULL);
2420 2420
2421 if (stream->sink != NULL)
2422 gst_bin_add(GST_BIN(GST_ELEMENT_PARENT(
2423 stream->sink)), bin);
2424
2425 name = g_strdup_printf("stream-sink_%s_%s", 2421 name = g_strdup_printf("stream-sink_%s_%s",
2426 session_id, participant); 2422 session_id, participant);
2427 sink = gst_element_factory_make("autovideosink", name); 2423 sink = gst_element_factory_make("autovideosink", name);
2428 2424
2429 gst_bin_add(GST_BIN(bin), sink); 2425 gst_bin_add(GST_BIN(bin), sink);
2487 gst_object_unref(pad); 2483 gst_object_unref(pad);
2488 2484
2489 gst_element_release_request_pad(GST_ELEMENT_PARENT(peer), peer); 2485 gst_element_release_request_pad(GST_ELEMENT_PARENT(peer), peer);
2490 gst_object_unref(peer); 2486 gst_object_unref(peer);
2491 2487
2488 gst_element_set_locked_state(sink, TRUE);
2492 gst_element_set_state(sink, GST_STATE_NULL); 2489 gst_element_set_state(sink, GST_STATE_NULL);
2493 2490
2494 gst_bin_remove(GST_BIN(GST_ELEMENT_PARENT(sink)), sink); 2491 gst_bin_remove(GST_BIN(GST_ELEMENT_PARENT(sink)), sink);
2495 session->sink = NULL; 2492 session->sink = NULL;
2496 return TRUE; 2493 return TRUE;
2527 } 2524 }
2528 2525
2529 peer = gst_pad_get_peer(pad); 2526 peer = gst_pad_get_peer(pad);
2530 gst_object_unref(pad); 2527 gst_object_unref(pad);
2531 gst_pad_set_blocked_async(peer, TRUE, dummy_block_cb, NULL); 2528 gst_pad_set_blocked_async(peer, TRUE, dummy_block_cb, NULL);
2529 gst_element_set_locked_state(sink, TRUE);
2532 gst_element_set_state(sink, GST_STATE_NULL); 2530 gst_element_set_state(sink, GST_STATE_NULL);
2533 gst_bin_remove(GST_BIN(parent), sink); 2531 gst_bin_remove(GST_BIN(parent), sink);
2534 2532
2535 /* Add fakesink */ 2533 /* Add fakesink */
2536 fakesink = gst_element_factory_make("fakesink", NULL); 2534 fakesink = gst_element_factory_make("fakesink", NULL);