[FFmpeg-cvslog] ffserver: refactor build_file_streams()
Reynaldo H. Verdejo Pinochet
git at videolan.org
Sat Dec 19 10:52:49 CET 2015
ffmpeg | branch: master | Reynaldo H. Verdejo Pinochet <reynaldo at osg.samsung.com> | Tue Dec 15 22:08:52 2015 -0800| [4ba148a6ea2c3f2491f1dc60246dd62c665ce1cf] | committer: Reynaldo H. Verdejo Pinochet
ffserver: refactor build_file_streams()
Avoid unneeded nesting, drop redundant var
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo at osg.samsung.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4ba148a6ea2c3f2491f1dc60246dd62c665ce1cf
---
ffserver.c | 85 +++++++++++++++++++++++++++++++-----------------------------
1 file changed, 44 insertions(+), 41 deletions(-)
diff --git a/ffserver.c b/ffserver.c
index 8799076..65044e6 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);
}
}
}
More information about the ffmpeg-cvslog
mailing list