summaryrefslogtreecommitdiffstats
path: root/gst/rtp/gstrtpmp4vpay.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2005-09-21 17:50:29 +0000
committerWim Taymans <wim.taymans@gmail.com>2005-09-21 17:50:29 +0000
commita297069e16a54bc5dc63ec903ec919b7f16bd632 (patch)
tree968aa948bf68a58f1a024b768baaeca1a8664989 /gst/rtp/gstrtpmp4vpay.c
parent9dd3929730bc3e2656eabfd8a8edfc7a61bb0176 (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/gstrtpmp4vpay.c')
-rw-r--r--gst/rtp/gstrtpmp4vpay.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/gst/rtp/gstrtpmp4vpay.c b/gst/rtp/gstrtpmp4vpay.c
index d9de14c0..5a5de12a 100644
--- a/gst/rtp/gstrtpmp4vpay.c
+++ b/gst/rtp/gstrtpmp4vpay.c
@@ -45,11 +45,11 @@ GST_STATIC_PAD_TEMPLATE ("src",
GST_STATIC_CAPS ("application/x-rtp, "
"media = (string) \"video\", "
"payload = (int) [ 96, 255 ], "
- "clock-rate = (int) [1, MAX ], "
- "encoding-name = (string) \"MP4V-ES\", " "profile-level-id=[1,MAX]"
- /* All optional parameters
+ "clock-rate = (int) [1, MAX ], " "encoding-name = (string) \"MP4V-ES\""
+ /* two string params
*
- * "config="
+ "profile-level-id = (string) [1,MAX]"
+ "config = (string) [1,MAX]"
*/
)
);
@@ -148,9 +148,22 @@ gst_rtpmp4venc_finalize (GObject * object)
static void
gst_rtpmp4venc_new_caps (GstRtpMP4VEnc * rtpmp4venc)
{
+ gchar *profile, *config;
+ GValue v = { 0 };
+
+ profile = g_strdup_printf ("%d", rtpmp4venc->profile);
+ g_value_init (&v, GST_TYPE_BUFFER);
+ gst_value_set_buffer (&v, rtpmp4venc->config);
+ config = gst_value_serialize (&v);
+
gst_basertppayload_set_outcaps (GST_BASE_RTP_PAYLOAD (rtpmp4venc),
- "profile-level-id", G_TYPE_INT, rtpmp4venc->profile,
- "config", GST_TYPE_BUFFER, rtpmp4venc->config, NULL);
+ "profile-level-id", G_TYPE_STRING, profile,
+ "config", G_TYPE_STRING, config, NULL);
+
+ g_value_unset (&v);
+
+ g_free (profile);
+ g_free (config);
}
static gboolean