From: Tony Vankrunkelsven Date: Thu, 30 Sep 2010 11:13:06 +0000 (+0200) Subject: decode an RTP/H264 elementary stream without using SDP X-Git-Tag: 1.2.0-pre1~5192 X-Git-Url: https://git.sesse.net/?p=vlc;a=commitdiff_plain;h=39349f5c16dbf4d7dc7e474e7b596bd34c380730 decode an RTP/H264 elementary stream without using SDP Signed-off-by: RĂ©mi Denis-Courmont --- diff --git a/modules/access/rtp/rtp.c b/modules/access/rtp/rtp.c old mode 100644 new mode 100755 index 32e13b3c10..c896270c0f --- a/modules/access/rtp/rtp.c +++ b/modules/access/rtp/rtp.c @@ -431,7 +431,6 @@ static void codec_decode (demux_t *demux, void *data, block_t *block) block_Release (block); } - static void *stream_init (demux_t *demux, const char *name) { return stream_DemuxNew (demux, name, demux->out); @@ -454,6 +453,11 @@ static void stream_decode (demux_t *demux, void *data, block_t *block) (void)demux; } +static void *demux_init (demux_t *demux) +{ + return stream_init (demux, demux->psz_demux); +} + /* * Static payload types handler */ @@ -679,7 +683,22 @@ int rtp_autodetect (demux_t *demux, rtp_session_t *session, break; default: - return -1; + /* + * If the rtp payload type is unknown then check demux if it is specified + */ + if ((strcmp(demux->psz_demux, "h264") == 0) || (strcmp(demux->psz_demux, "ts") == 0)) + { + msg_Dbg (demux, "rtp autodetect specified demux=%s", demux->psz_demux); + pt.init = demux_init; + pt.destroy = stream_destroy; + pt.decode = stream_decode; + pt.frequency = 90000; + break; + } + else + { + return -1; + } } rtp_add_type (demux, session, &pt); return 0;