Convert latin1 codec_name in mov to UTF-8, since all strings in FFmpeg
must be valid UTF-8. Originally committed as revision 20092 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@@ -909,8 +909,13 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
|
|||||||
|
|
||||||
get_buffer(pb, codec_name, 32); /* codec name, pascal string */
|
get_buffer(pb, codec_name, 32); /* codec name, pascal string */
|
||||||
if (codec_name[0] <= 31) {
|
if (codec_name[0] <= 31) {
|
||||||
memcpy(st->codec->codec_name, &codec_name[1],codec_name[0]);
|
int i;
|
||||||
st->codec->codec_name[codec_name[0]] = 0;
|
int pos = 0;
|
||||||
|
for (i = 0; i < codec_name[0] && pos < sizeof(st->codec->codec_name) - 3; i++) {
|
||||||
|
uint8_t tmp;
|
||||||
|
PUT_UTF8(codec_name[i], tmp, st->codec->codec_name[pos++] = tmp;)
|
||||||
|
}
|
||||||
|
st->codec->codec_name[pos] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
st->codec->bits_per_coded_sample = get_be16(pb); /* depth */
|
st->codec->bits_per_coded_sample = get_be16(pb); /* depth */
|
||||||
|
Reference in New Issue
Block a user