From: Steven S. <sch...@gm...> - 2015-03-04 17:13:35
|
Hi — It appears that qtinfo’s multichannel audio handing is simplistic and isn’t looking in the correct place for information. A 4 channel audio file (produced with Quicktime Player) produces this output from qtinfo: [mini:x/QuadroPopParty] sms% qtinfo 4.mov in quicktime_get_chan Type: Quicktime 1 audio tracks. 4 channels, 24 bits, sample rate 48000, length 99918240 samples, compressor lpcm. Sample format: 32 bit signed. Channel setup: [1]Front Left, [2]Front Right, [0]Unknown, [0]Unknown Language: eng supported. 0 video tracks. 0 text tracks. [mini:x/QuadroPopParty] sms% qtinfo 4.mov Type: Quicktime 1 audio tracks. 4 channels, 24 bits, sample rate 48000, length 99918240 samples, compressor lpcm. Sample format: 32 bit signed. Channel setup: Front Left, Front Right, Unknown, Unknown Language: eng supported. 0 video tracks. 0 text tracks. [mini:x/QuadroPopParty] sms% qtinfo 4.mov Type: Quicktime 1 audio tracks. 4 channels, 24 bits, sample rate 48000, length 99918240 samples, compressor lpcm. Sample format: 32 bit signed. Channel setup: Front Left, Front Right, Unknown, Unknown Language: eng supported. 0 video tracks. 0 text tracks. After a morning of puzzling over this and seeing only that multichannel.c is an incomplete subset of chan.c I remembered that qtdump might help. qtdump says about the stsd atom: sample table sample description (stsd) version 0 flags 0 total_entries 1 format lpcm reserved 00 00 00 00 00 00 data_reference 1 version 2 revision 0 vendor xxxxx channels 4 sample_size 24 samplerate 48000.000000 formatSpecificFlags: 0000000e constBytesPerAudioPacket: 12 constLPCMFramesPerAudioPacket: 1 channel description version 0 flags 0 mChannelLayoutTag: 0x00000000 [Use channel decriptions] mChannelBitmap: 0x00000000 mNumberChannelDescriptions: 4 mChannelLabel[0]: 0x00000001 [Left] mChannelFlags[0]: 0x00000000 mCoordinates[0]: [0.000000 0.000000 0.000000] mChannelLabel[1]: 0x00000002 [Right] mChannelFlags[1]: 0x00000000 mCoordinates[1]: [0.000000 0.000000 0.000000] mChannelLabel[2]: 0x00000021 [Rear Surround Left] mChannelFlags[2]: 0x00000000 mCoordinates[2]: [0.000000 0.000000 0.000000] mChannelLabel[3]: 0x00000022 [Rear Surround Right] mChannelFlags[3]: 0x00000000 mCoordinates[3]: [0.000000 0.000000 0.000000] Ah ha - so the quicktime file is correct and qtinfo is wrong. Seems that qtinfo uses the multichannel.c module rather than the quicktime_chan_dump logic of chan.c. is there a reason multichannel.c is around instead of using the logic in chan.c? |