Mercurial > mplayer.hg
annotate libmpdemux/stream_livedotcom.c @ 17464:6770c410f4f3
support libavcodec's new sc_factor parameter
Original idea from Michael; patch by me.
author | corey |
---|---|
date | Sun, 22 Jan 2006 21:02:14 +0000 |
parents | 1e8962ee910f |
children | 4928dd61f136 |
rev | line source |
---|---|
15585 | 1 |
2 #include "config.h" | |
3 | |
4 #ifdef MPLAYER_NETWORK | |
5 #include <unistd.h> | |
6 #include <stdlib.h> | |
7 #include <stdio.h> | |
8 #include <string.h> | |
9 | |
10 #include "stream.h" | |
11 #include "network.h" | |
12 #include "demuxer.h" | |
13 #include "help_mp.h" | |
14 | |
16572
56a5f69e9b35
"LIVE.COM Streaming Media" is now called "LIVE555 Streaming Media".
rsf
parents:
15777
diff
changeset
|
15 #ifdef STREAMING_LIVE555 |
15585 | 16 |
17 extern int network_bandwidth; | |
18 | |
19 static int _rtsp_streaming_seek(int fd, off_t pos, streaming_ctrl_t* streaming_ctrl) { | |
20 return -1; // For now, we don't handle RTSP stream seeking | |
21 } | |
22 | |
23 static int rtsp_streaming_start(stream_t* stream) { | |
24 stream->streaming_ctrl->streaming_seek = _rtsp_streaming_seek; | |
25 return 0; | |
26 } | |
27 | |
28 | |
29 static int open_live_rtsp_sip(stream_t *stream,int mode, void* opts, int* file_format) { | |
30 URL_t *url; | |
31 | |
32 stream->streaming_ctrl = streaming_ctrl_new(); | |
33 if( stream->streaming_ctrl==NULL ) { | |
34 return STREAM_ERROR; | |
35 } | |
36 stream->streaming_ctrl->bandwidth = network_bandwidth; | |
37 url = url_new(stream->url); | |
38 stream->streaming_ctrl->url = check4proxies(url); | |
39 //url_free(url); | |
40 | |
16572
56a5f69e9b35
"LIVE.COM Streaming Media" is now called "LIVE555 Streaming Media".
rsf
parents:
15777
diff
changeset
|
41 mp_msg(MSGT_OPEN, MSGL_INFO, "STREAM_LIVE555, URL: %s\n", stream->url); |
15585 | 42 |
43 if(rtsp_streaming_start(stream) < 0) { | |
44 mp_msg(MSGT_NETWORK,MSGL_ERR,"rtsp_streaming_start failed\n"); | |
45 goto fail; | |
46 } | |
47 | |
48 *file_format = DEMUXER_TYPE_RTP; | |
49 stream->type = STREAMTYPE_STREAM; | |
50 return STREAM_OK; | |
51 | |
52 fail: | |
53 streaming_ctrl_free( stream->streaming_ctrl ); | |
54 stream->streaming_ctrl = NULL; | |
55 return STREAM_ERROR; | |
56 } | |
57 | |
58 static int open_live_sdp(stream_t *stream,int mode, void* opts, int* file_format) { | |
17089 | 59 int f; |
15585 | 60 char *filename = stream->url; |
61 off_t len; | |
62 char* sdpDescription; | |
63 ssize_t numBytesRead; | |
64 | |
65 if(strncmp("sdp://",filename,6) == 0) { | |
66 filename += 6; | |
67 #if defined(__CYGWIN__) || defined(__MINGW32__) | |
68 f = open(filename,O_RDONLY|O_BINARY); | |
69 #else | |
70 f = open(filename,O_RDONLY); | |
71 #endif | |
72 if(f < 0) { | |
73 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_FileNotFound,filename); | |
74 return STREAM_ERROR; | |
75 } | |
76 | |
77 len=lseek(f,0,SEEK_END); | |
78 lseek(f,0,SEEK_SET); | |
79 if(len == -1) | |
80 return STREAM_ERROR; | |
81 | |
82 sdpDescription = (char*)malloc(len+1); | |
83 if(sdpDescription == NULL) return STREAM_ERROR; | |
84 numBytesRead = read(f, sdpDescription, len); | |
85 if(numBytesRead != len) { | |
86 free(sdpDescription); | |
87 return STREAM_ERROR; | |
88 } | |
89 sdpDescription[len] = '\0'; // to be safe | |
90 stream->priv = sdpDescription; | |
91 | |
92 stream->type = STREAMTYPE_SDP; | |
93 *file_format = DEMUXER_TYPE_RTP; | |
94 return STREAM_OK; | |
95 } | |
17089 | 96 return STREAM_UNSUPORTED; |
15585 | 97 } |
98 | |
99 | |
100 stream_info_t stream_info_rtsp_sip = { | |
15777 | 101 "standard RTSP and SIP", |
102 "RTSP and SIP", | |
15585 | 103 "Ross Finlayson", |
16572
56a5f69e9b35
"LIVE.COM Streaming Media" is now called "LIVE555 Streaming Media".
rsf
parents:
15777
diff
changeset
|
104 "Uses LIVE555 Streaming Media library.", |
15585 | 105 open_live_rtsp_sip, |
106 {"rtsp", "sip", NULL }, | |
107 NULL, | |
108 0 // Urls are an option string | |
109 }; | |
110 | |
111 stream_info_t stream_info_sdp = { | |
15777 | 112 "SDP stream descriptor", |
113 "SDP", | |
15585 | 114 "Ross Finlayson", |
16572
56a5f69e9b35
"LIVE.COM Streaming Media" is now called "LIVE555 Streaming Media".
rsf
parents:
15777
diff
changeset
|
115 "Uses LIVE555 Streaming Media library.", |
15585 | 116 open_live_sdp, |
117 {"sdp", NULL }, | |
118 NULL, | |
119 0 // Urls are an option string | |
120 }; | |
121 | |
122 #endif | |
123 #endif |