|
|
|
@ -1399,7 +1399,8 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex |
|
|
|
|
avio_wb16(pb, 16); |
|
|
|
|
avio_wb16(pb, track->audio_vbr ? -2 : 0); /* compression ID */ |
|
|
|
|
} else { /* reserved for mp4/3gp */ |
|
|
|
|
avio_wb16(pb, track->par->ch_layout.nb_channels); |
|
|
|
|
avio_wb16(pb, track->tag == MKTAG('i', 'a', 'm', 'f') ? |
|
|
|
|
0 : track->par->ch_layout.nb_channels); |
|
|
|
|
if (track->par->codec_id == AV_CODEC_ID_FLAC || |
|
|
|
|
track->par->codec_id == AV_CODEC_ID_ALAC) { |
|
|
|
|
avio_wb16(pb, track->par->bits_per_raw_sample); |
|
|
|
@ -1410,7 +1411,9 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
avio_wb16(pb, 0); /* packet size (= 0) */ |
|
|
|
|
if (track->par->codec_id == AV_CODEC_ID_OPUS) |
|
|
|
|
if (track->tag == MKTAG('i','a','m','f')) |
|
|
|
|
avio_wb16(pb, 0); /* samplerate must be 0 for IAMF */ |
|
|
|
|
else if (track->par->codec_id == AV_CODEC_ID_OPUS) |
|
|
|
|
avio_wb16(pb, 48000); |
|
|
|
|
else if (track->par->codec_id == AV_CODEC_ID_TRUEHD) |
|
|
|
|
avio_wb32(pb, track->par->sample_rate); |
|
|
|
@ -5158,7 +5161,8 @@ static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormat |
|
|
|
|
param_write_int(pb, "AudioTag", ff_codec_get_tag(ff_codec_wav_tags, |
|
|
|
|
track->par->codec_id)); |
|
|
|
|
param_write_int(pb, "Channels", track->par->ch_layout.nb_channels); |
|
|
|
|
param_write_int(pb, "SamplingRate", track->par->sample_rate); |
|
|
|
|
param_write_int(pb, "SamplingRate", track->tag == MKTAG('i','a','m','f') ? |
|
|
|
|
0 : track->par->sample_rate); |
|
|
|
|
param_write_int(pb, "BitsPerSample", 16); |
|
|
|
|
param_write_int(pb, "PacketSize", track->par->block_align ? |
|
|
|
|
track->par->block_align : 4); |
|
|
|
|