summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ffserver.c23
-rw-r--r--libavformat/avformat.h4
-rw-r--r--libavformat/utils.c2
3 files changed, 26 insertions, 3 deletions
diff --git a/ffserver.c b/ffserver.c
index fdb504f84a..23665a1e22 100644
--- a/ffserver.c
+++ b/ffserver.c
@@ -3731,6 +3731,25 @@ static int ffserver_opt_default(const char *opt, const char *arg,
return ret;
}
+static AVOutputFormat *ffserver_guess_format(const char *short_name, const char *filename,
+ const char *mime_type)
+{
+ AVOutputFormat *fmt = guess_format(short_name, filename, mime_type);
+
+ if (fmt) {
+ AVOutputFormat *stream_fmt;
+ char stream_format_name[64];
+
+ snprintf(stream_format_name, sizeof(stream_format_name), "%s_stream", fmt->name);
+ stream_fmt = guess_format(stream_format_name, NULL, NULL);
+
+ if (stream_fmt)
+ fmt = stream_fmt;
+ }
+
+ return fmt;
+}
+
static int parse_ffconfig(const char *filename)
{
FILE *f;
@@ -3972,7 +3991,7 @@ static int parse_ffconfig(const char *filename)
}
}
- stream->fmt = guess_stream_format(NULL, stream->filename, NULL);
+ stream->fmt = ffserver_guess_format(NULL, stream->filename, NULL);
/* fetch avclass so AVOption works
* FIXME try to use avcodec_get_context_defaults2
* without changing defaults too much */
@@ -4020,7 +4039,7 @@ static int parse_ffconfig(const char *filename)
/* jpeg cannot be used here, so use single frame jpeg */
if (!strcmp(arg, "jpeg"))
strcpy(arg, "mjpeg");
- stream->fmt = guess_stream_format(arg, NULL, NULL);
+ stream->fmt = ffserver_guess_format(arg, NULL, NULL);
if (!stream->fmt) {
fprintf(stderr, "%s:%d: Unknown Format: %s\n",
filename, line_num, arg);
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 8e8ab91b2d..a71993708f 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -712,9 +712,11 @@ enum CodecID av_guess_image2_codec(const char *filename);
/* utils.c */
void av_register_input_format(AVInputFormat *format);
void av_register_output_format(AVOutputFormat *format);
-AVOutputFormat *guess_stream_format(const char *short_name,
+#if LIBAVFORMAT_VERSION_MAJOR < 53
+attribute_deprecated AVOutputFormat *guess_stream_format(const char *short_name,
const char *filename,
const char *mime_type);
+#endif
AVOutputFormat *guess_format(const char *short_name,
const char *filename,
const char *mime_type);
diff --git a/libavformat/utils.c b/libavformat/utils.c
index d7241f59a7..5eb360c229 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -219,6 +219,7 @@ AVOutputFormat *guess_format(const char *short_name, const char *filename,
return fmt_found;
}
+#if LIBAVFORMAT_VERSION_MAJOR < 53
AVOutputFormat *guess_stream_format(const char *short_name, const char *filename,
const char *mime_type)
{
@@ -237,6 +238,7 @@ AVOutputFormat *guess_stream_format(const char *short_name, const char *filename
return fmt;
}
+#endif
enum CodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name,
const char *filename, const char *mime_type, enum CodecType type){