summaryrefslogtreecommitdiff
path: root/libavformat/argo_asf.c
diff options
context:
space:
mode:
authorZane van Iperen <zane@zanevaniperen.com>2020-08-08 09:17:51 +1000
committerZane van Iperen <zane@zanevaniperen.com>2020-08-11 08:50:27 +1000
commita3a4591868f86663e8aec2026e5bdc8e71fb16b6 (patch)
treea92f7121ce686df8d3d3c4562d65d6f4c22d0463 /libavformat/argo_asf.c
parent1f9dd53d5d433ac745634784303991ee88066862 (diff)
avformat/argo_asf: add name option
Reviewed-by: Alexander Strasser <eclipse7@gmx.net> Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
Diffstat (limited to 'libavformat/argo_asf.c')
-rw-r--r--libavformat/argo_asf.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c
index d25a5de37f..577b9d9c01 100644
--- a/libavformat/argo_asf.c
+++ b/libavformat/argo_asf.c
@@ -68,6 +68,7 @@ typedef struct ArgoASFMuxContext {
const AVClass *class;
int version_major;
int version_minor;
+ const char *name;
} ArgoASFMuxContext;
#if CONFIG_ARGO_ASF_DEMUXER
@@ -328,7 +329,10 @@ static int argo_asf_write_header(AVFormatContext *s)
fhdr.version_minor = (uint16_t)ctx->version_minor;
fhdr.num_chunks = 1;
fhdr.chunk_offset = ASF_FILE_HEADER_SIZE;
- strncpy(fhdr.name, av_basename(s->url), FF_ARRAY_ELEMS(fhdr.name));
+ if (ctx->name)
+ strncpy(fhdr.name, ctx->name, sizeof(fhdr.name));
+ else
+ strncpy(fhdr.name, av_basename(s->url), sizeof(fhdr.name));
chdr.num_blocks = 0;
chdr.num_samples = ASF_SAMPLE_COUNT;
@@ -389,6 +393,14 @@ static const AVOption argo_asf_options[] = {
.max = UINT16_MAX,
.flags = AV_OPT_FLAG_ENCODING_PARAM
},
+ {
+ .name = "name",
+ .help = "embedded file name (max 8 characters)",
+ .offset = offsetof(ArgoASFMuxContext, name),
+ .type = AV_OPT_TYPE_STRING,
+ .default_val = {.str = NULL},
+ .flags = AV_OPT_FLAG_ENCODING_PARAM
+ },
{ NULL }
};