static int rtp_stream_open (stream_t *stream, int mode, void *opts, int *file_format) { mp_msg (MSGT_OPEN, MSGL_INFO, "STREAM_RTP, URL: %s\n", stream->url); stream->streaming_ctrl = streaming_ctrl_new (); if (!stream->streaming_ctrl) return STREAM_ERROR; stream->streaming_ctrl->bandwidth = network_bandwidth; stream->streaming_ctrl->url = url_new(stream->url); if (stream->streaming_ctrl->url->port == 0) { mp_msg (MSGT_NETWORK, MSGL_ERR, "You must enter a port number for RTP streams!\n"); streaming_ctrl_free (stream->streaming_ctrl); stream->streaming_ctrl = NULL; return STREAM_UNSUPPORTED; } if (rtp_streaming_start (stream) < 0) { mp_msg (MSGT_NETWORK, MSGL_ERR, "rtp_streaming_start failed\n"); streaming_ctrl_free (stream->streaming_ctrl); stream->streaming_ctrl = NULL; return STREAM_UNSUPPORTED; } stream->type = STREAMTYPE_STREAM; fixup_network_stream_cache (stream); return STREAM_OK; }
static int fixup_open(stream_t *stream,int seekable) { HTTP_header_t *http_hdr = stream->streaming_ctrl->data; int is_icy = http_hdr && http_get_field(http_hdr, "Icy-MetaInt"); int is_ultravox = strcasecmp(stream->streaming_ctrl->url->protocol, "unsv") == 0; stream->type = STREAMTYPE_STREAM; if(!is_icy && !is_ultravox && seekable) { stream->flags |= MP_STREAM_SEEK; stream->seek = http_seek; } stream->streaming_ctrl->bandwidth = network_bandwidth; if ((!is_icy && !is_ultravox) || scast_streaming_start(stream)) if(nop_streaming_start( stream )) { mp_msg(MSGT_NETWORK,MSGL_ERR,"nop_streaming_start failed\n"); if (stream->fd >= 0) closesocket(stream->fd); stream->fd = -1; streaming_ctrl_free(stream->streaming_ctrl); stream->streaming_ctrl = NULL; return STREAM_UNSUPPORTED; } fixup_network_stream_cache(stream); return STREAM_OK; }
static int rtsp_streaming_open (stream_t *stream, int mode, void *opts, int *file_format) { URL_t *url; mp_msg (MSGT_OPEN, MSGL_V, "STREAM_RTSP, URL: %s\n", stream->url); stream->streaming_ctrl = streaming_ctrl_new (); if (!stream->streaming_ctrl) return STREAM_ERROR; stream->streaming_ctrl->bandwidth = network_bandwidth; url = url_new (stream->url); stream->streaming_ctrl->url = check4proxies (url); stream->fd = -1; index_mode = -1; /* prevent most RTSP streams from locking due to -idx */ if (rtsp_streaming_start (stream) < 0) { streaming_ctrl_free (stream->streaming_ctrl); stream->streaming_ctrl = NULL; return STREAM_UNSUPPORTED; } fixup_network_stream_cache (stream); stream->type = STREAMTYPE_STREAM; stream->close = rtsp_streaming_close; return STREAM_OK; }
static int open_s(stream_t *stream,int mode, void* opts, int* file_format) { URL_t *url; stream->streaming_ctrl = streaming_ctrl_new(); if( stream->streaming_ctrl==NULL ) { return STREAM_ERROR; } stream->streaming_ctrl->bandwidth = network_bandwidth; url = url_new(stream->url); stream->streaming_ctrl->url = check4proxies(url); url_free(url); mp_msg(MSGT_OPEN, MSGL_INFO, MSGTR_MPDEMUX_ASF_InfoStreamASFURL, stream->url); if((!strncmp(stream->url, "http", 4)) && (*file_format!=DEMUXER_TYPE_ASF && *file_format!=DEMUXER_TYPE_UNKNOWN)) { streaming_ctrl_free(stream->streaming_ctrl); stream->streaming_ctrl = NULL; return STREAM_UNSUPPORTED; } if(asf_streaming_start(stream, file_format) < 0) { mp_msg(MSGT_OPEN, MSGL_ERR, MSGTR_MPDEMUX_ASF_StreamingFailed); streaming_ctrl_free(stream->streaming_ctrl); stream->streaming_ctrl = NULL; return STREAM_UNSUPPORTED; } if (*file_format != DEMUXER_TYPE_PLAYLIST) *file_format = DEMUXER_TYPE_ASF; stream->type = STREAMTYPE_STREAM; fixup_network_stream_cache(stream); return STREAM_OK; }