diff options
author | Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com> | 2015-12-15 22:08:52 -0800 |
---|---|---|
committer | Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com> | 2015-12-19 01:52:20 -0800 |
commit | 4ba148a6ea2c3f2491f1dc60246dd62c665ce1cf (patch) | |
tree | 7320f482c1e9b7ff2192508a9b97fb4b7656deda | |
parent | 532a2833830538925e7830c22a885e73e557d6d7 (diff) | |
download | ffmpeg-4ba148a6ea2c3f2491f1dc60246dd62c665ce1cf.tar.gz |
ffserver: refactor build_file_streams()
Avoid unneeded nesting, drop redundant var
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
-rw-r--r-- | ffserver.c | 85 |
1 files changed, 44 insertions, 41 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); - goto fail; - } + if (stream->stream_type != STREAM_TYPE_LIVE || stream->feed) + continue; + + /* the stream comes from a file */ + /* try to open the file */ + /* open stream */ - 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;i<infile->nb_streams;i++) - add_av_stream1(stream, infile->streams[i]->codec, 1); + /* 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); + + for(i=0;i<infile->nb_streams;i++) + add_av_stream1(stream, infile->streams[i]->codec, 1); + + avformat_close_input(&infile); } } } |