summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@ocrete.ca>2014-05-03 18:39:11 -0400
committerOlivier CrĂȘte <olivier.crete@ocrete.ca>2014-05-03 18:39:11 -0400
commit67538d45102afb55bcee200917aabc866117e04e (patch)
tree8c56e60536f3db23bb9b9538833fb12d62d7e76a
parenteb809dbae5074cf527b37f6bb7171ccd1d20682b (diff)
downloadfarstream-67538d45102afb55bcee200917aabc866117e04e.tar.gz
rtpsession: Since GStreamer 1.2, the real internal SSRC is on the incoming caps
-rw-r--r--gst/fsrtpconference/fs-rtp-session.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/gst/fsrtpconference/fs-rtp-session.c b/gst/fsrtpconference/fs-rtp-session.c
index 7aece92d..b40bab8e 100644
--- a/gst/fsrtpconference/fs-rtp-session.c
+++ b/gst/fsrtpconference/fs-rtp-session.c
@@ -889,9 +889,24 @@ fs_rtp_session_get_property (GObject *object,
FS_RTP_SESSION_UNLOCK (self);
break;
case PROP_SSRC:
- g_object_get_property (G_OBJECT (self->priv->rtpbin_internal_session),
- "internal-ssrc", value);
- break;
+ if (self->priv->rtpbin_send_rtp_sink)
+ {
+ GstCaps *caps = NULL;
+ g_object_get (self->priv->rtpbin_send_rtp_sink, "caps", &caps, NULL);
+ if (caps)
+ {
+ if (gst_caps_get_size (caps) > 0)
+ {
+ const GstStructure *s = gst_caps_get_structure (caps, 0);
+ guint ssrc;
+
+ if (gst_structure_get_uint (s, "ssrc", &ssrc))
+ g_value_set_uint (value, ssrc);
+ }
+ gst_caps_unref (caps);
+ }
+ break;
+ }
case PROP_TOS:
FS_RTP_SESSION_LOCK (self);
g_value_set_uint (value, self->priv->tos);