Mercurial > libavformat.hg
changeset 1150:c8edab114cc3 libavformat
vbr requires version=1 and samplesize=0 per QT spec
untested, but if this doesnt work the issue is likely somewhere else, as iam just chaning the random nonsense we do to what the spec says should be done
author | michael |
---|---|
date | Thu, 06 Jul 2006 12:17:01 +0000 |
parents | 02e10bcc0e0d |
children | bf808f3f7f46 |
files | movenc.c |
diffstat | 1 files changed, 8 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/movenc.c Wed Jul 05 22:01:49 2006 +0000 +++ b/movenc.c Thu Jul 06 12:17:01 2006 +0000 @@ -353,9 +353,11 @@ static int mov_write_audio_tag(ByteIOContext *pb, MOVTrack* track) { offset_t pos = url_ftell(pb); + int vbr= track->enc->codec_id == CODEC_ID_AAC || + track->enc->codec_id == CODEC_ID_MP3 || + track->enc->codec_id == CODEC_ID_AMR_NB; int version = track->mode == MODE_MOV && - (track->enc->codec_id == CODEC_ID_AAC || - track->enc->codec_id == CODEC_ID_MP3 || + (vbr || track->enc->codec_id == CODEC_ID_PCM_S32LE || track->enc->codec_id == CODEC_ID_PCM_S24LE); @@ -375,9 +377,7 @@ to be a good way to get number of bits of audio */ put_be16(pb, 0x10); /* Reserved */ - if(track->enc->codec_id == CODEC_ID_AAC || - track->enc->codec_id == CODEC_ID_MP3 || - track->enc->codec_id == CODEC_ID_AMR_NB) { + if(vbr) { put_be16(pb, 0xfffe); /* compression ID (vbr)*/ } else { put_be16(pb, 0); /* compression ID (= 0) */ @@ -387,13 +387,10 @@ put_be16(pb, 0); /* Reserved */ if(version == 1) { /* SoundDescription V1 extended info */ - /* Parameters tested on quicktime 6.5, 7 */ - if (track->enc->codec_id == CODEC_ID_MP3) - track->sampleSize = 666; - if (track->enc->codec_id == CODEC_ID_AAC) - track->sampleSize = 2; + if (vbr) + track->sampleSize = 0; put_be32(pb, track->enc->frame_size); /* Samples per packet */ - put_be32(pb, track->sampleSize / 2); /* Bytes per packet */ + put_be32(pb, track->sampleSize / track->enc->channels); /* Bytes per packet */ put_be32(pb, track->sampleSize); /* Bytes per frame */ put_be32(pb, 2); /* Bytes per sample */ }