Go to the documentation of this file.
   22 #ifndef AVUTIL_CHANNEL_LAYOUT_H 
   23 #define AVUTIL_CHANNEL_LAYOUT_H 
   49 #define AV_CH_FRONT_LEFT             0x00000001 
   50 #define AV_CH_FRONT_RIGHT            0x00000002 
   51 #define AV_CH_FRONT_CENTER           0x00000004 
   52 #define AV_CH_LOW_FREQUENCY          0x00000008 
   53 #define AV_CH_BACK_LEFT              0x00000010 
   54 #define AV_CH_BACK_RIGHT             0x00000020 
   55 #define AV_CH_FRONT_LEFT_OF_CENTER   0x00000040 
   56 #define AV_CH_FRONT_RIGHT_OF_CENTER  0x00000080 
   57 #define AV_CH_BACK_CENTER            0x00000100 
   58 #define AV_CH_SIDE_LEFT              0x00000200 
   59 #define AV_CH_SIDE_RIGHT             0x00000400 
   60 #define AV_CH_TOP_CENTER             0x00000800 
   61 #define AV_CH_TOP_FRONT_LEFT         0x00001000 
   62 #define AV_CH_TOP_FRONT_CENTER       0x00002000 
   63 #define AV_CH_TOP_FRONT_RIGHT        0x00004000 
   64 #define AV_CH_TOP_BACK_LEFT          0x00008000 
   65 #define AV_CH_TOP_BACK_CENTER        0x00010000 
   66 #define AV_CH_TOP_BACK_RIGHT         0x00020000 
   67 #define AV_CH_STEREO_LEFT            0x20000000   
   68 #define AV_CH_STEREO_RIGHT           0x40000000  
 
   69 #define AV_CH_WIDE_LEFT              0x0000000080000000ULL
 
   70 #define AV_CH_WIDE_RIGHT             0x0000000100000000ULL 
   71 #define AV_CH_SURROUND_DIRECT_LEFT   0x0000000200000000ULL 
   72 #define AV_CH_SURROUND_DIRECT_RIGHT  0x0000000400000000ULL 
   73 #define AV_CH_LOW_FREQUENCY_2        0x0000000800000000ULL 
   74 #define AV_CH_TOP_SIDE_LEFT          0x0000001000000000ULL 
   75 #define AV_CH_TOP_SIDE_RIGHT         0x0000002000000000ULL 
   76 #define AV_CH_BOTTOM_FRONT_CENTER    0x0000004000000000ULL 
   77 #define AV_CH_BOTTOM_FRONT_LEFT      0x0000008000000000ULL 
   78 #define AV_CH_BOTTOM_FRONT_RIGHT     0x0000010000000000ULL 
   83 #define AV_CH_LAYOUT_NATIVE          0x8000000000000000ULL 
   90 #define AV_CH_LAYOUT_MONO              (AV_CH_FRONT_CENTER) 
   91 #define AV_CH_LAYOUT_STEREO            (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) 
   92 #define AV_CH_LAYOUT_2POINT1           (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY) 
   93 #define AV_CH_LAYOUT_2_1               (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER) 
   94 #define AV_CH_LAYOUT_SURROUND          (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) 
   95 #define AV_CH_LAYOUT_3POINT1           (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY) 
   96 #define AV_CH_LAYOUT_4POINT0           (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER) 
   97 #define AV_CH_LAYOUT_4POINT1           (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY) 
   98 #define AV_CH_LAYOUT_2_2               (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) 
   99 #define AV_CH_LAYOUT_QUAD              (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) 
  100 #define AV_CH_LAYOUT_5POINT0           (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) 
  101 #define AV_CH_LAYOUT_5POINT1           (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY) 
  102 #define AV_CH_LAYOUT_5POINT0_BACK      (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) 
  103 #define AV_CH_LAYOUT_5POINT1_BACK      (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY) 
  104 #define AV_CH_LAYOUT_6POINT0           (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER) 
  105 #define AV_CH_LAYOUT_6POINT0_FRONT     (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) 
  106 #define AV_CH_LAYOUT_HEXAGONAL         (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER) 
  107 #define AV_CH_LAYOUT_6POINT1           (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER) 
  108 #define AV_CH_LAYOUT_6POINT1_BACK      (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER) 
  109 #define AV_CH_LAYOUT_6POINT1_FRONT     (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY) 
  110 #define AV_CH_LAYOUT_7POINT0           (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) 
  111 #define AV_CH_LAYOUT_7POINT0_FRONT     (AV_CH_LAYOUT_5POINT0|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) 
  112 #define AV_CH_LAYOUT_7POINT1           (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) 
  113 #define AV_CH_LAYOUT_7POINT1_WIDE      (AV_CH_LAYOUT_5POINT1|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) 
  114 #define AV_CH_LAYOUT_7POINT1_WIDE_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) 
  115 #define AV_CH_LAYOUT_OCTAGONAL         (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT) 
  116 #define AV_CH_LAYOUT_HEXADECAGONAL     (AV_CH_LAYOUT_OCTAGONAL|AV_CH_WIDE_LEFT|AV_CH_WIDE_RIGHT|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) 
  117 #define AV_CH_LAYOUT_STEREO_DOWNMIX    (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT) 
  118 #define AV_CH_LAYOUT_22POINT2          (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER|AV_CH_BACK_CENTER|AV_CH_LOW_FREQUENCY_2|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_CENTER|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT|AV_CH_TOP_SIDE_LEFT|AV_CH_TOP_SIDE_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_BOTTOM_FRONT_CENTER|AV_CH_BOTTOM_FRONT_LEFT|AV_CH_BOTTOM_FRONT_RIGHT) 
  
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option name
void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout)
Return a description of a channel layout.
uint64_t av_get_channel_layout(const char *name)
Return a channel layout id that matches name, or 0 if no match is found.
@ AV_MATRIX_ENCODING_DOLBY
void av_bprint_channel_layout(struct AVBPrint *bp, int nb_channels, uint64_t channel_layout)
Append a description of a channel layout to a bprint buffer.
const char * av_get_channel_name(uint64_t channel)
Get the name of a given channel.
@ AV_MATRIX_ENCODING_DPLIIX
@ AV_MATRIX_ENCODING_DOLBYHEADPHONE
int av_get_standard_channel_layout(unsigned index, uint64_t *layout, const char **name)
Get the value and name of a standard channel layout.
int av_get_channel_layout_nb_channels(uint64_t channel_layout)
Return the number of channels in the channel layout.
@ AV_MATRIX_ENCODING_NONE
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel layout
uint64_t av_channel_layout_extract_channel(uint64_t channel_layout, int index)
Get the channel with the given index in channel_layout.
int av_get_channel_layout_channel_index(uint64_t channel_layout, uint64_t channel)
Get the index of a channel in channel_layout.
const char * av_get_channel_description(uint64_t channel)
Get the description of a given channel.
@ AV_MATRIX_ENCODING_DOLBYEX
int av_get_extended_channel_layout(const char *name, uint64_t *channel_layout, int *nb_channels)
Return a channel layout and the number of channels based on the specified name.
int64_t av_get_default_channel_layout(int nb_channels)
Return default channel layout for a given number of channels.
@ AV_MATRIX_ENCODING_DPLIIZ
@ AV_MATRIX_ENCODING_DPLII