# HG changeset patch # User nicodvb # Date 1108673757 0 # Node ID 4e83e075024fc45b99e555e710947e567c261e04 # Parent a76f1a68ed750e07f2c4416c7887298be0d2d90e added support for raw udp:// streaming diff -r a76f1a68ed75 -r 4e83e075024f libmpdemux/network.c --- a/libmpdemux/network.c Thu Feb 17 19:32:44 2005 +0000 +++ b/libmpdemux/network.c Thu Feb 17 20:55:57 2005 +0000 @@ -700,6 +700,11 @@ #endif } + if(!strcasecmp(url->protocol, "udp") ) { + *file_format = DEMUXER_TYPE_UNKNOWN; + return 0; + } + // Old, hacked RTP support, which works for MPEG Streams // RTP streams only: // Checking for RTP @@ -1185,7 +1190,7 @@ } static int -rtp_streaming_start( stream_t *stream ) { +rtp_streaming_start( stream_t *stream, int raw_udp ) { streaming_ctrl_t *streaming_ctrl; int fd; @@ -1199,7 +1204,10 @@ stream->fd = fd; } - streaming_ctrl->streaming_read = rtp_streaming_read; + if(raw_udp) + streaming_ctrl->streaming_read = nop_streaming_read; + else + streaming_ctrl->streaming_read = rtp_streaming_read; streaming_ctrl->streaming_seek = nop_streaming_seek; streaming_ctrl->prebuffer_size = 64*1024; // 64 KBytes streaming_ctrl->buffering = 0; @@ -1244,7 +1252,7 @@ mp_msg(MSGT_NETWORK,MSGL_ERR,"streaming_start : Closing socket %d failed %s\n",stream->fd,strerror(errno)); } stream->fd = -1; - ret = rtp_streaming_start( stream ); + ret = rtp_streaming_start( stream, 0); } else if( !strcasecmp( stream->streaming_ctrl->url->protocol, "pnm")) { @@ -1269,6 +1277,14 @@ return -1; #endif } + } else if(!strcasecmp( stream->streaming_ctrl->url->protocol, "udp")) { + stream->fd = -1; + ret = rtp_streaming_start(stream, 1); + if(ret<0) { + mp_msg(MSGT_NETWORK,MSGL_ERR,"rtp_streaming_start(udp) failed\n"); + return -1; + } + *demuxer_type = DEMUXER_TYPE_UNKNOWN; } else // For connection-oriented streams, we can usually determine the streaming type.