mirror of https://git.ffmpeg.org/ffmpeg.git
movenc: Factorize a function for finding a metadata entry and the associated language
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
daec1651f1
commit
f12a705ee5
|
@ -2004,16 +2004,17 @@ static int mov_write_string_tag(AVIOContext *pb, const char *name,
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mov_write_string_metadata(AVFormatContext *s, AVIOContext *pb,
|
static AVDictionaryEntry *get_metadata_lang(AVFormatContext *s,
|
||||||
const char *name, const char *tag,
|
const char *tag, int *lang)
|
||||||
int long_style)
|
|
||||||
{
|
{
|
||||||
int l, lang = 0, len, len2;
|
int l, len, len2;
|
||||||
AVDictionaryEntry *t, *t2 = NULL;
|
AVDictionaryEntry *t, *t2 = NULL;
|
||||||
char tag2[16];
|
char tag2[16];
|
||||||
|
|
||||||
|
*lang = 0;
|
||||||
|
|
||||||
if (!(t = av_dict_get(s->metadata, tag, NULL, 0)))
|
if (!(t = av_dict_get(s->metadata, tag, NULL, 0)))
|
||||||
return 0;
|
return NULL;
|
||||||
|
|
||||||
len = strlen(t->key);
|
len = strlen(t->key);
|
||||||
snprintf(tag2, sizeof(tag2), "%s-", tag);
|
snprintf(tag2, sizeof(tag2), "%s-", tag);
|
||||||
|
@ -2021,10 +2022,21 @@ static int mov_write_string_metadata(AVFormatContext *s, AVIOContext *pb,
|
||||||
len2 = strlen(t2->key);
|
len2 = strlen(t2->key);
|
||||||
if (len2 == len + 4 && !strcmp(t->value, t2->value)
|
if (len2 == len + 4 && !strcmp(t->value, t2->value)
|
||||||
&& (l = ff_mov_iso639_to_lang(&t2->key[len2 - 3], 1)) >= 0) {
|
&& (l = ff_mov_iso639_to_lang(&t2->key[len2 - 3], 1)) >= 0) {
|
||||||
lang = l;
|
*lang = l;
|
||||||
break;
|
return t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mov_write_string_metadata(AVFormatContext *s, AVIOContext *pb,
|
||||||
|
const char *name, const char *tag,
|
||||||
|
int long_style)
|
||||||
|
{
|
||||||
|
int lang;
|
||||||
|
AVDictionaryEntry *t = get_metadata_lang(s, tag, &lang);
|
||||||
|
if (!t)
|
||||||
|
return 0;
|
||||||
return mov_write_string_tag(pb, name, t->value, lang, long_style);
|
return mov_write_string_tag(pb, name, t->value, lang, long_style);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue