diff options
author | Olivier CrĂȘte <olivier.crete@ocrete.ca> | 2014-05-03 18:39:11 -0400 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@ocrete.ca> | 2014-05-03 18:39:11 -0400 |
commit | 67538d45102afb55bcee200917aabc866117e04e (patch) | |
tree | 8c56e60536f3db23bb9b9538833fb12d62d7e76a | |
parent | eb809dbae5074cf527b37f6bb7171ccd1d20682b (diff) | |
download | farstream-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.c | 21 |
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); |