Mercurial > mplayer.hg
annotate stream/stream_live555.c @ 36084:64825e4a3fed
Remove pointless code.
The URL dialog widget will be destroyed after a selection has been made,
and urlEntries will be freed and rebuilt every time the URL dialog
widget is created (newly). So it makes no sense to prepend any data to
the GList that never will be used.
author | ib |
---|---|
date | Mon, 29 Apr 2013 11:21:23 +0000 |
parents | 3389262720da |
children |
rev | line source |
---|---|
30426
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
1 /* |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
2 * This file is part of MPlayer. |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
3 * |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
4 * MPlayer is free software; you can redistribute it and/or modify |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
6 * the Free Software Foundation; either version 2 of the License, or |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
7 * (at your option) any later version. |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
8 * |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
9 * MPlayer is distributed in the hope that it will be useful, |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
12 * GNU General Public License for more details. |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
13 * |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
14 * You should have received a copy of the GNU General Public License along |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
29889
diff
changeset
|
17 */ |
27167
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
18 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
19 #include "config.h" |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
20 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
21 #include <unistd.h> |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
22 #include <stdlib.h> |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
23 #include <stdio.h> |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
24 #include <string.h> |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
25 |
34174
a93891202051
Add missing mp_msg.h #includes, remove some unnecessary ones.
diego
parents:
31427
diff
changeset
|
26 #include "mp_msg.h" |
27167
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
27 #include "stream.h" |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
28 #include "network.h" |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
29 #include "libmpdemux/demuxer.h" |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
30 #include "help_mp.h" |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
31 |
35885
3389262720da
Fix previous commit, off_t must be replaced by int64_t
reimar
parents:
35881
diff
changeset
|
32 static int _rtsp_streaming_seek(int fd, int64_t pos, streaming_ctrl_t* streaming_ctrl) { |
27167
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
33 return -1; // For now, we don't handle RTSP stream seeking |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
34 } |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
35 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
36 static int rtsp_streaming_start(stream_t* stream) { |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
37 stream->streaming_ctrl->streaming_seek = _rtsp_streaming_seek; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
38 return 0; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
39 } |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
40 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
41 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
42 static int open_live_rtsp_sip(stream_t *stream,int mode, void* opts, int* file_format) { |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
43 stream->streaming_ctrl = streaming_ctrl_new(); |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
44 if( stream->streaming_ctrl==NULL ) { |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
45 return STREAM_ERROR; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
46 } |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
47 stream->streaming_ctrl->bandwidth = network_bandwidth; |
35301
8f6d3f8ffa61
Add url_new_with_proxy function to reduce code duplication and memleaks.
reimar
parents:
35295
diff
changeset
|
48 stream->streaming_ctrl->url = url_new_with_proxy(stream->url); |
27167
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
49 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
50 mp_msg(MSGT_OPEN, MSGL_INFO, "STREAM_LIVE555, URL: %s\n", stream->url); |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
51 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
52 if(rtsp_streaming_start(stream) < 0) { |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
53 mp_msg(MSGT_NETWORK,MSGL_ERR,"rtsp_streaming_start failed\n"); |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
54 goto fail; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
55 } |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
56 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
57 *file_format = DEMUXER_TYPE_RTP; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
58 stream->type = STREAMTYPE_STREAM; |
29889 | 59 stream->flags = STREAM_NON_CACHEABLE; |
27167
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
60 return STREAM_OK; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
61 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
62 fail: |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
63 streaming_ctrl_free( stream->streaming_ctrl ); |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
64 stream->streaming_ctrl = NULL; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
65 return STREAM_ERROR; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
66 } |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
67 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
68 static int open_live_sdp(stream_t *stream,int mode, void* opts, int* file_format) { |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
69 int f; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
70 char *filename = stream->url; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
71 off_t len; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
72 char* sdpDescription; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
73 ssize_t numBytesRead; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
74 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
75 if(strncmp("sdp://",filename,6) == 0) { |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
76 filename += 6; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
77 f = open(filename,O_RDONLY|O_BINARY); |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
78 if(f < 0) { |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
79 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_FileNotFound,filename); |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
80 return STREAM_ERROR; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
81 } |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
82 |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
27167
diff
changeset
|
83 len=lseek(f,0,SEEK_END); |
27167
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
84 lseek(f,0,SEEK_SET); |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
85 if(len == -1) |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
86 return STREAM_ERROR; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
87 if(len > SIZE_MAX - 1) |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
88 return STREAM_ERROR; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
89 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
90 sdpDescription = malloc(len+1); |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
91 if(sdpDescription == NULL) return STREAM_ERROR; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
92 numBytesRead = read(f, sdpDescription, len); |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
93 if(numBytesRead != len) { |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
94 free(sdpDescription); |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
95 return STREAM_ERROR; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
96 } |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
97 sdpDescription[len] = '\0'; // to be safe |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
98 stream->priv = sdpDescription; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
99 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
100 stream->type = STREAMTYPE_SDP; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
101 *file_format = DEMUXER_TYPE_RTP; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
102 return STREAM_OK; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
103 } |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
104 return STREAM_UNSUPPORTED; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
105 } |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
106 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
107 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
108 const stream_info_t stream_info_rtsp_sip = { |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
109 "standard RTSP and SIP", |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
110 "RTSP and SIP", |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
111 "Ross Finlayson", |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
112 "Uses LIVE555 Streaming Media library.", |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
113 open_live_rtsp_sip, |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
114 {"rtsp", "sip", NULL }, |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
115 NULL, |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
116 0 // Urls are an option string |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
117 }; |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
118 |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
119 const stream_info_t stream_info_sdp = { |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
120 "SDP stream descriptor", |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
121 "SDP", |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
122 "Ross Finlayson", |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
123 "Uses LIVE555 Streaming Media library.", |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
124 open_live_sdp, |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
125 {"sdp", NULL }, |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
126 NULL, |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
127 0 // Urls are an option string |
d9b61fc3c5b7
Rename stream_livedotcom.c to stream_live555.c, the name is used everywhere.
diego
parents:
diff
changeset
|
128 }; |