diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2005-09-21 17:50:29 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2005-09-21 17:50:29 +0000 |
commit | a297069e16a54bc5dc63ec903ec919b7f16bd632 (patch) | |
tree | 968aa948bf68a58f1a024b768baaeca1a8664989 /gst/rtp/gstrtpdec.c | |
parent | 9dd3929730bc3e2656eabfd8a8edfc7a61bb0176 (diff) |
gst/rtp/gstrtpamrdec.c: Handle multiple AMr packets per payload. Handle CRC and parse ILL/ILP.
Original commit message from CVS:
* gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_sink_setcaps),
(gst_rtpamrdec_chain):
Handle multiple AMr packets per payload. Handle CRC and
parse ILL/ILP.
* gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_setcaps):
Make caps params strings for easy SDP mapping.
* gst/rtp/gstrtpdec.c: (gst_rtpdec_init), (gst_rtpdec_getcaps):
Handle capsnego better.
* gst/rtp/gstrtpmp4vdec.c: (gst_rtpmp4vdec_setcaps):
* gst/rtp/gstrtpmp4venc.c: (gst_rtpmp4venc_new_caps):
Generate and parse config string in the caps.
Diffstat (limited to 'gst/rtp/gstrtpdec.c')
-rw-r--r-- | gst/rtp/gstrtpdec.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gst/rtp/gstrtpdec.c b/gst/rtp/gstrtpdec.c index a7e7f6b8..96089c47 100644 --- a/gst/rtp/gstrtpdec.c +++ b/gst/rtp/gstrtpdec.c @@ -74,6 +74,7 @@ GST_STATIC_PAD_TEMPLATE ("sinkrtcp", static void gst_rtpdec_class_init (gpointer g_class); static void gst_rtpdec_init (GstRTPDec * rtpdec); +static GstCaps *gst_rtpdec_getcaps (GstPad * pad); static GstFlowReturn gst_rtpdec_chain_rtp (GstPad * pad, GstBuffer * buffer); static GstFlowReturn gst_rtpdec_chain_rtcp (GstPad * pad, GstBuffer * buffer); @@ -153,6 +154,7 @@ gst_rtpdec_init (GstRTPDec * rtpdec) gst_pad_new_from_template (gst_static_pad_template_get (&gst_rtpdec_sink_rtp_template), "sinkrtp"); gst_element_add_pad (GST_ELEMENT (rtpdec), rtpdec->sink_rtp); + gst_pad_set_getcaps_function (rtpdec->sink_rtp, gst_rtpdec_getcaps); gst_pad_set_chain_function (rtpdec->sink_rtp, gst_rtpdec_chain_rtp); /* the input rtcp pad */ @@ -166,6 +168,7 @@ gst_rtpdec_init (GstRTPDec * rtpdec) rtpdec->src_rtp = gst_pad_new_from_template (gst_static_pad_template_get (&gst_rtpdec_src_rtp_template), "srcrtp"); + gst_pad_set_getcaps_function (rtpdec->src_rtp, gst_rtpdec_getcaps); gst_element_add_pad (GST_ELEMENT (rtpdec), rtpdec->src_rtp); /* the output rtcp pad */ @@ -175,6 +178,19 @@ gst_rtpdec_init (GstRTPDec * rtpdec) gst_element_add_pad (GST_ELEMENT (rtpdec), rtpdec->src_rtcp); } +static GstCaps * +gst_rtpdec_getcaps (GstPad * pad) +{ + GstRTPDec *src; + GstPad *other; + + src = GST_RTPDEC (GST_PAD_PARENT (pad)); + + other = pad == src->src_rtp ? src->sink_rtp : src->src_rtp; + + return gst_pad_peer_get_caps (other); +} + static GstFlowReturn gst_rtpdec_chain_rtp (GstPad * pad, GstBuffer * buffer) { |