---------------
total : 253
+ stts = 16
+ stsz = 20
+ stco = 16
+ ------------
+ total : 52
+
ii. Variation in file format
- MP4
udta = 61
udta = 8
iii. Variation in codec
- - AAC = 424 + + (8*stts_count) + (8*audio_frame)
- stsd = 94 (16, mp4a : 78(36 ,esds : 42))
+ - Common
stts = 16 + (8*stts_count)
stsc = 28
stsz = 20 + (4*frame)
stco = 16 + (4*frame)
- - AMR = 410 + (4*audio_frame)
- stsd = 69 -> different from AAC
- stts = 24 -> different from AAC
- stsc = 28
- stsz = 20 -> different from AAC
- stco = 16 + (4*frame)
+ - AAC
+ stsd = 94 (16, mp4a : 78(36 ,esds : 42))
+
+ - AMR
+ stsd = 69 (16, samr : 53(36, damr : 17))
*/
/* trailer entry size */
/* Calculate trailer size for audio stream */
if (audio_stream) {
- switch (pad->fourcc) {
- case FOURCC_samr:
- /* AMR_NB codec */
- exp_size += MUX_COMMON_SIZE_AUDIO_HEADER + ENTRY_SIZE_AUDIO_AMR_STSD +
- ENTRY_SIZE_AUDIO_ST + (ENTRY_SIZE_AUDIO_STTS * nb_audio_stts_entry) +
- (ENTRY_SIZE_STSC) + (ENTRY_SIZE_AUDIO_STCO * nb_audio_frames);
- break;
- default:
- /* AAC codec */
- exp_size += MUX_COMMON_SIZE_AUDIO_HEADER + ENTRY_SIZE_AUDIO_AAC_STSD +
- ENTRY_SIZE_AUDIO_ST + (ENTRY_SIZE_AUDIO_STTS * nb_audio_stts_entry) +
- (ENTRY_SIZE_STSC) + ((ENTRY_SIZE_AUDIO_STSZ + ENTRY_SIZE_AUDIO_STCO) * nb_audio_frames);
- break;
- }
+ exp_size += MUX_COMMON_SIZE_AUDIO_HEADER + ENTRY_SIZE_AUDIO_ST + (ENTRY_SIZE_AUDIO_STTS * nb_audio_stts_entry) +
+ (ENTRY_SIZE_STSC) + ((ENTRY_SIZE_AUDIO_STSZ + ENTRY_SIZE_AUDIO_STCO) * nb_audio_frames);
+
+ if (pad->fourcc == FOURCC_samr)
+ exp_size += ENTRY_SIZE_AUDIO_AMR_STSD;
+ else
+ exp_size += ENTRY_SIZE_AUDIO_AAC_STSD;
qtmux->audio_expected_trailer_size = exp_size;
}