Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/dashenc.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index 56af916555..a9b8b1d4f6 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -196,6 +196,16 @@ static const char *get_format_str(SegmentType segment_type) {
return NULL;
}
+static int check_file_extension(const char *filename, const char *extension) {
+ char *dot;
+ if (!filename || !extension)
+ return -1;
+ dot = strrchr(filename, '.');
+ if (dot && !strcmp(dot + 1, extension))
+ return 0;
+ return -1;
+}
+
static void set_vp9_codec_str(AVFormatContext *s, AVCodecParameters *par,
AVRational *frame_rate, char *str, int size) {
VPCC vpcc;
@@ -987,6 +997,17 @@ static int dash_init(AVFormatContext *s)
c->format_name = get_format_str(c->segment_type);
if (!c->format_name)
return AVERROR_MUXER_NOT_FOUND;
+ if (c->segment_type == SEGMENT_TYPE_WEBM) {
+ if ((!c->single_file && check_file_extension(c->init_seg_name, c->format_name) != 0) ||
+ (!c->single_file && check_file_extension(c->media_seg_name, c->format_name) != 0) ||
+ (c->single_file && check_file_extension(c->single_file_name, c->format_name) != 0)) {
+ av_log(s, AV_LOG_WARNING,
+ "One or many segment file names doesn't end with .webm. "
+ "Override -init_seg_name and/or -media_seg_name and/or "
+ "-single_file_name to end with the extension .webm\n");
+ }
+ }
+
ctx->oformat = av_guess_format(c->format_name, NULL, NULL);
if (!ctx->oformat)
return AVERROR_MUXER_NOT_FOUND;