FFmpeg
Loading...
Searching...
No Matches
channel_layout.c File Reference
#include <inttypes.h>
#include <stdio.h>
#include <string.h>
#include "libavutil/bprint.h"
#include "libavutil/channel_layout.h"
#include "libavutil/error.h"
#include "libavutil/macros.h"
#include "libavutil/mem.h"

Go to the source code of this file.

Macros

#define BPRINT_ARGS1(bp, ...)
 
#define BPRINT_ARGS0(bp, ...)
 
#define ORD_ARGS1(str, size, ...)
 
#define ORD_ARGS0(str, size, ...)
 
#define CMP_BPRINT_AND_NONBPRINT(bp, func_name, ARG_ORDER, ...)
 
#define CHANNEL_NAME(x)
 
#define CHANNEL_DESCRIPTION(x)
 
#define CHANNEL_FROM_STRING(x)
 
#define CHANNEL_LAYOUT_FROM_MASK(x)
 
#define CHANNEL_LAYOUT_FROM_STRING(x)
 
#define CHANNEL_LAYOUT_CHANNEL_FROM_INDEX(l, x)
 
#define CHANNEL_LAYOUT_SUBSET(l, xstr, x)
 
#define CHANNEL_LAYOUT_INDEX_FROM_CHANNEL(l, x)
 
#define CHANNEL_LAYOUT_CHANNEL_FROM_STRING(l, x)
 
#define CHANNEL_LAYOUT_INDEX_FROM_STRING(l, x)
 

Functions

static void channel_name (AVBPrint *bp, enum AVChannel channel)
 
static void channel_description (AVBPrint *bp, enum AVChannel channel)
 
static void channel_layout_from_mask (AVChannelLayout *layout, AVBPrint *bp, uint64_t channel_layout)
 
static void channel_layout_from_string (AVChannelLayout *layout, AVBPrint *bp, const char *channel_layout)
 
static void describe_type (AVBPrint *bp, AVChannelLayout *layout)
 
static const char * channel_layout_retype (AVChannelLayout *layout, AVBPrint *bp, const char *channel_layout)
 
int main (void)
 

Variables

static const char * channel_order_names [] = {"UNSPEC", "NATIVE", "CUSTOM", "AMBI"}
 

Macro Definition Documentation

◆ BPRINT_ARGS1

#define BPRINT_ARGS1 ( bp,
... )
Value:
(bp), __VA_ARGS__

Definition at line 31 of file channel_layout.c.

◆ BPRINT_ARGS0

#define BPRINT_ARGS0 ( bp,
... )
Value:
__VA_ARGS__, (bp)

Definition at line 32 of file channel_layout.c.

◆ ORD_ARGS1

#define ORD_ARGS1 ( str,
size,
... )
Value:
(str), (size), __VA_ARGS__
int size

Definition at line 33 of file channel_layout.c.

◆ ORD_ARGS0

#define ORD_ARGS0 ( str,
size,
... )
Value:
__VA_ARGS__, (str), (size)

Definition at line 34 of file channel_layout.c.

◆ CMP_BPRINT_AND_NONBPRINT

#define CMP_BPRINT_AND_NONBPRINT ( bp,
func_name,
ARG_ORDER,
... )

◆ CHANNEL_NAME

#define CHANNEL_NAME ( x)
Value:
channel_name(&bp, (x)); \
printf("With %-32s %14s\n", AV_STRINGIFY(x)":", bp.str)
#define AV_STRINGIFY(s)
Definition macros.h:66
static void channel_name(AVBPrint *bp, enum AVChannel channel)

Definition at line 163 of file channel_layout.c.

Referenced by main().

◆ CHANNEL_DESCRIPTION

#define CHANNEL_DESCRIPTION ( x)
Value:
channel_description(&bp, (x)); \
printf("With %-23s %23s\n", AV_STRINGIFY(x)":", bp.str);
static void channel_description(AVBPrint *bp, enum AVChannel channel)

Definition at line 167 of file channel_layout.c.

Referenced by main().

◆ CHANNEL_FROM_STRING

#define CHANNEL_FROM_STRING ( x)
Value:
printf("With %-38s %8d\n", AV_STRINGIFY(x)":", av_channel_from_string(x))
__device__ int printf(const char *,...)
enum AVChannel av_channel_from_string(const char *str)
This is the inverse function of av_channel_name().

Definition at line 171 of file channel_layout.c.

Referenced by main().

◆ CHANNEL_LAYOUT_FROM_MASK

#define CHANNEL_LAYOUT_FROM_MASK ( x)
Value:
uint64_t layout
static void channel_layout_from_mask(AVChannelLayout *layout, AVBPrint *bp, uint64_t channel_layout)

Definition at line 174 of file channel_layout.c.

Referenced by main().

◆ CHANNEL_LAYOUT_FROM_STRING

#define CHANNEL_LAYOUT_FROM_STRING ( x)
Value:
printf("With \"%s\":%*s %32s\n", x, strlen(x) > 32 ? 0 : 32 - (int)strlen(x), "", bp.str);
static void channel_layout_from_string(AVChannelLayout *layout, AVBPrint *bp, const char *channel_layout)

Definition at line 177 of file channel_layout.c.

Referenced by main().

◆ CHANNEL_LAYOUT_CHANNEL_FROM_INDEX

#define CHANNEL_LAYOUT_CHANNEL_FROM_INDEX ( l,
x )
Value:
if (ret < 0) \
ret = -1; \
printf("On \"%s\" layout with %2d: %8d\n", l, x, ret)
enum AVChannel av_channel_layout_channel_from_index(const AVChannelLayout *channel_layout, unsigned int idx)
Get the channel with the given index in a channel layout.

Definition at line 181 of file channel_layout.c.

Referenced by main().

◆ CHANNEL_LAYOUT_SUBSET

#define CHANNEL_LAYOUT_SUBSET ( l,
xstr,
x )
Value:
printf("On \"%s\" layout with %-22s 0x%"PRIx64"\n", l, xstr, mask)
uint64_t av_channel_layout_subset(const AVChannelLayout *channel_layout, uint64_t mask)
Find out what channels from a given set are present in a channel layout, without regard for their pos...
static const uint16_t mask[17]
Definition lzw.c:38

Definition at line 187 of file channel_layout.c.

Referenced by main().

◆ CHANNEL_LAYOUT_INDEX_FROM_CHANNEL

#define CHANNEL_LAYOUT_INDEX_FROM_CHANNEL ( l,
x )
Value:
if (ret < 0) \
ret = -1; \
printf("On \"%s\" layout with %-23s %3d\n", l, AV_STRINGIFY(x)":", ret)
int av_channel_layout_index_from_channel(const AVChannelLayout *channel_layout, enum AVChannel channel)
Get the index of a given channel in a channel layout.

Definition at line 191 of file channel_layout.c.

Referenced by main().

◆ CHANNEL_LAYOUT_CHANNEL_FROM_STRING

#define CHANNEL_LAYOUT_CHANNEL_FROM_STRING ( l,
x )
Value:
if (ret < 0) \
ret = -1; \
printf("On \"%s\" layout with %-21s %3d\n", bp.str, AV_STRINGIFY(x)":", ret);
enum AVChannel av_channel_layout_channel_from_string(const AVChannelLayout *channel_layout, const char *str)
Get a channel described by the given string.

Definition at line 197 of file channel_layout.c.

Referenced by main().

◆ CHANNEL_LAYOUT_INDEX_FROM_STRING

#define CHANNEL_LAYOUT_INDEX_FROM_STRING ( l,
x )
Value:
if (ret < 0) \
ret = -1; \
printf("On \"%s\" layout with %-20s %3d\n", l, AV_STRINGIFY(x)":", ret);
int av_channel_layout_index_from_string(const AVChannelLayout *channel_layout, const char *str)
Get the index in a channel layout of a channel described by the given string.

Definition at line 203 of file channel_layout.c.

Referenced by main().

Function Documentation

◆ channel_name()

static void channel_name ( AVBPrint * bp,
enum AVChannel channel )
static

Definition at line 80 of file channel_layout.c.

◆ channel_description()

static void channel_description ( AVBPrint * bp,
enum AVChannel channel )
static

Definition at line 86 of file channel_layout.c.

◆ channel_layout_from_mask()

static void channel_layout_from_mask ( AVChannelLayout * layout,
AVBPrint * bp,
uint64_t channel_layout )
static

Definition at line 92 of file channel_layout.c.

◆ channel_layout_from_string()

static void channel_layout_from_string ( AVChannelLayout * layout,
AVBPrint * bp,
const char * channel_layout )
static

Definition at line 104 of file channel_layout.c.

◆ describe_type()

static void describe_type ( AVBPrint * bp,
AVChannelLayout * layout )
static

Definition at line 118 of file channel_layout.c.

Referenced by channel_layout_retype().

◆ channel_layout_retype()

static const char * channel_layout_retype ( AVChannelLayout * layout,
AVBPrint * bp,
const char * channel_layout )
static

Definition at line 129 of file channel_layout.c.

Referenced by main().

◆ main()

int main ( void )

Definition at line 209 of file channel_layout.c.

Variable Documentation

◆ channel_order_names

const char* channel_order_names[] = {"UNSPEC", "NATIVE", "CUSTOM", "AMBI"}
static

Definition at line 116 of file channel_layout.c.

Referenced by channel_layout_retype(), and describe_type().