Mercurial > libavformat.hg
comparison movenc.c @ 1438:76ae91843087 libavformat
simplify
author | bcoudurier |
---|---|
date | Wed, 01 Nov 2006 17:56:22 +0000 |
parents | 6f4a44ab3f2a |
children | ad3b03b7b142 |
comparison
equal
deleted
inserted
replaced
1437:6f4a44ab3f2a | 1438:76ae91843087 |
---|---|
343 }; | 343 }; |
344 | 344 |
345 static int mov_write_audio_tag(ByteIOContext *pb, MOVTrack* track) | 345 static int mov_write_audio_tag(ByteIOContext *pb, MOVTrack* track) |
346 { | 346 { |
347 offset_t pos = url_ftell(pb); | 347 offset_t pos = url_ftell(pb); |
348 int vbr= track->mode == MODE_MOV && | 348 int version = track->mode == MODE_MOV && |
349 (track->enc->codec_id == CODEC_ID_AAC || | 349 (track->audio_vbr || |
350 track->enc->codec_id == CODEC_ID_MP3 || | 350 track->enc->codec_id == CODEC_ID_PCM_S32LE || |
351 track->enc->codec_id == CODEC_ID_AMR_NB); | 351 track->enc->codec_id == CODEC_ID_PCM_S24LE); |
352 int version = vbr || | |
353 track->enc->codec_id == CODEC_ID_PCM_S32LE || | |
354 track->enc->codec_id == CODEC_ID_PCM_S24LE; | |
355 | 352 |
356 put_be32(pb, 0); /* size */ | 353 put_be32(pb, 0); /* size */ |
357 put_le32(pb, track->tag); // store it byteswapped | 354 put_le32(pb, track->tag); // store it byteswapped |
358 put_be32(pb, 0); /* Reserved */ | 355 put_be32(pb, 0); /* Reserved */ |
359 put_be16(pb, 0); /* Reserved */ | 356 put_be16(pb, 0); /* Reserved */ |
366 | 363 |
367 put_be16(pb, track->mode == MODE_MOV ? track->enc->channels : 2); /* Number of channels */ | 364 put_be16(pb, track->mode == MODE_MOV ? track->enc->channels : 2); /* Number of channels */ |
368 /* FIXME 8 bit for 'raw ' in mov */ | 365 /* FIXME 8 bit for 'raw ' in mov */ |
369 put_be16(pb, 16); /* Reserved */ | 366 put_be16(pb, 16); /* Reserved */ |
370 | 367 |
371 put_be16(pb, vbr ? 0xfffe : 0); /* compression ID */ | 368 put_be16(pb, track->mode == MODE_MOV && track->audio_vbr ? -2 : 0); /* compression ID */ |
372 put_be16(pb, 0); /* packet size (= 0) */ | 369 put_be16(pb, 0); /* packet size (= 0) */ |
373 put_be16(pb, track->timescale); /* Time scale */ | 370 put_be16(pb, track->timescale); /* Time scale */ |
374 put_be16(pb, 0); /* Reserved */ | 371 put_be16(pb, 0); /* Reserved */ |
375 | 372 |
376 if(version == 1) { /* SoundDescription V1 extended info */ | 373 if(version == 1) { /* SoundDescription V1 extended info */ |
377 if (vbr) | |
378 track->sampleSize = 0; | |
379 put_be32(pb, track->enc->frame_size); /* Samples per packet */ | 374 put_be32(pb, track->enc->frame_size); /* Samples per packet */ |
380 put_be32(pb, track->sampleSize / track->enc->channels); /* Bytes per packet */ | 375 put_be32(pb, track->sampleSize / track->enc->channels); /* Bytes per packet */ |
381 put_be32(pb, track->sampleSize); /* Bytes per frame */ | 376 put_be32(pb, track->sampleSize); /* Bytes per frame */ |
382 put_be32(pb, 2); /* Bytes per sample */ | 377 put_be32(pb, 2); /* Bytes per sample */ |
383 } | 378 } |