mirror of https://git.ffmpeg.org/ffmpeg.git
avformat/argo_asf: strip file extension from name
Only when the user hasn't manually specified one. Matches the original files more closely. Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
This commit is contained in:
parent
a3a4591868
commit
d2f42b9be1
|
@ -329,10 +329,24 @@ static int argo_asf_write_header(AVFormatContext *s)
|
||||||
fhdr.version_minor = (uint16_t)ctx->version_minor;
|
fhdr.version_minor = (uint16_t)ctx->version_minor;
|
||||||
fhdr.num_chunks = 1;
|
fhdr.num_chunks = 1;
|
||||||
fhdr.chunk_offset = ASF_FILE_HEADER_SIZE;
|
fhdr.chunk_offset = ASF_FILE_HEADER_SIZE;
|
||||||
if (ctx->name)
|
/*
|
||||||
|
* If the user specified a name, use it as is. Otherwise take the
|
||||||
|
* basename and lop off the extension (if any).
|
||||||
|
*/
|
||||||
|
if (ctx->name) {
|
||||||
strncpy(fhdr.name, ctx->name, sizeof(fhdr.name));
|
strncpy(fhdr.name, ctx->name, sizeof(fhdr.name));
|
||||||
|
} else {
|
||||||
|
const char *start = av_basename(s->url);
|
||||||
|
const char *end = strrchr(start, '.');
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
if(end)
|
||||||
|
len = end - start;
|
||||||
else
|
else
|
||||||
strncpy(fhdr.name, av_basename(s->url), sizeof(fhdr.name));
|
len = strlen(start);
|
||||||
|
|
||||||
|
memcpy(fhdr.name, start, FFMIN(len, sizeof(fhdr.name)));
|
||||||
|
}
|
||||||
|
|
||||||
chdr.num_blocks = 0;
|
chdr.num_blocks = 0;
|
||||||
chdr.num_samples = ASF_SAMPLE_COUNT;
|
chdr.num_samples = ASF_SAMPLE_COUNT;
|
||||||
|
|
Loading…
Reference in New Issue