diff options
author | Zane van Iperen <zane@zanevaniperen.com> | 2021-10-11 21:20:28 +1000 |
---|---|---|
committer | Zane van Iperen <zane@zanevaniperen.com> | 2021-10-15 23:40:15 +1000 |
commit | 5d16660598dd9409c1028204cac3a966a939b719 (patch) | |
tree | c10a51feac8e5ea270f9c6a5ec2d61db045df070 /libavformat/argo_asf.c | |
parent | 9a2b9aafba7a38087769e4a4b9248ca51d0bc494 (diff) |
avformat/argo_asf: use title metadata when muxing
Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
Diffstat (limited to 'libavformat/argo_asf.c')
-rw-r--r-- | libavformat/argo_asf.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c index 740680ece1..2b3569ebc3 100644 --- a/libavformat/argo_asf.c +++ b/libavformat/argo_asf.c @@ -358,14 +358,22 @@ static int argo_asf_write_header(AVFormatContext *s) .num_chunks = 1, .chunk_offset = ASF_FILE_HEADER_SIZE }; - const char *name = ctx->name, *end; + AVDictionaryEntry *t; + const char *name, *end; size_t len; /* - * If the user specified a name, use it as is. Otherwise take the - * basename and lop off the extension (if any). + * If the user specified a name, use it as is. Otherwise, + * try to use metadata (if present), then fall back to the + * filename (minus extension). */ - if (name || !(end = strrchr((name = av_basename(s->url)), '.'))) { + if (ctx->name) { + name = ctx->name; + len = strlen(ctx->name); + } else if ((t = av_dict_get(s->metadata, "title", NULL, 0))) { + name = t->value; + len = strlen(t->value); + } else if (!(end = strrchr((name = av_basename(s->url)), '.'))) { len = strlen(name); } else { len = end - name; |