p_sys->max_misorder = var_CreateGetInteger (obj, "rtp-max-misorder");
p_sys->autodetect = true;
p_sys->framed_rtp = (tp == IPPROTO_TCP);
+ p_sys->dead = false;
demux->pf_demux = Demux;
demux->pf_control = Control;
static void stream_destroy (demux_t *demux, void *data)
{
if (data)
- stream_DemuxDelete ((stream_t *)data);
+ stream_Delete ((stream_t *)data);
(void)demux;
}
return codec_init (demux, &fmt);
}
+/* PT=3
+ * GSM
+ */
+static void *gsm_init (demux_t *demux)
+{
+ es_format_t fmt;
+
+ es_format_Init (&fmt, AUDIO_ES, VLC_FOURCC ('g', 's', 'm', ' '));
+ fmt.audio.i_rate = 8000;
+ fmt.audio.i_channels = 1;
+ return codec_init (demux, &fmt);
+}
+
/* PT=8
* PCMA: G.711 A-law (RFC3551)
*/
return codec_init (demux, &fmt);
}
+/* PT=12
+ * QCELP
+ */
+static void *qcelp_init (demux_t *demux)
+{
+ es_format_t fmt;
+
+ es_format_Init (&fmt, AUDIO_ES, VLC_FOURCC ('Q', 'c', 'l', 'p'));
+ fmt.audio.i_rate = 8000;
+ fmt.audio.i_channels = 1;
+ return codec_init (demux, &fmt);
+}
+
/* PT=14
* MPA: MPEG Audio (RFC2250, ยง3.4)
*/
pt.frequency = 8000;
break;
+ case 3:
+ msg_Dbg (demux, "detected GSM");
+ pt.init = gsm_init;
+ pt.frequency = 8000;
+ break;
+
case 8:
msg_Dbg (demux, "detected G.711 A-law");
pt.init = pcma_init;
pt.frequency = 44100;
break;
+ case 12:
+ msg_Dbg (demux, "detected QCELP");
+ pt.init = qcelp_init;
+ pt.frequency = 8000;
+ break;
+
case 14:
msg_Dbg (demux, "detected MPEG Audio");
pt.init = mpa_init;
*/
static int Demux (demux_t *demux)
{
- rtp_process (demux);
- return 1;
+ return rtp_process (demux) ? 0 : 1;
}