avutil/tests/channel_layout: make printing results part of the tests

Deduplicates a lot of code.

Some minor differences (mostly white space and inconsistent use of quotes) are
expected in the fate tests, there was no point aiming for exactly the same
formatting.

Signed-off-by: Marton Balint <cus@passwd.hu>
release/7.0
Marton Balint 11 months ago
parent 26e0454cad
commit b2b22c2d1a
  1. 283
      libavutil/tests/channel_layout.c
  2. 118
      tests/ref/fate/channel_layout

@ -162,39 +162,50 @@ static const char *channel_layout_retype(AVChannelLayout *layout, AVBPrint *bp,
} }
#define CHANNEL_NAME(x) \ #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) \ #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) \ #define CHANNEL_LAYOUT_FROM_MASK(x) \
channel_layout_from_mask(&layout, &bp, (x)); channel_layout_from_mask(&layout, &bp, (x));
#define CHANNEL_LAYOUT_FROM_STRING(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); \ ret = av_channel_layout_channel_from_index(&layout, x); \
if (ret < 0) \ if (ret < 0) \
ret = -1 ret = -1; \
printf("On \"%s\" layout with %2d: %8d\n", l, x, ret)
#define CHANNEL_LAYOUT_SUBSET(x) \ #define CHANNEL_LAYOUT_SUBSET(l, xstr, x) \
mask = av_channel_layout_subset(&layout, 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); \ ret = av_channel_layout_index_from_channel(&layout, x); \
if (ret < 0) \ 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); \ ret = av_channel_layout_channel_from_string(&layout, x); \
if (ret < 0) \ 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); \ ret = av_channel_layout_index_from_string(&layout, x); \
if (ret < 0) \ if (ret < 0) \
ret = -1 ret = -1; \
printf("On \"%s\" layout with %-20s %3d\n", l, AV_STRINGIFY(x)":", ret);
int main(void) int main(void)
{ {
@ -226,152 +237,94 @@ int main(void)
printf("\nTesting av_channel_name\n"); printf("\nTesting av_channel_name\n");
CHANNEL_NAME(AV_CHAN_FRONT_LEFT); CHANNEL_NAME(AV_CHAN_FRONT_LEFT);
printf("With AV_CHAN_FRONT_LEFT: %27s\n", bp.str);
CHANNEL_NAME(AV_CHAN_FRONT_RIGHT); CHANNEL_NAME(AV_CHAN_FRONT_RIGHT);
printf("With AV_CHAN_FRONT_RIGHT: %26s\n", bp.str);
CHANNEL_NAME(63); CHANNEL_NAME(63);
printf("With 63: %43s\n", bp.str);
CHANNEL_NAME(AV_CHAN_AMBISONIC_BASE); CHANNEL_NAME(AV_CHAN_AMBISONIC_BASE);
printf("With AV_CHAN_AMBISONIC_BASE: %23s\n", bp.str);
CHANNEL_NAME(AV_CHAN_AMBISONIC_END); CHANNEL_NAME(AV_CHAN_AMBISONIC_END);
printf("With AV_CHAN_AMBISONIC_END: %24s\n", bp.str);
printf("Testing av_channel_description\n"); printf("Testing av_channel_description\n");
CHANNEL_DESCRIPTION(AV_CHAN_FRONT_LEFT); CHANNEL_DESCRIPTION(AV_CHAN_FRONT_LEFT);
printf("With AV_CHAN_FRONT_LEFT: %27s\n", bp.str);
CHANNEL_DESCRIPTION(AV_CHAN_FRONT_RIGHT); CHANNEL_DESCRIPTION(AV_CHAN_FRONT_RIGHT);
printf("With AV_CHAN_FRONT_RIGHT: %26s\n", bp.str);
CHANNEL_DESCRIPTION(63); CHANNEL_DESCRIPTION(63);
printf("With 63: %43s\n", bp.str);
CHANNEL_DESCRIPTION(AV_CHAN_AMBISONIC_BASE); CHANNEL_DESCRIPTION(AV_CHAN_AMBISONIC_BASE);
printf("With AV_CHAN_AMBISONIC_BASE: %23s\n", bp.str);
CHANNEL_DESCRIPTION(AV_CHAN_AMBISONIC_END); CHANNEL_DESCRIPTION(AV_CHAN_AMBISONIC_END);
printf("With AV_CHAN_AMBISONIC_END: %24s\n", bp.str);
printf("\nTesting av_channel_from_string\n"); printf("\nTesting av_channel_from_string\n");
printf("With \"FL\": %41d\n", av_channel_from_string("FL")); CHANNEL_FROM_STRING("FL");
printf("With \"FR\": %41d\n", av_channel_from_string("FR")); CHANNEL_FROM_STRING("FR");
printf("With \"USR63\": %38d\n", av_channel_from_string("USR63")); CHANNEL_FROM_STRING("USR63");
printf("With \"AMBI0\": %38d\n", av_channel_from_string("AMBI0")); CHANNEL_FROM_STRING("AMBI0");
printf("With \"AMBI1023\": %35d\n", av_channel_from_string("AMBI1023")); CHANNEL_FROM_STRING("AMBI1023");
printf("\n==Native layouts==\n"); printf("\n==Native layouts==\n");
printf("\nTesting av_channel_layout_from_string\n"); printf("\nTesting av_channel_layout_from_string\n");
CHANNEL_LAYOUT_FROM_STRING("0x3f"); CHANNEL_LAYOUT_FROM_STRING("0x3f");
printf("With \"0x3f\": %39s\n", bp.str);
CHANNEL_LAYOUT_FROM_STRING("63"); CHANNEL_LAYOUT_FROM_STRING("63");
printf("With \"63\": %41s\n", bp.str);
CHANNEL_LAYOUT_FROM_STRING("6c"); CHANNEL_LAYOUT_FROM_STRING("6c");
printf("With \"6c\": %41s\n", bp.str);
CHANNEL_LAYOUT_FROM_STRING("6C"); CHANNEL_LAYOUT_FROM_STRING("6C");
printf("With \"6C\": %41s\n", bp.str);
CHANNEL_LAYOUT_FROM_STRING("6 channels"); 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)"); 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"); 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"); CHANNEL_LAYOUT_FROM_STRING("5.1");
printf("With \"5.1\": %40s\n", bp.str);
CHANNEL_LAYOUT_FROM_STRING("FL+FR+USR63"); 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"); 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)"); CHANNEL_LAYOUT_FROM_STRING("5.1(side)");
printf("With \"5.1(side)\": %34s\n", bp.str);
printf("\nTesting av_channel_layout_from_mask\n"); printf("\nTesting av_channel_layout_from_mask\n");
CHANNEL_LAYOUT_FROM_MASK(AV_CH_LAYOUT_5POINT1); CHANNEL_LAYOUT_FROM_MASK(AV_CH_LAYOUT_5POINT1);
printf("With AV_CH_LAYOUT_5POINT1: %25s\n", bp.str); printf("With AV_CH_LAYOUT_5POINT1: %25s\n", bp.str);
printf("\nTesting av_channel_layout_channel_from_index\n"); printf("\nTesting av_channel_layout_channel_from_index\n");
CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(0); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 0);
printf("On 5.1(side) layout with 0: %24d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 1);
CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(1); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 2);
printf("On 5.1(side) layout with 1: %24d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 3);
CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(2); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 4);
printf("On 5.1(side) layout with 2: %24d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 5);
CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(3); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 6);
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);
printf("\nTesting av_channel_layout_index_from_channel\n"); printf("\nTesting av_channel_layout_index_from_channel\n");
CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_LEFT); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_LEFT);
printf("On 5.1(side) layout with AV_CHAN_FRONT_LEFT: %7d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_RIGHT);
CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_RIGHT); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_CENTER);
printf("On 5.1(side) layout with AV_CHAN_FRONT_RIGHT: %6d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_LOW_FREQUENCY);
CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_CENTER); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_SIDE_LEFT);
printf("On 5.1(side) layout with AV_CHAN_FRONT_CENTER: %5d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_SIDE_RIGHT);
CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_LOW_FREQUENCY); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_BACK_CENTER);
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);
printf("\nTesting av_channel_layout_channel_from_string\n"); printf("\nTesting av_channel_layout_channel_from_string\n");
CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FL"); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FL");
printf("On 5.1(side) layout with \"FL\": %21d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FR");
CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FR"); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FC");
printf("On 5.1(side) layout with \"FR\": %21d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "LFE");
CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FC"); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "SL");
printf("On 5.1(side) layout with \"FC\": %21d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "SR");
CHANNEL_LAYOUT_CHANNEL_FROM_STRING("LFE"); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "BC");
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);
printf("\nTesting av_channel_layout_index_from_string\n"); printf("\nTesting av_channel_layout_index_from_string\n");
CHANNEL_LAYOUT_INDEX_FROM_STRING("FL"); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FL");
printf("On 5.1(side) layout with \"FL\": %21d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FR");
CHANNEL_LAYOUT_INDEX_FROM_STRING("FR"); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FC");
printf("On 5.1(side) layout with \"FR\": %21d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "LFE");
CHANNEL_LAYOUT_INDEX_FROM_STRING("FC"); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "SL");
printf("On 5.1(side) layout with \"FC\": %21d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "SR");
CHANNEL_LAYOUT_INDEX_FROM_STRING("LFE"); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "BC");
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);
printf("\nTesting av_channel_layout_subset\n"); printf("\nTesting av_channel_layout_subset\n");
CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_STEREO); CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_STEREO:", AV_CH_LAYOUT_STEREO);
printf("On 5.1(side) layout with AV_CH_LAYOUT_STEREO: 0x%"PRIx64"\n", mask); CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_2POINT1:", AV_CH_LAYOUT_2POINT1);
CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_2POINT1); CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_4POINT1:", AV_CH_LAYOUT_4POINT1);
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);
printf("\n==Custom layouts==\n"); printf("\n==Custom layouts==\n");
printf("\nTesting av_channel_layout_from_string\n"); printf("\nTesting av_channel_layout_from_string\n");
CHANNEL_LAYOUT_FROM_STRING("FL+FR+FC+BL+BR+LFE"); 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)"); 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"); 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"); 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"); 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"); 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); ret = av_channel_layout_copy(&layout2, &layout);
if (ret < 0) { if (ret < 0) {
@ -383,104 +336,64 @@ int main(void)
printf("Channel layout and its copy compare unequal; ret: %d\n", ret); printf("Channel layout and its copy compare unequal; ret: %d\n", ret);
printf("\nTesting av_channel_layout_index_from_string\n"); printf("\nTesting av_channel_layout_index_from_string\n");
CHANNEL_LAYOUT_INDEX_FROM_STRING("FR"); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FR");
printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FR\": %18d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FL");
CHANNEL_LAYOUT_INDEX_FROM_STRING("FL"); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "USR63");
printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FL\": %18d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "Foo");
CHANNEL_LAYOUT_INDEX_FROM_STRING("USR63"); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "@Foo");
printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"USR63\": %15d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FR@Foo");
CHANNEL_LAYOUT_INDEX_FROM_STRING("Foo"); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "FL@Foo");
printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"Foo\": %17d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "USR63@Foo");
CHANNEL_LAYOUT_INDEX_FROM_STRING("@Foo"); CHANNEL_LAYOUT_INDEX_FROM_STRING(bp.str, "BC");
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);
printf("\nTesting av_channel_layout_channel_from_string\n"); printf("\nTesting av_channel_layout_channel_from_string\n");
CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FR"); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FR");
printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FR\": %18d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FL");
CHANNEL_LAYOUT_CHANNEL_FROM_STRING("FL"); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "USR63");
printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"FL\": %18d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "Foo");
CHANNEL_LAYOUT_CHANNEL_FROM_STRING("USR63"); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "@Foo");
printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"USR63\": %15d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FR@Foo");
CHANNEL_LAYOUT_CHANNEL_FROM_STRING("Foo"); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "FL@Foo");
printf("On \"FR+FL@Foo+USR63@Foo\" layout with \"Foo\": %17d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "USR63@Foo");
CHANNEL_LAYOUT_CHANNEL_FROM_STRING("@Foo"); CHANNEL_LAYOUT_CHANNEL_FROM_STRING(bp.str, "BC");
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);
printf("\nTesting av_channel_layout_index_from_channel\n"); printf("\nTesting av_channel_layout_index_from_channel\n");
CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_RIGHT); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, 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(bp.str, AV_CHAN_FRONT_LEFT);
CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_LEFT); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, 63);
printf("On \"FR+FL@Foo+USR63@Foo\" layout with AV_CHAN_FRONT_LEFT: %4d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_BACK_CENTER);
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);
printf("\nTesting av_channel_layout_channel_from_index\n"); printf("\nTesting av_channel_layout_channel_from_index\n");
CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(0); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 0);
printf("On \"FR+FL@Foo+USR63@Foo\" layout with 0: %21d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 1);
CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(1); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 2);
printf("On \"FR+FL@Foo+USR63@Foo\" layout with 1: %21d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 3);
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);
printf("\nTesting av_channel_layout_subset\n"); printf("\nTesting av_channel_layout_subset\n");
CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_STEREO); CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_STEREO:", AV_CH_LAYOUT_STEREO);
printf("On \"FR+FL@Foo+USR63@Foo\" layout with AV_CH_LAYOUT_STEREO: 0x%"PRIx64"\n", mask); CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_QUAD:", AV_CH_LAYOUT_QUAD);
CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_QUAD);
printf("On \"FR+FL@Foo+USR63@Foo\" layout with AV_CH_LAYOUT_QUAD: 0x%"PRIx64"\n", mask);
printf("\n==Ambisonic layouts==\n"); printf("\n==Ambisonic layouts==\n");
printf("\nTesting av_channel_layout_from_string\n"); printf("\nTesting av_channel_layout_from_string\n");
CHANNEL_LAYOUT_FROM_STRING("ambisonic 1"); CHANNEL_LAYOUT_FROM_STRING("ambisonic 1");
printf("With \"ambisonic 1\": %41s\n", bp.str);
CHANNEL_LAYOUT_FROM_STRING("ambisonic 2+stereo"); 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"); printf("\nTesting av_channel_layout_index_from_channel\n");
CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_AMBISONIC_BASE); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_AMBISONIC_BASE);
printf("On \"ambisonic 2+stereo\" layout with AV_CHAN_AMBISONIC_BASE: %d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_LEFT);
CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(AV_CHAN_FRONT_LEFT); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_FRONT_RIGHT);
printf("On \"ambisonic 2+stereo\" layout with AV_CHAN_FRONT_LEFT: %5d\n", ret); CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(bp.str, AV_CHAN_BACK_CENTER);
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);
printf("\nTesting av_channel_layout_channel_from_index\n"); printf("\nTesting av_channel_layout_channel_from_index\n");
CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(0); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 0);
printf("On \"ambisonic 2+stereo\" layout with 0: %22d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 9);
CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(9); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 10);
printf("On \"ambisonic 2+stereo\" layout with 9: %22d\n", ret); CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(bp.str, 11);
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);
printf("\nTesting av_channel_layout_subset\n"); printf("\nTesting av_channel_layout_subset\n");
CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_STEREO); CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_STEREO:", AV_CH_LAYOUT_STEREO);
printf("On \"ambisonic 2+stereo\" layout with AV_CH_LAYOUT_STEREO: 0x%"PRIx64"\n", mask); CHANNEL_LAYOUT_SUBSET(bp.str, "AV_CH_LAYOUT_QUAD:", AV_CH_LAYOUT_QUAD);
CHANNEL_LAYOUT_SUBSET(AV_CH_LAYOUT_QUAD);
printf("On \"ambisonic 2+stereo\" layout with AV_CH_LAYOUT_QUAD: 0x%"PRIx64"\n", mask);
av_channel_layout_uninit(&layout); av_channel_layout_uninit(&layout);
av_channel_layout_uninit(&layout2); av_channel_layout_uninit(&layout2);

@ -76,45 +76,45 @@ Testing av_channel_layout_from_mask
With AV_CH_LAYOUT_5POINT1: 5.1(side) With AV_CH_LAYOUT_5POINT1: 5.1(side)
Testing av_channel_layout_channel_from_index Testing av_channel_layout_channel_from_index
On 5.1(side) layout with 0: 0 On "5.1(side)" layout with 0: 0
On 5.1(side) layout with 1: 1 On "5.1(side)" layout with 1: 1
On 5.1(side) layout with 2: 2 On "5.1(side)" layout with 2: 2
On 5.1(side) layout with 3: 3 On "5.1(side)" layout with 3: 3
On 5.1(side) layout with 4: 9 On "5.1(side)" layout with 4: 9
On 5.1(side) layout with 5: 10 On "5.1(side)" layout with 5: 10
On 5.1(side) layout with 6: -1 On "5.1(side)" layout with 6: -1
Testing av_channel_layout_index_from_channel 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_LEFT: 0
On 5.1(side) layout with AV_CHAN_FRONT_RIGHT: 1 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_FRONT_CENTER: 2
On 5.1(side) layout with AV_CHAN_LOW_FREQUENCY: 3 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_LEFT: 4
On 5.1(side) layout with AV_CHAN_SIDE_RIGHT: 5 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_BACK_CENTER: -1
Testing av_channel_layout_channel_from_string Testing av_channel_layout_channel_from_string
On 5.1(side) layout with "FL": 0 On "5.1(side)" layout with "FL": 0
On 5.1(side) layout with "FR": 1 On "5.1(side)" layout with "FR": 1
On 5.1(side) layout with "FC": 2 On "5.1(side)" layout with "FC": 2
On 5.1(side) layout with "LFE": 3 On "5.1(side)" layout with "LFE": 3
On 5.1(side) layout with "SL": 9 On "5.1(side)" layout with "SL": 9
On 5.1(side) layout with "SR": 10 On "5.1(side)" layout with "SR": 10
On 5.1(side) layout with "BC": -1 On "5.1(side)" layout with "BC": -1
Testing av_channel_layout_index_from_string Testing av_channel_layout_index_from_string
On 5.1(side) layout with "FL": 0 On "5.1(side)" layout with "FL": 0
On 5.1(side) layout with "FR": 1 On "5.1(side)" layout with "FR": 1
On 5.1(side) layout with "FC": 2 On "5.1(side)" layout with "FC": 2
On 5.1(side) layout with "LFE": 3 On "5.1(side)" layout with "LFE": 3
On 5.1(side) layout with "SL": 4 On "5.1(side)" layout with "SL": 4
On 5.1(side) layout with "SR": 5 On "5.1(side)" layout with "SR": 5
On 5.1(side) layout with "BC": -1 On "5.1(side)" layout with "BC": -1
Testing av_channel_layout_subset 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_STEREO: 0x3
On 5.1(side) layout with AV_CH_LAYOUT_2POINT1: 0xb 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_4POINT1: 0xf
==Custom layouts== ==Custom layouts==
@ -127,42 +127,42 @@ 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 "FR+FL@Foo+USR63@Foo": 3 channels (FR+FL@Foo+USR63@Foo)
Testing av_channel_layout_index_from_string Testing av_channel_layout_index_from_string
On "FR+FL@Foo+USR63@Foo" layout with "FR": 0 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FR": 0
On "FR+FL@Foo+USR63@Foo" layout with "FL": 1 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FL": 1
On "FR+FL@Foo+USR63@Foo" layout with "USR63": 2 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "USR63": 2
On "FR+FL@Foo+USR63@Foo" layout with "Foo": -1 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "Foo": -1
On "FR+FL@Foo+USR63@Foo" layout with "@Foo": 1 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "@Foo": 1
On "FR+FL@Foo+USR63@Foo" layout with "FR@Foo": -1 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FR@Foo": -1
On "FR+FL@Foo+USR63@Foo" layout with "FL@Foo": 1 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FL@Foo": 1
On "FR+FL@Foo+USR63@Foo" layout with "USR63@Foo": 2 On "3 channels (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 "BC": -1
Testing av_channel_layout_channel_from_string Testing av_channel_layout_channel_from_string
On "FR+FL@Foo+USR63@Foo" layout with "FR": 1 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FR": 1
On "FR+FL@Foo+USR63@Foo" layout with "FL": 0 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FL": 0
On "FR+FL@Foo+USR63@Foo" layout with "USR63": 63 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "USR63": 63
On "FR+FL@Foo+USR63@Foo" layout with "Foo": -1 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "Foo": -1
On "FR+FL@Foo+USR63@Foo" layout with "@Foo": 0 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "@Foo": 0
On "FR+FL@Foo+USR63@Foo" layout with "FR@Foo": -1 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FR@Foo": -1
On "FR+FL@Foo+USR63@Foo" layout with "FL@Foo": 0 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with "FL@Foo": 0
On "FR+FL@Foo+USR63@Foo" layout with "USR63@Foo": 63 On "3 channels (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 "BC": -1
Testing av_channel_layout_index_from_channel Testing av_channel_layout_index_from_channel
On "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_RIGHT: 0
On "FR+FL@Foo+USR63@Foo" layout with AV_CHAN_FRONT_LEFT: 1 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with AV_CHAN_FRONT_LEFT: 1
On "FR+FL@Foo+USR63@Foo" layout with 63: 2 On "3 channels (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_BACK_CENTER: -1
Testing av_channel_layout_channel_from_index Testing av_channel_layout_channel_from_index
On "FR+FL@Foo+USR63@Foo" layout with 0: 1 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with 0: 1
On "FR+FL@Foo+USR63@Foo" layout with 1: 0 On "3 channels (FR+FL@Foo+USR63@Foo)" layout with 1: 0
On "FR+FL@Foo+USR63@Foo" layout with 2: 63 On "3 channels (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 3: -1
Testing av_channel_layout_subset Testing av_channel_layout_subset
On "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_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_QUAD: 0x3
==Ambisonic layouts== ==Ambisonic layouts==

Loading…
Cancel
Save