summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Abeni <lucabe72@email.it>2007-11-29 08:35:05 +0000
committerLuca Abeni <lucabe72@email.it>2007-11-29 08:35:05 +0000
commite8acf0edeae0b5ef53233c49015b07cc9711f20c (patch)
treeb60038220c76845bd7fb511d8bdb96871a2eb1e0
parentfe2b276c2ed6463f3e0db859a10b71addd839cd8 (diff)
Suppress the "redirector hack" from libavformat/utils.c:av_open_input_stream(),
and implement the redirector format more properly. Originally committed as revision 11112 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavformat/rtsp.c14
-rw-r--r--libavformat/utils.c10
2 files changed, 8 insertions, 16 deletions
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 831ef9b26f..9af572daf2 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1435,12 +1435,12 @@ static int redir_probe(AVProbeData *pd)
return 0;
}
-/* called from utils.c */
-int redir_open(AVFormatContext **ic_ptr, ByteIOContext *f)
+static int redir_read_header(AVFormatContext *s, AVFormatParameters *ap)
{
char buf[4096], *q;
int c;
AVFormatContext *ic = NULL;
+ ByteIOContext *f = s->pb;
/* parse each URL and try to open it */
c = url_fgetc(f);
@@ -1468,11 +1468,13 @@ int redir_open(AVFormatContext **ic_ptr, ByteIOContext *f)
if (av_open_input_file(&ic, buf, NULL, 0, NULL) == 0)
break;
}
- *ic_ptr = ic;
if (!ic)
return AVERROR(EIO);
- else
- return 0;
+
+ *s = *ic;
+ url_fclose(f);
+
+ return 0;
}
AVInputFormat redir_demuxer = {
@@ -1480,7 +1482,7 @@ AVInputFormat redir_demuxer = {
"Redirector format",
0,
redir_probe,
- NULL,
+ redir_read_header,
NULL,
NULL,
};
diff --git a/libavformat/utils.c b/libavformat/utils.c
index d40a5f3f41..ae1659f4c8 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -464,16 +464,6 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
goto fail;
}
- /* XXX: suppress this hack for redirectors */
-#ifdef CONFIG_REDIR_DEMUXER
- if (!strcmp(fmt->name, "redir")) {
- int redir_open(AVFormatContext **ic_ptr, ByteIOContext *f);
- err = redir_open(ic_ptr, pb);
- url_fclose(pb);
- return err;
- }
-#endif
-
/* check filename in case of an image number is expected */
if (fmt->flags & AVFMT_NEEDNUMBER) {
if (!av_filename_number_test(filename)) {