summaryrefslogtreecommitdiff
path: root/ffserver.c
diff options
context:
space:
mode:
authorReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>2015-12-15 22:08:52 -0800
committerReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>2015-12-19 01:52:20 -0800
commit4ba148a6ea2c3f2491f1dc60246dd62c665ce1cf (patch)
tree7320f482c1e9b7ff2192508a9b97fb4b7656deda /ffserver.c
parent532a2833830538925e7830c22a885e73e557d6d7 (diff)
downloadffmpeg-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>
Diffstat (limited to 'ffserver.c')
-rw-r--r--ffserver.c85
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);
}
}
}