diff options
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/tests/channel_layout.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/libavutil/tests/channel_layout.c b/libavutil/tests/channel_layout.c index 79d3a1caed..eb9cf1b950 100644 --- a/libavutil/tests/channel_layout.c +++ b/libavutil/tests/channel_layout.c @@ -49,6 +49,9 @@ if (ret < 0) \ ret = -1 +#define CHANNEL_LAYOUT_SUBSET(x) \ + mask = av_channel_layout_subset(&layout, x) + #define CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(x) \ ret = av_channel_layout_index_from_channel(&layout, x); \ if (ret < 0) \ @@ -70,6 +73,7 @@ int main(void) AVChannelLayout layout = { 0 }; AVBPrint bp; void *iter = NULL; + uint64_t mask; int ret; av_bprint_init(&bp, 64, AV_BPRINT_SIZE_AUTOMATIC); @@ -216,6 +220,14 @@ int main(void) CHANNEL_LAYOUT_INDEX_FROM_STRING("BC"); printf("On 5.1(side) layout with \"BC\": %21d\n", ret); + 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); + printf("\n==Custom layouts==\n"); printf("\nTesting av_channel_layout_from_string\n"); @@ -292,6 +304,12 @@ int main(void) 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"); + 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); + printf("\n==Ambisonic layouts==\n"); printf("\nTesting av_channel_layout_from_string\n"); |