summaryrefslogtreecommitdiff
path: root/libavformat/oggparsevorbis.c
diff options
context:
space:
mode:
authorJun Zhao <barryjzhao@tencent.com>2019-04-14 23:22:25 +0800
committerJun Zhao <barryjzhao@tencent.com>2019-04-22 23:24:42 +0800
commit8d3630c5402fdda2889fe4f74f7dcdd50ebca654 (patch)
treef10ae46c445c9d324d72429b4fd67d709a9f0285 /libavformat/oggparsevorbis.c
parenteeca67e0232cc18c0a4b7c4bfa7ff4ee709078c2 (diff)
lavf/oggparsevorbis: Fix change the case of metadata keys issue
The spec in https://xiph.org/vorbis/doc/v-comment.html states that the metadata keys are case-insensitive, so don't change the case and update the fate test case. Fix #7784 Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
Diffstat (limited to 'libavformat/oggparsevorbis.c')
-rw-r--r--libavformat/oggparsevorbis.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c
index bcfd246b8d..43f05f928a 100644
--- a/libavformat/oggparsevorbis.c
+++ b/libavformat/oggparsevorbis.c
@@ -44,7 +44,7 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val)
int i, cnum, h, m, s, ms, keylen = strlen(key);
AVChapter *chapter = NULL;
- if (keylen < 9 || sscanf(key, "CHAPTER%03d", &cnum) != 1)
+ if (keylen < 9 || av_strncasecmp(key, "CHAPTER", 7) || sscanf(key+7, "%03d", &cnum) != 1)
return 0;
if (keylen <= 10) {
@@ -55,7 +55,7 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val)
ms + 1000 * (s + 60 * (m + 60 * h)),
AV_NOPTS_VALUE, NULL);
av_free(val);
- } else if (!strcmp(key + keylen - 4, "NAME")) {
+ } else if (!av_strcasecmp(key + keylen - 4, "NAME")) {
for (i = 0; i < as->nb_chapters; i++)
if (as->chapters[i]->id == cnum) {
chapter = as->chapters[i];
@@ -91,7 +91,7 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m,
const uint8_t *p = buf;
const uint8_t *end = buf + size;
int updates = 0;
- unsigned n, j;
+ unsigned n;
int s;
/* must have vendor_length and user_comment_list_length */
@@ -139,8 +139,7 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m,
return AVERROR(ENOMEM);
}
- for (j = 0; j < tl; j++)
- tt[j] = av_toupper(t[j]);
+ memcpy(tt, t, tl);
tt[tl] = 0;
memcpy(ct, v, vl);