diff --git a/libavutil/tests/channel_layout.c b/libavutil/tests/channel_layout.c index 23bb6009fb..d62b69a5db 100644 --- a/libavutil/tests/channel_layout.c +++ b/libavutil/tests/channel_layout.c @@ -162,39 +162,50 @@ static const char *channel_layout_retype(AVChannelLayout *layout, AVBPrint *bp, } #define CHANNEL_NAME(x) \ - channel_name(&bp, (x)); + channel_name(&bp, (x)); \ + printf("With %-32s %14s\n", AV_STRINGIFY(x)":", bp.str) #define CHANNEL_DESCRIPTION(x) \ - channel_description(&bp, (x)); + channel_description(&bp, (x)); \ + printf("With %-23s %23s\n", AV_STRINGIFY(x)":", bp.str); + +#define CHANNEL_FROM_STRING(x) \ + printf("With %-38s %8d\n", AV_STRINGIFY(x)":", av_channel_from_string(x)) #define CHANNEL_LAYOUT_FROM_MASK(x) \ channel_layout_from_mask(&layout, &bp, (x)); #define CHANNEL_LAYOUT_FROM_STRING(x) \ - channel_layout_from_string(&layout, &bp, (x)); + channel_layout_from_string(&layout, &bp, (x)); \ + printf("With \"%s\":%*s %32s\n", x, strlen(x) > 32 ? 0 : 32 - (int)strlen(x), "", bp.str); -#define CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(x) \ +#define CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(l, x) \ ret = av_channel_layout_channel_from_index(&layout, x); \ if (ret < 0) \ - ret = -1 + ret = -1; \ + printf("On \"%s\" layout with %2d: %8d\n", l, x, ret) -#define CHANNEL_LAYOUT_SUBSET(x) \ - mask = av_channel_layout_subset(&layout, x) +#define CHANNEL_LAYOUT_SUBSET(l, xstr, x) \ + mask = av_channel_layout_subset(&layout, x); \ + printf("On \"%s\" layout with %-22s 0x%"PRIx64"\n", l, xstr, mask) -#define CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(x) \ +#define CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(l, x) \ ret = av_channel_layout_index_from_channel(&layout, x); \ if (ret < 0) \ - ret = -1 + ret = -1; \ + printf("On \"%s\" layout with %-23s %3d\n", l, AV_STRINGIFY(x)":", ret) -#define CHANNEL_LAYOUT_CHANNEL_FROM_STRING(x) \ +#define CHANNEL_LAYOUT_CHANNEL_FROM_STRING(l, x) \ ret = av_channel_layout_channel_from_string(&layout, x); \ if (ret < 0) \ - ret = -1 + ret = -1; \ + printf("On \"%s\" layout with %-21s %3d\n", bp.str, AV_STRINGIFY(x)":", ret); -#define CHANNEL_LAYOUT_INDEX_FROM_STRING(x) \ +#define CHANNEL_LAYOUT_INDEX_FROM_STRING(l, x) \ ret = av_channel_layout_index_from_string(&layout, x); \ if (ret < 0) \ - ret = -1 + ret = -1; \ + printf("On \"%s\" layout with %-20s %3d\n", l, AV_STRINGIFY(x)":", ret); int main(void) { @@ -226,152 +237,94 @@ int main(void) printf("\nTesting av_channel_name\n"); CHANNEL_NAME(AV_CHAN_FRONT_LEFT); - printf("With AV_CHAN_FRONT_LEFT: %27s\n", bp.str); CHANNEL_NAME(AV_CHAN_FRONT_RIGHT); - printf("With AV_CHAN_FRONT_RIGHT: %26s\n", bp.str); CHANNEL_NAME(63); - printf("With 63: %43s\n", bp.str); CHANNEL_NAME(AV_CHAN_AMBISONIC_BASE); - printf("With AV_CHAN_AMBISONIC_BASE: %23s\n", bp.str); CHANNEL_NAME(AV_CHAN_AMBISONIC_END); - printf("With AV_CHAN_AMBISONIC_END: %24s\n", bp.str); printf("Testing av_channel_description\n"); CHANNEL_DESCRIPTION(AV_CHAN_FRONT_LEFT); - printf("With AV_CHAN_FRONT_LEFT: %27s\n", bp.str); CHANNEL_DESCRIPTION(AV_CHAN_FRONT_RIGHT); - printf("With AV_CHAN_FRONT_RIGHT: %26s\n", bp.str); CHANNEL_DESCRIPTION(63); - printf("With 63: %43s\n", bp.str); CHANNEL_DESCRIPTION(AV_CHAN_AMBISONIC_BASE); - printf("With AV_CHAN_AMBISONIC_BASE: %23s\n", bp.str); CHANNEL_DESCRIPTION(AV_CHAN_AMBISONIC_END); - printf("With AV_CHAN_AMBISONIC_END: %24s\n", bp.str); printf("\nTesting av_channel_from_string\n"); - printf("With \"FL\": %41d\n", av_channel_from_string("FL")); - printf("With \"FR\": %41d\n", av_channel_from_string("FR")); - printf("With \"USR63\": %38d\n", av_channel_from_string("USR63")); - printf("With \"AMBI0\": %38d\n", av_channel_from_string("AMBI0")); - printf("With \"AMBI1023\": %35d\n", av_channel_from_string("AMBI1023")); + CHANNEL_FROM_STRING("FL"); + CHANNEL_FROM_STRING("FR"); + CHANNEL_FROM_STRING("USR63"); + CHANNEL_FROM_STRING("AMBI0"); + CHANNEL_FROM_STRING("AMBI1023"); printf("\n==Native layouts==\n"); printf("\nTesting av_channel_layout_from_string\n"); CHANNEL_LAYOUT_FROM_STRING("0x3f"); - printf("With \"0x3f\": %39s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("63"); - printf("With \"63\": %41s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("6c"); - printf("With \"6c\": %41s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("6C"); - printf("With \"6C\": %41s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("6 channels"); - printf("With \"6 channels\": %33s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("6 channels (FL+FR+FC+LFE+BL+BR)"); - printf("With \"6 channels (FL+FR+FC+LFE+BL+BR)\": %12s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("FL+FR+FC+LFE+BL+BR"); - printf("With \"FL+FR+FC+LFE+BL+BR\": %25s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("5.1"); - printf("With \"5.1\": %40s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("FL+FR+USR63"); - printf("With \"FL+FR+USR63\": %32s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("FL+FR+FC+LFE+SL+SR"); - printf("With \"FL+FR+FC+LFE+SL+SR\": %25s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("5.1(side)"); - printf("With \"5.1(side)\": %34s\n", bp.str); printf("\nTesting av_channel_layout_from_mask\n"); CHANNEL_LAYOUT_FROM_MASK(AV_CH_LAYOUT_5POINT1); printf("With AV_CH_LAYOUT_5POINT1: %25s\n", bp.str); printf("\nTesting av_channel_layout_channel_from_index\n"); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(0); - printf("On 5.1(side) layout with 0: %24d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(1); - printf("On 5.1(side) layout with 1: %24d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(2); - printf("On 5.1(side) layout with 2: %24d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(3); - printf("On 5.1(side) layout with 3: %24d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(4); - printf("On 5.1(side) layout with 4: %24d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(5); - printf("On 5.1(side) layout with 5: %24d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(6); - printf("On 5.1(side) layout with 6: %24d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 0); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 1); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 2); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 3); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 4); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 5); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 6); printf("\nTesting av_channel_layout_index_from_channel\n"); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_LEFT); - printf("On 5.1(side) layout with AV_CHAN_FRONT_LEFT: %7d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_RIGHT); - printf("On 5.1(side) layout with AV_CHAN_FRONT_RIGHT: %6d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_CENTER); - printf("On 5.1(side) layout with AV_CHAN_FRONT_CENTER: %5d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_LOW_FREQUENCY); - printf("On 5.1(side) layout with AV_CHAN_LOW_FREQUENCY: %4d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_SIDE_LEFT); - printf("On 5.1(side) layout with AV_CHAN_SIDE_LEFT: %8d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_SIDE_RIGHT); - printf("On 5.1(side) layout with AV_CHAN_SIDE_RIGHT: %7d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_BACK_CENTER); - printf("On 5.1(side) layout with AV_CHAN_BACK_CENTER: %6d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_LEFT); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_RIGHT); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_CENTER); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_LOW_FREQUENCY); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_SIDE_LEFT); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_SIDE_RIGHT); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_BACK_CENTER); printf("\nTesting av_channel_layout_channel_from_string\n"); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FL"); - printf("On 5.1(side) layout with \"FL\": %21d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FR"); - printf("On 5.1(side) layout with \"FR\": %21d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FC"); - printf("On 5.1(side) layout with \"FC\": %21d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("LFE"); - printf("On 5.1(side) layout with \"LFE\": %20d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("SL"); - printf("On 5.1(side) layout with \"SL\": %21d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("SR"); - printf("On 5.1(side) layout with \"SR\": %21d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("BC"); - printf("On 5.1(side) layout with \"BC\": %21d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FL"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FR"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FC"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "LFE"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "SL"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "SR"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "BC"); printf("\nTesting av_channel_layout_index_from_string\n"); - CHANNEL_LAYOUT_INDEX_FROM_STRING("FL"); - printf("On 5.1(side) layout with \"FL\": %21d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("FR"); - printf("On 5.1(side) layout with \"FR\": %21d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("FC"); - printf("On 5.1(side) layout with \"FC\": %21d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("LFE"); - printf("On 5.1(side) layout with \"LFE\": %20d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("SL"); - printf("On 5.1(side) layout with \"SL\": %21d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("SR"); - printf("On 5.1(side) layout with \"SR\": %21d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("BC"); - printf("On 5.1(side) layout with \"BC\": %21d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FL"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FR"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FC"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "LFE"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "SL"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "SR"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "BC"); printf("\nTesting av_channel_layout_subset\n"); - CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_STEREO); - printf("On 5.1(side) layout with AV_CH_LAYOUT_STEREO: 0x%"PRIx64"\n", mask); - CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_2POINT1); - printf("On 5.1(side) layout with AV_CH_LAYOUT_2POINT1: 0x%"PRIx64"\n", mask); - CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_4POINT1); - printf("On 5.1(side) layout with AV_CH_LAYOUT_4POINT1: 0x%"PRIx64"\n", mask); + CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_STEREO:", AV_CH_LAYOUT_STEREO); + CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_2POINT1:", AV_CH_LAYOUT_2POINT1); + CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_4POINT1:", AV_CH_LAYOUT_4POINT1); printf("\n==Custom layouts==\n"); printf("\nTesting av_channel_layout_from_string\n"); CHANNEL_LAYOUT_FROM_STRING("FL+FR+FC+BL+BR+LFE"); - printf("With \"FL+FR+FC+BL+BR+LFE\": %34s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("2 channels (FR+FL)"); - printf("With \"2 channels (FR+FL)\": %34s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("ambisonic 1+FR+FL"); - printf("With \"ambisonic 1+FR+FL\": %35s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("ambisonic 2+FC@Foo"); - printf("With \"ambisonic 2+FC@Foo\": %34s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("FL@Foo+FR@Bar"); - printf("With \"FL@Foo+FR@Bar\": %39s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("FR+FL@Foo+USR63@Foo"); - printf("With \"FR+FL@Foo+USR63@Foo\": %33s\n", bp.str); ret = av_channel_layout_copy(&layout2, &layout); if (ret < 0) { @@ -383,104 +336,64 @@ int main(void) printf("Channel layout and its copy compare unequal; ret: %d\n", ret); printf("\nTesting av_channel_layout_index_from_string\n"); - CHANNEL_LAYOUT_INDEX_FROM_STRING("FR"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FR\": %18d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("FL"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FL\": %18d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("USR63"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"USR63\": %15d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("Foo"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"Foo\": %17d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("@Foo"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"@Foo\": %16d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("FR@Foo"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FR@Foo\": %14d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("FL@Foo"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FL@Foo\": %14d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("USR63@Foo"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"USR63@Foo\": %11d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_STRING("BC"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"BC\": %18d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FR"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FL"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "USR63"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "Foo"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "@Foo"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FR@Foo"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FL@Foo"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "USR63@Foo"); + CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "BC"); printf("\nTesting av_channel_layout_channel_from_string\n"); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FR"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FR\": %18d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FL"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FL\": %18d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("USR63"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"USR63\": %15d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("Foo"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"Foo\": %17d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("@Foo"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"@Foo\": %16d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FR@Foo"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FR@Foo\": %14d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FL@Foo"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FL@Foo\": %14d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("USR63@Foo"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"USR63@Foo\": %11d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_STRING("BC"); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"BC\": %18d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FR"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FL"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "USR63"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "Foo"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "@Foo"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FR@Foo"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FL@Foo"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "USR63@Foo"); + CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "BC"); printf("\nTesting av_channel_layout_index_from_channel\n"); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_RIGHT); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with AV_CHAN_FRONT_RIGHT: %3d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_LEFT); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with AV_CHAN_FRONT_LEFT: %4d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(63); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with 63: %20d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_BACK_CENTER); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with AV_CHAN_BACK_CENTER: %3d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_RIGHT); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_LEFT); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, 63); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_BACK_CENTER); printf("\nTesting av_channel_layout_channel_from_index\n"); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(0); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with 0: %21d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(1); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with 1: %21d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(2); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with 2: %21d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(3); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with 3: %21d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 0); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 1); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 2); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 3); printf("\nTesting av_channel_layout_subset\n"); - CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_STEREO); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with AV_CH_LAYOUT_STEREO: 0x%"PRIx64"\n", mask); - CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_QUAD); - printf("On \"FR+FL@Foo+USR63@Foo\" layout with AV_CH_LAYOUT_QUAD: 0x%"PRIx64"\n", mask); + CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_STEREO:", AV_CH_LAYOUT_STEREO); + CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_QUAD:", AV_CH_LAYOUT_QUAD); printf("\n==Ambisonic layouts==\n"); printf("\nTesting av_channel_layout_from_string\n"); CHANNEL_LAYOUT_FROM_STRING("ambisonic 1"); - printf("With \"ambisonic 1\": %41s\n", bp.str); CHANNEL_LAYOUT_FROM_STRING("ambisonic 2+stereo"); - printf("With \"ambisonic 2+stereo\": %34s\n", bp.str); printf("\nTesting av_channel_layout_index_from_channel\n"); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_AMBISONIC_BASE); - printf("On \"ambisonic 2+stereo\" layout with AV_CHAN_AMBISONIC_BASE: %d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_LEFT); - printf("On \"ambisonic 2+stereo\" layout with AV_CHAN_FRONT_LEFT: %5d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_RIGHT); - printf("On \"ambisonic 2+stereo\" layout with AV_CHAN_FRONT_RIGHT: %4d\n", ret); - CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_BACK_CENTER); - printf("On \"ambisonic 2+stereo\" layout with AV_CHAN_BACK_CENTER: %4d\n", ret); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_AMBISONIC_BASE); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_LEFT); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_RIGHT); + CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_BACK_CENTER); printf("\nTesting av_channel_layout_channel_from_index\n"); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(0); - printf("On \"ambisonic 2+stereo\" layout with 0: %22d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(9); - printf("On \"ambisonic 2+stereo\" layout with 9: %22d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(10); - printf("On \"ambisonic 2+stereo\" layout with 10: %21d\n", ret); - CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(11); - printf("On \"ambisonic 2+stereo\" layout with 11: %21d\n", ret); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 0); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 9); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 10); + CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 11); printf("\nTesting av_channel_layout_subset\n"); - CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_STEREO); - printf("On \"ambisonic 2+stereo\" layout with AV_CH_LAYOUT_STEREO: 0x%"PRIx64"\n", mask); - CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_QUAD); - printf("On \"ambisonic 2+stereo\" layout with AV_CH_LAYOUT_QUAD: 0x%"PRIx64"\n", mask); + CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_STEREO:", AV_CH_LAYOUT_STEREO); + CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_QUAD:", AV_CH_LAYOUT_QUAD); av_channel_layout_uninit(&layout); av_channel_layout_uninit(&layout2); diff --git a/tests/ref/fate/channel_layout b/tests/ref/fate/channel_layout index 466fa78d9e..b98ccdb0f0 100644 --- a/tests/ref/fate/channel_layout +++ b/tests/ref/fate/channel_layout @@ -60,131 +60,131 @@ With "AMBI1023": 2047 ==Native layouts== Testing av_channel_layout_from_string -With "0x3f": 5.1 -With "63": 5.1 -With "6c": 5.1 -With "6C": 6 channels -With "6 channels": 6 channels -With "6 channels (FL+FR+FC+LFE+BL+BR)": 5.1 -With "FL+FR+FC+LFE+BL+BR": 5.1 -With "5.1": 5.1 -With "FL+FR+USR63": 3 channels (FL+FR+USR63) -With "FL+FR+FC+LFE+SL+SR": 5.1(side) -With "5.1(side)": 5.1(side) +With "0x3f": 5.1 +With "63": 5.1 +With "6c": 5.1 +With "6C": 6 channels +With "6 channels": 6 channels +With "6 channels (FL+FR+FC+LFE+BL+BR)": 5.1 +With "FL+FR+FC+LFE+BL+BR": 5.1 +With "5.1": 5.1 +With "FL+FR+USR63": 3 channels (FL+FR+USR63) +With "FL+FR+FC+LFE+SL+SR": 5.1(side) +With "5.1(side)": 5.1(side) Testing av_channel_layout_from_mask With AV_CH_LAYOUT_5POINT1: 5.1(side) Testing av_channel_layout_channel_from_index -On 5.1(side) layout with 0: 0 -On 5.1(side) layout with 1: 1 -On 5.1(side) layout with 2: 2 -On 5.1(side) layout with 3: 3 -On 5.1(side) layout with 4: 9 -On 5.1(side) layout with 5: 10 -On 5.1(side) layout with 6: -1 +On "5.1(side)" layout with 0: 0 +On "5.1(side)" layout with 1: 1 +On "5.1(side)" layout with 2: 2 +On "5.1(side)" layout with 3: 3 +On "5.1(side)" layout with 4: 9 +On "5.1(side)" layout with 5: 10 +On "5.1(side)" layout with 6: -1 Testing av_channel_layout_index_from_channel -On 5.1(side) layout with AV_CHAN_FRONT_LEFT: 0 -On 5.1(side) layout with AV_CHAN_FRONT_RIGHT: 1 -On 5.1(side) layout with AV_CHAN_FRONT_CENTER: 2 -On 5.1(side) layout with AV_CHAN_LOW_FREQUENCY: 3 -On 5.1(side) layout with AV_CHAN_SIDE_LEFT: 4 -On 5.1(side) layout with AV_CHAN_SIDE_RIGHT: 5 -On 5.1(side) layout with AV_CHAN_BACK_CENTER: -1 +On "5.1(side)" layout with AV_CHAN_FRONT_LEFT: 0 +On "5.1(side)" layout with AV_CHAN_FRONT_RIGHT: 1 +On "5.1(side)" layout with AV_CHAN_FRONT_CENTER: 2 +On "5.1(side)" layout with AV_CHAN_LOW_FREQUENCY: 3 +On "5.1(side)" layout with AV_CHAN_SIDE_LEFT: 4 +On "5.1(side)" layout with AV_CHAN_SIDE_RIGHT: 5 +On "5.1(side)" layout with AV_CHAN_BACK_CENTER: -1 Testing av_channel_layout_channel_from_string -On 5.1(side) layout with "FL": 0 -On 5.1(side) layout with "FR": 1 -On 5.1(side) layout with "FC": 2 -On 5.1(side) layout with "LFE": 3 -On 5.1(side) layout with "SL": 9 -On 5.1(side) layout with "SR": 10 -On 5.1(side) layout with "BC": -1 +On "5.1(side)" layout with "FL": 0 +On "5.1(side)" layout with "FR": 1 +On "5.1(side)" layout with "FC": 2 +On "5.1(side)" layout with "LFE": 3 +On "5.1(side)" layout with "SL": 9 +On "5.1(side)" layout with "SR": 10 +On "5.1(side)" layout with "BC": -1 Testing av_channel_layout_index_from_string -On 5.1(side) layout with "FL": 0 -On 5.1(side) layout with "FR": 1 -On 5.1(side) layout with "FC": 2 -On 5.1(side) layout with "LFE": 3 -On 5.1(side) layout with "SL": 4 -On 5.1(side) layout with "SR": 5 -On 5.1(side) layout with "BC": -1 +On "5.1(side)" layout with "FL": 0 +On "5.1(side)" layout with "FR": 1 +On "5.1(side)" layout with "FC": 2 +On "5.1(side)" layout with "LFE": 3 +On "5.1(side)" layout with "SL": 4 +On "5.1(side)" layout with "SR": 5 +On "5.1(side)" layout with "BC": -1 Testing av_channel_layout_subset -On 5.1(side) layout with AV_CH_LAYOUT_STEREO: 0x3 -On 5.1(side) layout with AV_CH_LAYOUT_2POINT1: 0xb -On 5.1(side) layout with AV_CH_LAYOUT_4POINT1: 0xf +On "5.1(side)" layout with AV_CH_LAYOUT_STEREO: 0x3 +On "5.1(side)" layout with AV_CH_LAYOUT_2POINT1: 0xb +On "5.1(side)" layout with AV_CH_LAYOUT_4POINT1: 0xf ==Custom layouts== Testing av_channel_layout_from_string -With "FL+FR+FC+BL+BR+LFE": 6 channels (FL+FR+FC+BL+BR+LFE) -With "2 channels (FR+FL)": 2 channels (FR+FL) -With "ambisonic 1+FR+FL": ambisonic 1+2 channels (FR+FL) -With "ambisonic 2+FC@Foo": ambisonic 2+1 channels (FC@Foo) -With "FL@Foo+FR@Bar": 2 channels (FL@Foo+FR@Bar) -With "FR+FL@Foo+USR63@Foo": 3 channels (FR+FL@Foo+USR63@Foo) +With "FL+FR+FC+BL+BR+LFE": 6 channels (FL+FR+FC+BL+BR+LFE) +With "2 channels (FR+FL)": 2 channels (FR+FL) +With "ambisonic 1+FR+FL": ambisonic 1+2 channels (FR+FL) +With "ambisonic 2+FC@Foo": ambisonic 2+1 channels (FC@Foo) +With "FL@Foo+FR@Bar": 2 channels (FL@Foo+FR@Bar) +With "FR+FL@Foo+USR63@Foo": 3 channels (FR+FL@Foo+USR63@Foo) Testing av_channel_layout_index_from_string -On "FR+FL@Foo+USR63@Foo" layout with "FR": 0 -On "FR+FL@Foo+USR63@Foo" layout with "FL": 1 -On "FR+FL@Foo+USR63@Foo" layout with "USR63": 2 -On "FR+FL@Foo+USR63@Foo" layout with "Foo": -1 -On "FR+FL@Foo+USR63@Foo" layout with "@Foo": 1 -On "FR+FL@Foo+USR63@Foo" layout with "FR@Foo": -1 -On "FR+FL@Foo+USR63@Foo" layout with "FL@Foo": 1 -On "FR+FL@Foo+USR63@Foo" layout with "USR63@Foo": 2 -On "FR+FL@Foo+USR63@Foo" layout with "BC": -1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FR": 0 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FL": 1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "USR63": 2 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "Foo": -1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "@Foo": 1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FR@Foo": -1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FL@Foo": 1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "USR63@Foo": 2 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "BC": -1 Testing av_channel_layout_channel_from_string -On "FR+FL@Foo+USR63@Foo" layout with "FR": 1 -On "FR+FL@Foo+USR63@Foo" layout with "FL": 0 -On "FR+FL@Foo+USR63@Foo" layout with "USR63": 63 -On "FR+FL@Foo+USR63@Foo" layout with "Foo": -1 -On "FR+FL@Foo+USR63@Foo" layout with "@Foo": 0 -On "FR+FL@Foo+USR63@Foo" layout with "FR@Foo": -1 -On "FR+FL@Foo+USR63@Foo" layout with "FL@Foo": 0 -On "FR+FL@Foo+USR63@Foo" layout with "USR63@Foo": 63 -On "FR+FL@Foo+USR63@Foo" layout with "BC": -1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FR": 1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FL": 0 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "USR63": 63 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "Foo": -1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "@Foo": 0 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FR@Foo": -1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FL@Foo": 0 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "USR63@Foo": 63 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "BC": -1 Testing av_channel_layout_index_from_channel -On "FR+FL@Foo+USR63@Foo" layout with AV_CHAN_FRONT_RIGHT: 0 -On "FR+FL@Foo+USR63@Foo" layout with AV_CHAN_FRONT_LEFT: 1 -On "FR+FL@Foo+USR63@Foo" layout with 63: 2 -On "FR+FL@Foo+USR63@Foo" layout with AV_CHAN_BACK_CENTER: -1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with AV_CHAN_FRONT_RIGHT: 0 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with AV_CHAN_FRONT_LEFT: 1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with 63: 2 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with AV_CHAN_BACK_CENTER: -1 Testing av_channel_layout_channel_from_index -On "FR+FL@Foo+USR63@Foo" layout with 0: 1 -On "FR+FL@Foo+USR63@Foo" layout with 1: 0 -On "FR+FL@Foo+USR63@Foo" layout with 2: 63 -On "FR+FL@Foo+USR63@Foo" layout with 3: -1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with 0: 1 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with 1: 0 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with 2: 63 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with 3: -1 Testing av_channel_layout_subset -On "FR+FL@Foo+USR63@Foo" layout with AV_CH_LAYOUT_STEREO: 0x3 -On "FR+FL@Foo+USR63@Foo" layout with AV_CH_LAYOUT_QUAD: 0x3 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with AV_CH_LAYOUT_STEREO: 0x3 +On "3 channels (FR+FL@Foo+USR63@Foo)" layout with AV_CH_LAYOUT_QUAD: 0x3 ==Ambisonic layouts== Testing av_channel_layout_from_string -With "ambisonic 1": ambisonic 1 -With "ambisonic 2+stereo": ambisonic 2+stereo +With "ambisonic 1": ambisonic 1 +With "ambisonic 2+stereo": ambisonic 2+stereo Testing av_channel_layout_index_from_channel -On "ambisonic 2+stereo" layout with AV_CHAN_AMBISONIC_BASE: 0 -On "ambisonic 2+stereo" layout with AV_CHAN_FRONT_LEFT: 9 -On "ambisonic 2+stereo" layout with AV_CHAN_FRONT_RIGHT: 10 -On "ambisonic 2+stereo" layout with AV_CHAN_BACK_CENTER: -1 +On "ambisonic 2+stereo" layout with AV_CHAN_AMBISONIC_BASE: 0 +On "ambisonic 2+stereo" layout with AV_CHAN_FRONT_LEFT: 9 +On "ambisonic 2+stereo" layout with AV_CHAN_FRONT_RIGHT: 10 +On "ambisonic 2+stereo" layout with AV_CHAN_BACK_CENTER: -1 Testing av_channel_layout_channel_from_index -On "ambisonic 2+stereo" layout with 0: 1024 -On "ambisonic 2+stereo" layout with 9: 0 -On "ambisonic 2+stereo" layout with 10: 1 -On "ambisonic 2+stereo" layout with 11: -1 +On "ambisonic 2+stereo" layout with 0: 1024 +On "ambisonic 2+stereo" layout with 9: 0 +On "ambisonic 2+stereo" layout with 10: 1 +On "ambisonic 2+stereo" layout with 11: -1 Testing av_channel_layout_subset -On "ambisonic 2+stereo" layout with AV_CH_LAYOUT_STEREO: 0x3 -On "ambisonic 2+stereo" layout with AV_CH_LAYOUT_QUAD: 0x3 +On "ambisonic 2+stereo" layout with AV_CH_LAYOUT_STEREO: 0x3 +On "ambisonic 2+stereo" layout with AV_CH_LAYOUT_QUAD: 0x3 Testing av_channel_layout_retype With "FL@Boo": CUSTOM (1 channels (FL@Boo))