mirror of https://git.ffmpeg.org/ffmpeg.git
avformat/movenc: fix channel count and samplerate fields for IAMF tracks
Clause 6.2.3 of IAMF[1] states both of these shall be set to 0.
[1]https://aomediacodec.github.io/iamf/v1.0.0-errata.html#iasampleentry-section
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 180c869faf
)
This commit is contained in:
parent
507348799c
commit
a3bc5cd841
|
@ -1341,7 +1341,8 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex
|
||||||
avio_wb16(pb, 16);
|
avio_wb16(pb, 16);
|
||||||
avio_wb16(pb, track->audio_vbr ? -2 : 0); /* compression ID */
|
avio_wb16(pb, track->audio_vbr ? -2 : 0); /* compression ID */
|
||||||
} else { /* reserved for mp4/3gp */
|
} 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 ||
|
if (track->par->codec_id == AV_CODEC_ID_FLAC ||
|
||||||
track->par->codec_id == AV_CODEC_ID_ALAC) {
|
track->par->codec_id == AV_CODEC_ID_ALAC) {
|
||||||
avio_wb16(pb, track->par->bits_per_raw_sample);
|
avio_wb16(pb, track->par->bits_per_raw_sample);
|
||||||
|
@ -1352,7 +1353,9 @@ static int mov_write_audio_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex
|
||||||
}
|
}
|
||||||
|
|
||||||
avio_wb16(pb, 0); /* packet size (= 0) */
|
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);
|
avio_wb16(pb, 48000);
|
||||||
else if (track->par->codec_id == AV_CODEC_ID_TRUEHD)
|
else if (track->par->codec_id == AV_CODEC_ID_TRUEHD)
|
||||||
avio_wb32(pb, track->par->sample_rate);
|
avio_wb32(pb, track->par->sample_rate);
|
||||||
|
@ -4873,7 +4876,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,
|
param_write_int(pb, "AudioTag", ff_codec_get_tag(ff_codec_wav_tags,
|
||||||
track->par->codec_id));
|
track->par->codec_id));
|
||||||
param_write_int(pb, "Channels", track->par->ch_layout.nb_channels);
|
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, "BitsPerSample", 16);
|
||||||
param_write_int(pb, "PacketSize", track->par->block_align ?
|
param_write_int(pb, "PacketSize", track->par->block_align ?
|
||||||
track->par->block_align : 4);
|
track->par->block_align : 4);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
5585ed23481b6f28437b3707a1ed632d *tests/data/fate/mov-mp4-iamf-5_1_4.mp4
|
0316d0a483480ccd582fd20f06c77420 *tests/data/fate/mov-mp4-iamf-5_1_4.mp4
|
||||||
86340 tests/data/fate/mov-mp4-iamf-5_1_4.mp4
|
86340 tests/data/fate/mov-mp4-iamf-5_1_4.mp4
|
||||||
#extradata 0: 34, 0xafa70d5e
|
#extradata 0: 34, 0xafa70d5e
|
||||||
#extradata 1: 34, 0xafa70d5e
|
#extradata 1: 34, 0xafa70d5e
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
690d2b7a15b5489c59a9148fcd7975be *tests/data/fate/mov-mp4-iamf-7_1_4.mp4
|
d9ef5d14bbd37c5a06c1494cacdb8f29 *tests/data/fate/mov-mp4-iamf-7_1_4.mp4
|
||||||
100588 tests/data/fate/mov-mp4-iamf-7_1_4.mp4
|
100588 tests/data/fate/mov-mp4-iamf-7_1_4.mp4
|
||||||
#extradata 0: 34, 0xafa70d5e
|
#extradata 0: 34, 0xafa70d5e
|
||||||
#extradata 1: 34, 0xafa70d5e
|
#extradata 1: 34, 0xafa70d5e
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
2b3517591f7bf20e0f74f3ec1381af1e *tests/data/fate/mov-mp4-iamf-ambisonic_1.mp4
|
b0f4accdb8f1f3dfe594a6cbd6c00603 *tests/data/fate/mov-mp4-iamf-ambisonic_1.mp4
|
||||||
57743 tests/data/fate/mov-mp4-iamf-ambisonic_1.mp4
|
57743 tests/data/fate/mov-mp4-iamf-ambisonic_1.mp4
|
||||||
#extradata 0: 34, 0xad120cfe
|
#extradata 0: 34, 0xad120cfe
|
||||||
#extradata 1: 34, 0xad120cfe
|
#extradata 1: 34, 0xad120cfe
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
88c2b547f069f2d4a11d24f7f922251a *tests/data/fate/mov-mp4-iamf-stereo.mp4
|
87c17d1a9fd07e16c369d386d39c3249 *tests/data/fate/mov-mp4-iamf-stereo.mp4
|
||||||
15163 tests/data/fate/mov-mp4-iamf-stereo.mp4
|
15163 tests/data/fate/mov-mp4-iamf-stereo.mp4
|
||||||
#extradata 0: 34, 0xafa70d5e
|
#extradata 0: 34, 0xafa70d5e
|
||||||
#tb 0: 1/44100
|
#tb 0: 1/44100
|
||||||
|
|
Loading…
Reference in New Issue