# HG changeset patch # User lucabe # Date 1196325305 0 # Node ID d3b3cfb538d89484db12b0c4fa8afa1a92eb18c3 # Parent 7046ab98056e9163093bef5d4d62e66acc698423 Suppress the "redirector hack" from libavformat/utils.c:av_open_input_stream(), and implement the redirector format more properly. diff -r 7046ab98056e -r d3b3cfb538d8 rtsp.c --- a/rtsp.c Wed Nov 28 19:51:59 2007 +0000 +++ b/rtsp.c Thu Nov 29 08:35:05 2007 +0000 @@ -1435,12 +1435,12 @@ 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 @@ 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 @@ "Redirector format", 0, redir_probe, - NULL, + redir_read_header, NULL, NULL, }; diff -r 7046ab98056e -r d3b3cfb538d8 utils.c --- a/utils.c Wed Nov 28 19:51:59 2007 +0000 +++ b/utils.c Thu Nov 29 08:35:05 2007 +0000 @@ -464,16 +464,6 @@ 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)) {