return -1 for errors in ff_mov_iso639_to_lang() to allow for error checking
Originally committed as revision 17611 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
b97fb809b8
commit
2904fd398f
@ -257,7 +257,7 @@ int ff_mov_iso639_to_lang(const char *lang, int mp4)
|
||||
}
|
||||
/* XXX:can we do that in mov too? */
|
||||
if (!mp4)
|
||||
return 0;
|
||||
return -1;
|
||||
/* handle undefined as such */
|
||||
if (lang[0] == '\0')
|
||||
lang = "und";
|
||||
@ -265,9 +265,9 @@ int ff_mov_iso639_to_lang(const char *lang, int mp4)
|
||||
for (i = 0; i < 3; i++) {
|
||||
unsigned char c = (unsigned char)lang[i];
|
||||
if (c < 0x60)
|
||||
return 0;
|
||||
return -1;
|
||||
if (c > 0x60 + 0x1f)
|
||||
return 0;
|
||||
return -1;
|
||||
code <<= 5;
|
||||
code |= (c - 0x60);
|
||||
}
|
||||
|
@ -1651,6 +1651,8 @@ static int mov_write_header(AVFormatContext *s)
|
||||
|
||||
track->enc = st->codec;
|
||||
track->language = ff_mov_iso639_to_lang(lang?lang->value:"und", mov->mode!=MODE_MOV);
|
||||
if (track->language < 0)
|
||||
track->language = 0;
|
||||
track->mode = mov->mode;
|
||||
track->tag = mov_find_codec_tag(s, track);
|
||||
if (!track->tag) {
|
||||
|
Loading…
Reference in New Issue
Block a user