summaryrefslogtreecommitdiff
path: root/libavformat/argo_asf.c
diff options
context:
space:
mode:
authorZane van Iperen <zane@zanevaniperen.com>2021-10-11 21:20:28 +1000
committerZane van Iperen <zane@zanevaniperen.com>2021-10-15 23:40:15 +1000
commit5d16660598dd9409c1028204cac3a966a939b719 (patch)
treec10a51feac8e5ea270f9c6a5ec2d61db045df070 /libavformat/argo_asf.c
parent9a2b9aafba7a38087769e4a4b9248ca51d0bc494 (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.c16
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;