gst/sdp/gstsdpdemux.c: Use new function in -base to get the default clock-rate.

Original commit message from CVS:
* gst/sdp/gstsdpdemux.c: (gst_sdp_demux_media_to_caps):
Use new function in -base to get the default clock-rate.
This commit is contained in:
Wim Taymans 2007-10-01 14:01:40 +00:00
parent a2a6ea8645
commit faa4937cdc
2 changed files with 22 additions and 46 deletions

View file

@ -1,3 +1,8 @@
2007-10-01 Wim Taymans <wim.taymans@gmail.com>
* gst/sdp/gstsdpdemux.c: (gst_sdp_demux_media_to_caps):
Use new function in -base to get the default clock-rate.
2007-10-01 Wim Taymans <wim.taymans@gmail.com>
* configure.ac:

View file

@ -60,6 +60,7 @@
#include <stdio.h>
#include <stdarg.h>
#include <gst/rtp/gstrtppayloads.h>
#include <gst/sdp/gstsdpmessage.h>
#include "gstsdpdemux.h"
@ -450,51 +451,6 @@ gst_sdp_demux_cleanup (GstSDPDemux * demux)
demux->numstreams = 0;
}
/* FIXME, this should go somewhere else, ideally
*/
static guint
get_default_rate_for_pt (gint pt, gchar * name, gchar * params)
{
switch (pt) {
case 0:
case 3:
case 4:
case 5:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 18:
return 8000;
case 16:
return 11025;
case 17:
return 22050;
case 6:
return 16000;
case 10:
case 11:
return 44100;
case 14:
case 25:
case 26:
case 28:
case 31:
case 32:
case 33:
case 34:
return 90000;
default:
{
if (g_str_has_prefix (name, "x-pn-real"))
return 1000;
return -1;
}
}
}
#define PARSE_INT(p, del, res) \
G_STMT_START { \
gchar *t = p; \
@ -622,7 +578,22 @@ gst_sdp_demux_media_to_caps (gint pt, const GstSDPMedia * media)
/* check if we have a rate, if not, we need to look up the rate from the
* default rates based on the payload types. */
if (rate == -1) {
rate = get_default_rate_for_pt (pt, name, params);
const GstRTPPayloadInfo *info;
if (GST_RTP_PAYLOAD_IS_DYNAMIC (pt)) {
/* dynamic types, use media and encoding_name */
tmp = g_ascii_strdown (media->media, -1);
info = gst_rtp_payload_info_for_name (tmp, name);
g_free (tmp);
} else {
/* static types, use payload type */
info = gst_rtp_payload_info_for_pt (pt);
}
if (info) {
if ((rate = info->clock_rate) == 0)
rate = -1;
}
/* we fail if we cannot find one */
if (rate == -1)
goto no_rate;