}
static void
+on_new_sender_ssrc (GObject * session, GObject * source, GstRTSPStream * stream)
+{
+ GST_INFO ("%p: new sender source %p", stream, source);
+#ifndef DUMP_STATS
+ {
+ GstStructure *stats;
+ g_object_get (source, "stats", &stats, NULL);
+ if (stats) {
+ dump_structure (stats);
+ gst_structure_free (stats);
+ }
+ }
+#endif
+}
+
+static void
+on_sender_ssrc_active (GObject * session, GObject * source,
+ GstRTSPStream * stream)
+{
+#ifndef DUMP_STATS
+ {
+ GstStructure *stats;
+ g_object_get (source, "stats", &stats, NULL);
+ if (stats) {
+ dump_structure (stats);
+ gst_structure_free (stats);
+ }
+ }
+#endif
+}
+
+static void
clear_tr_cache (GstRTSPStreamPrivate * priv, gboolean is_rtp)
{
if (is_rtp) {
g_signal_connect (priv->session, "on-timeout", (GCallback) on_timeout,
stream);
+ /* signal for sender ssrc */
+ g_signal_connect (priv->session, "on-new-sender-ssrc",
+ (GCallback) on_new_sender_ssrc, stream);
+ g_signal_connect (priv->session, "on-sender-ssrc-active",
+ (GCallback) on_sender_ssrc_active, stream);
+
for (i = 0; i < 2; i++) {
GstPad *teepad, *queuepad;
/* For the sender we create this bit of pipeline for both
gst_object_unref (pad);
gst_object_unref (selpad);
}
- gst_object_unref (bin);
priv->transport_sources =
g_list_prepend (priv->transport_sources, source);
}
}
+ gst_object_unref (bin);
+
/* fall through for the generic case */
}
case GST_RTSP_LOWER_TRANS_UDP: