Mercurial > libavformat.hg
diff movenc.c @ 890:1e49bfea0ffb libavformat
finally found what those >138 codes were... crappy compressed 5bit ascii. this gets them correctly, and adds setting track lang in movenc too.
author | mmu_man |
---|---|
date | Fri, 30 Dec 2005 20:34:08 +0000 |
parents | d70e50f1495f |
children | edbe5c3717f9 |
line wrap: on
line diff
--- a/movenc.c Fri Dec 30 18:25:46 2005 +0000 +++ b/movenc.c Fri Dec 30 20:34:08 2005 +0000 @@ -52,6 +52,7 @@ long sampleCount; long sampleDuration; int hasKeyframes; + int language; int trackID; AVCodecContext *enc; @@ -72,6 +73,9 @@ static int mov_write_esds_tag(ByteIOContext *pb, MOVTrack* track); +/* output language code from iso639 language name */ +extern int ff_mov_iso639_to_lang(const char *lang, int mp4); + const CodecTag ff_mov_obj_type[] = { { CODEC_ID_MPEG4 , 32 }, { CODEC_ID_AAC , 64 }, @@ -701,7 +705,7 @@ put_be32(pb, track->time); /* modification time */ put_be32(pb, track->timescale); /* time scale (sample rate for audio) */ put_be32(pb, track->trackDuration); /* duration */ - put_be16(pb, 0); /* language, 0 = english */ + put_be16(pb, track->language); /* language */ put_be16(pb, 0); /* reserved (quality) */ return 32; } @@ -1331,6 +1335,8 @@ av_log(s, AV_LOG_INFO, "Warning, using MS style audio codec tag, the file may be unplayable!\n"); } } + /* don't know yet if mp4 or not */ + mov->tracks[i].language = ff_mov_iso639_to_lang(s->streams[i]->language, 1); } /* Default mode == MP4 */