@@ -176,7 +176,7 @@ static void usage(void)
176
176
printf (" --raw-chan n Set number of channels for raw input (default: 2)\n" );
177
177
printf (" --raw-endianness n 1 for big endian, 0 for little (default: 0)\n" );
178
178
printf (" --ignorelength Ignore the data length in Wave headers\n" );
179
- printf (" --channels <ambix> Override the format of the input channels\n" );
179
+ printf (" --channels Override the format of the input channels (ambix, individual) \n" );
180
180
printf ("\nDiagnostic options:\n" );
181
181
printf (" --serial n Force use of a specific stream serial number\n" );
182
182
printf (" --save-range file Save check values for every frame to a file\n" );
@@ -637,9 +637,11 @@ int main(int argc, char **argv)
637
637
} else if (strcmp (optname , "channels" )== 0 ) {
638
638
if (strcmp (optarg , "ambix" )== 0 ) {
639
639
inopt .channels_format = CHANNELS_FORMAT_AMBIX ;
640
+ } else if (strcmp (optarg , "individual" )== 0 ) {
641
+ inopt .channels_format = CHANNELS_FORMAT_INDIVIDUAL ;
640
642
} else {
641
643
fatal ("Invalid input format: %s\n"
642
- "--channels only supports 'ambix'\n" ,
644
+ "--channels only supports 'ambix' or 'individual' \n" ,
643
645
optarg );
644
646
}
645
647
} else if (strcmp (optname , "serial" )== 0 ) {
@@ -881,6 +883,11 @@ int main(int argc, char **argv)
881
883
fatal ("Error: downmixing is currently unimplemented for ambisonics input.\n" );
882
884
}
883
885
886
+ if (downmix > 0 && inopt .channels_format == CHANNELS_FORMAT_INDIVIDUAL ) {
887
+ /*Downmix of uncoupled channels not specified.*/
888
+ fatal ("Error: downmixing is currently unimplemented for independent input.\n" );
889
+ }
890
+
884
891
if (inopt .channels_format == CHANNELS_FORMAT_DEFAULT ) {
885
892
if (downmix == 0 && inopt .channels > 2 && bitrate > 0 && bitrate < (16000 * inopt .channels )) {
886
893
if (!quiet ) fprintf (stderr ,"Notice: Surround bitrate less than 16 kbit/s per channel, downmixing.\n" );
@@ -904,6 +911,8 @@ int main(int argc, char **argv)
904
911
(including the non-diegetic stereo track). For other orders with no
905
912
demixing matrices currently available, use channel mapping 2.*/
906
913
mapping_family = (chan >=4 && chan <=18 )?3 :2 ;
914
+ } else if (inopt .channels_format == CHANNELS_FORMAT_INDIVIDUAL ) {
915
+ mapping_family = 255 ;
907
916
} else {
908
917
mapping_family = chan > 8 ?255 :chan > 2 ;
909
918
}
0 commit comments