From 4ba148a6ea2c3f2491f1dc60246dd62c665ce1cf Mon Sep 17 00:00:00 2001 From: "Reynaldo H. Verdejo Pinochet" Date: Tue, 15 Dec 2015 22:08:52 -0800 Subject: [PATCH] ffserver: refactor build_file_streams() Avoid unneeded nesting, drop redundant var Signed-off-by: Reynaldo H. Verdejo Pinochet --- ffserver.c | 87 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 45 insertions(+), 42 deletions(-) diff --git a/ffserver.c b/ffserver.c index 8799076ddc..65044e6d15 100644 --- a/ffserver.c +++ b/ffserver.c @@ -3567,56 +3567,59 @@ static void extract_mpeg4_header(AVFormatContext *infile) /* compute the needed AVStream for each file */ static void build_file_streams(void) { - FFServerStream *stream, *stream_next; + FFServerStream *stream; + AVFormatContext *infile; int i, ret; /* gather all streams */ - for(stream = config.first_stream; stream; stream = stream_next) { - AVFormatContext *infile = NULL; - stream_next = stream->next; - if (stream->stream_type == STREAM_TYPE_LIVE && - !stream->feed) { - /* the stream comes from a file */ - /* try to open the file */ - /* open stream */ - if (stream->fmt && !strcmp(stream->fmt->name, "rtp")) { - /* specific case : if transport stream output to RTP, - * we use a raw transport stream reader */ - av_dict_set(&stream->in_opts, "mpeg2ts_compute_pcr", "1", 0); - } + for(stream = config.first_stream; stream; stream = stream->next) { + infile = NULL; - if (!stream->feed_filename[0]) { - http_log("Unspecified feed file for stream '%s'\n", - stream->filename); + if (stream->stream_type != STREAM_TYPE_LIVE || stream->feed) + continue; + + /* the stream comes from a file */ + /* try to open the file */ + /* open stream */ + + + /* specific case: if transport stream output to RTP, + * we use a raw transport stream reader */ + if (stream->fmt && !strcmp(stream->fmt->name, "rtp")) + av_dict_set(&stream->in_opts, "mpeg2ts_compute_pcr", "1", 0); + + if (!stream->feed_filename[0]) { + http_log("Unspecified feed file for stream '%s'\n", + stream->filename); + goto fail; + } + + http_log("Opening feed file '%s' for stream '%s'\n", + stream->feed_filename, stream->filename); + + ret = avformat_open_input(&infile, stream->feed_filename, + stream->ifmt, &stream->in_opts); + if (ret < 0) { + http_log("Could not open '%s': %s\n", stream->feed_filename, + av_err2str(ret)); + /* remove stream (no need to spend more time on it) */ + fail: + remove_stream(stream); + } else { + /* find all the AVStreams inside and reference them in + * 'stream' */ + if (avformat_find_stream_info(infile, NULL) < 0) { + http_log("Could not find codec parameters from '%s'\n", + stream->feed_filename); + avformat_close_input(&infile); goto fail; } + extract_mpeg4_header(infile); - http_log("Opening feed file '%s' for stream '%s'\n", - stream->feed_filename, stream->filename); - ret = avformat_open_input(&infile, stream->feed_filename, - stream->ifmt, &stream->in_opts); - if (ret < 0) { - http_log("Could not open '%s': %s\n", stream->feed_filename, - av_err2str(ret)); - /* remove stream (no need to spend more time on it) */ - fail: - remove_stream(stream); - } else { - /* find all the AVStreams inside and reference them in - * 'stream' */ - if (avformat_find_stream_info(infile, NULL) < 0) { - http_log("Could not find codec parameters from '%s'\n", - stream->feed_filename); - avformat_close_input(&infile); - goto fail; - } - extract_mpeg4_header(infile); + for(i=0;inb_streams;i++) + add_av_stream1(stream, infile->streams[i]->codec, 1); - for(i=0;inb_streams;i++) - add_av_stream1(stream, infile->streams[i]->codec, 1); - - avformat_close_input(&infile); - } + avformat_close_input(&infile); } } }