libavformat/mov_chan.c File Reference

#include <stdint.h>
#include "libavutil/audioconvert.h"
#include "libavcodec/avcodec.h"
#include "mov_chan.h"

Go to the source code of this file.

Data Structures

struct  MovChannelLayoutMap

Enumerations

enum  MovChannelLayoutTag {
  MOV_CH_LAYOUT_UNKNOWN = 0xFFFF0000, MOV_CH_LAYOUT_USE_DESCRIPTIONS = ( 0 << 16) | 0, MOV_CH_LAYOUT_USE_BITMAP = ( 1 << 16) | 0, MOV_CH_LAYOUT_DISCRETEINORDER = (147 << 16) | 0,
  MOV_CH_LAYOUT_MONO = (100 << 16) | 1, MOV_CH_LAYOUT_STEREO = (101 << 16) | 2, MOV_CH_LAYOUT_STEREOHEADPHONES = (102 << 16) | 2, MOV_CH_LAYOUT_MATRIXSTEREO = (103 << 16) | 2,
  MOV_CH_LAYOUT_MIDSIDE = (104 << 16) | 2, MOV_CH_LAYOUT_XY = (105 << 16) | 2, MOV_CH_LAYOUT_BINAURAL = (106 << 16) | 2, MOV_CH_LAYOUT_AMBISONIC_B_FORMAT = (107 << 16) | 4,
  MOV_CH_LAYOUT_QUADRAPHONIC = (108 << 16) | 4, MOV_CH_LAYOUT_PENTAGONAL = (109 << 16) | 5, MOV_CH_LAYOUT_HEXAGONAL = (110 << 16) | 6, MOV_CH_LAYOUT_OCTAGONAL = (111 << 16) | 8,
  MOV_CH_LAYOUT_CUBE = (112 << 16) | 8, MOV_CH_LAYOUT_MPEG_3_0_A = (113 << 16) | 3, MOV_CH_LAYOUT_MPEG_3_0_B = (114 << 16) | 3, MOV_CH_LAYOUT_MPEG_4_0_A = (115 << 16) | 4,
  MOV_CH_LAYOUT_MPEG_4_0_B = (116 << 16) | 4, MOV_CH_LAYOUT_MPEG_5_0_A = (117 << 16) | 5, MOV_CH_LAYOUT_MPEG_5_0_B = (118 << 16) | 5, MOV_CH_LAYOUT_MPEG_5_0_C = (119 << 16) | 5,
  MOV_CH_LAYOUT_MPEG_5_0_D = (120 << 16) | 5, MOV_CH_LAYOUT_MPEG_5_1_A = (121 << 16) | 6, MOV_CH_LAYOUT_MPEG_5_1_B = (122 << 16) | 6, MOV_CH_LAYOUT_MPEG_5_1_C = (123 << 16) | 6,
  MOV_CH_LAYOUT_MPEG_5_1_D = (124 << 16) | 6, MOV_CH_LAYOUT_MPEG_6_1_A = (125 << 16) | 7, MOV_CH_LAYOUT_MPEG_7_1_A = (126 << 16) | 8, MOV_CH_LAYOUT_MPEG_7_1_B = (127 << 16) | 8,
  MOV_CH_LAYOUT_MPEG_7_1_C = (128 << 16) | 8, MOV_CH_LAYOUT_EMAGIC_DEFAULT_7_1 = (129 << 16) | 8, MOV_CH_LAYOUT_SMPTE_DTV = (130 << 16) | 8, MOV_CH_LAYOUT_ITU_2_1 = (131 << 16) | 3,
  MOV_CH_LAYOUT_ITU_2_2 = (132 << 16) | 4, MOV_CH_LAYOUT_DVD_4 = (133 << 16) | 3, MOV_CH_LAYOUT_DVD_5 = (134 << 16) | 4, MOV_CH_LAYOUT_DVD_6 = (135 << 16) | 5,
  MOV_CH_LAYOUT_DVD_10 = (136 << 16) | 4, MOV_CH_LAYOUT_DVD_11 = (137 << 16) | 5, MOV_CH_LAYOUT_DVD_18 = (138 << 16) | 5, MOV_CH_LAYOUT_AUDIOUNIT_6_0 = (139 << 16) | 6,
  MOV_CH_LAYOUT_AUDIOUNIT_7_0 = (140 << 16) | 7, MOV_CH_LAYOUT_AUDIOUNIT_7_0_FRONT = (148 << 16) | 7, MOV_CH_LAYOUT_AAC_6_0 = (141 << 16) | 6, MOV_CH_LAYOUT_AAC_6_1 = (142 << 16) | 7,
  MOV_CH_LAYOUT_AAC_7_0 = (143 << 16) | 7, MOV_CH_LAYOUT_AAC_OCTAGONAL = (144 << 16) | 8, MOV_CH_LAYOUT_TMH_10_2_STD = (145 << 16) | 16, MOV_CH_LAYOUT_TMH_10_2_FULL = (146 << 16) | 21,
  MOV_CH_LAYOUT_AC3_1_0_1 = (149 << 16) | 2, MOV_CH_LAYOUT_AC3_3_0 = (150 << 16) | 3, MOV_CH_LAYOUT_AC3_3_1 = (151 << 16) | 4, MOV_CH_LAYOUT_AC3_3_0_1 = (152 << 16) | 4,
  MOV_CH_LAYOUT_AC3_2_1_1 = (153 << 16) | 4, MOV_CH_LAYOUT_AC3_3_1_1 = (154 << 16) | 5, MOV_CH_LAYOUT_EAC3_6_0_A = (155 << 16) | 6, MOV_CH_LAYOUT_EAC3_7_0_A = (156 << 16) | 7,
  MOV_CH_LAYOUT_EAC3_6_1_A = (157 << 16) | 7, MOV_CH_LAYOUT_EAC3_6_1_B = (158 << 16) | 7, MOV_CH_LAYOUT_EAC3_6_1_C = (159 << 16) | 7, MOV_CH_LAYOUT_EAC3_7_1_A = (160 << 16) | 8,
  MOV_CH_LAYOUT_EAC3_7_1_B = (161 << 16) | 8, MOV_CH_LAYOUT_EAC3_7_1_C = (162 << 16) | 8, MOV_CH_LAYOUT_EAC3_7_1_D = (163 << 16) | 8, MOV_CH_LAYOUT_EAC3_7_1_E = (164 << 16) | 8,
  MOV_CH_LAYOUT_EAC3_7_1_F = (165 << 16) | 8, MOV_CH_LAYOUT_EAC3_7_1_G = (166 << 16) | 8, MOV_CH_LAYOUT_EAC3_7_1_H = (167 << 16) | 8, MOV_CH_LAYOUT_DTS_3_1 = (168 << 16) | 4,
  MOV_CH_LAYOUT_DTS_4_1 = (169 << 16) | 5, MOV_CH_LAYOUT_DTS_6_0_A = (170 << 16) | 6, MOV_CH_LAYOUT_DTS_6_0_B = (171 << 16) | 6, MOV_CH_LAYOUT_DTS_6_0_C = (172 << 16) | 6,
  MOV_CH_LAYOUT_DTS_6_1_A = (173 << 16) | 7, MOV_CH_LAYOUT_DTS_6_1_B = (174 << 16) | 7, MOV_CH_LAYOUT_DTS_6_1_C = (175 << 16) | 7, MOV_CH_LAYOUT_DTS_6_1_D = (182 << 16) | 7,
  MOV_CH_LAYOUT_DTS_7_0 = (176 << 16) | 7, MOV_CH_LAYOUT_DTS_7_1 = (177 << 16) | 8, MOV_CH_LAYOUT_DTS_8_0_A = (178 << 16) | 8, MOV_CH_LAYOUT_DTS_8_0_B = (179 << 16) | 8,
  MOV_CH_LAYOUT_DTS_8_1_A = (180 << 16) | 9, MOV_CH_LAYOUT_DTS_8_1_B = (181 << 16) | 9
}
 mov 'chan' tag reading/writing. More...

Functions

uint64_t ff_mov_get_channel_layout (uint32_t tag, uint32_t bitmap)
 mov 'chan' tag reading/writing.
uint32_t ff_mov_get_channel_label (uint32_t label)
 Get the channel layout for the specified channel label.
uint32_t ff_mov_get_channel_layout_tag (enum CodecID codec_id, uint64_t channel_layout, uint32_t *bitmap)
 Get the channel layout tag for the specified codec id and channel layout.

Variables

static struct MovChannelLayoutMap mov_ch_layout_map_misc []
static struct MovChannelLayoutMap mov_ch_layout_map_1ch []
static struct MovChannelLayoutMap mov_ch_layout_map_2ch []
static struct MovChannelLayoutMap mov_ch_layout_map_3ch []
static struct MovChannelLayoutMap mov_ch_layout_map_4ch []
static struct MovChannelLayoutMap mov_ch_layout_map_5ch []
static struct MovChannelLayoutMap mov_ch_layout_map_6ch []
static struct MovChannelLayoutMap mov_ch_layout_map_7ch []
static struct MovChannelLayoutMap mov_ch_layout_map_8ch []
static struct MovChannelLayoutMap mov_ch_layout_map_9ch []
static struct MovChannelLayoutMapmov_ch_layout_map []
static enum MovChannelLayoutTag mov_ch_layouts_aac []
static enum MovChannelLayoutTag mov_ch_layouts_ac3 []
static enum MovChannelLayoutTag mov_ch_layouts_alac []
struct {
   enum CodecID   codec_id
mov_codec_ch_layouts []


Enumeration Type Documentation

mov 'chan' tag reading/writing.

Author:
Justin Ruggles Channel Layout Tag This tells which channels are present in the audio stream and the order in which they appear.
Note:
We're using the channel layout tag to indicate channel order when the value is greater than 0x10000. The Apple documentation has some contradictions as to how this is actually supposed to be handled.
Core Audio File Format Spec: "The high 16 bits indicates a specific ordering of the channels." Core Audio Data Types Reference: "These identifiers specify the channels included in a layout but do not specify a particular ordering of those channels."
Enumerator:
MOV_CH_LAYOUT_UNKNOWN 
MOV_CH_LAYOUT_USE_DESCRIPTIONS 
MOV_CH_LAYOUT_USE_BITMAP 
MOV_CH_LAYOUT_DISCRETEINORDER 
MOV_CH_LAYOUT_MONO 
MOV_CH_LAYOUT_STEREO 
MOV_CH_LAYOUT_STEREOHEADPHONES 
MOV_CH_LAYOUT_MATRIXSTEREO 
MOV_CH_LAYOUT_MIDSIDE 
MOV_CH_LAYOUT_XY 
MOV_CH_LAYOUT_BINAURAL 
MOV_CH_LAYOUT_AMBISONIC_B_FORMAT 
MOV_CH_LAYOUT_QUADRAPHONIC 
MOV_CH_LAYOUT_PENTAGONAL 
MOV_CH_LAYOUT_HEXAGONAL 
MOV_CH_LAYOUT_OCTAGONAL 
MOV_CH_LAYOUT_CUBE 
MOV_CH_LAYOUT_MPEG_3_0_A 
MOV_CH_LAYOUT_MPEG_3_0_B 
MOV_CH_LAYOUT_MPEG_4_0_A 
MOV_CH_LAYOUT_MPEG_4_0_B 
MOV_CH_LAYOUT_MPEG_5_0_A 
MOV_CH_LAYOUT_MPEG_5_0_B 
MOV_CH_LAYOUT_MPEG_5_0_C 
MOV_CH_LAYOUT_MPEG_5_0_D 
MOV_CH_LAYOUT_MPEG_5_1_A 
MOV_CH_LAYOUT_MPEG_5_1_B 
MOV_CH_LAYOUT_MPEG_5_1_C 
MOV_CH_LAYOUT_MPEG_5_1_D 
MOV_CH_LAYOUT_MPEG_6_1_A 
MOV_CH_LAYOUT_MPEG_7_1_A 
MOV_CH_LAYOUT_MPEG_7_1_B 
MOV_CH_LAYOUT_MPEG_7_1_C 
MOV_CH_LAYOUT_EMAGIC_DEFAULT_7_1 
MOV_CH_LAYOUT_SMPTE_DTV 
MOV_CH_LAYOUT_ITU_2_1 
MOV_CH_LAYOUT_ITU_2_2 
MOV_CH_LAYOUT_DVD_4 
MOV_CH_LAYOUT_DVD_5 
MOV_CH_LAYOUT_DVD_6 
MOV_CH_LAYOUT_DVD_10 
MOV_CH_LAYOUT_DVD_11 
MOV_CH_LAYOUT_DVD_18 
MOV_CH_LAYOUT_AUDIOUNIT_6_0 
MOV_CH_LAYOUT_AUDIOUNIT_7_0 
MOV_CH_LAYOUT_AUDIOUNIT_7_0_FRONT 
MOV_CH_LAYOUT_AAC_6_0 
MOV_CH_LAYOUT_AAC_6_1 
MOV_CH_LAYOUT_AAC_7_0 
MOV_CH_LAYOUT_AAC_OCTAGONAL 
MOV_CH_LAYOUT_TMH_10_2_STD 
MOV_CH_LAYOUT_TMH_10_2_FULL 
MOV_CH_LAYOUT_AC3_1_0_1 
MOV_CH_LAYOUT_AC3_3_0 
MOV_CH_LAYOUT_AC3_3_1 
MOV_CH_LAYOUT_AC3_3_0_1 
MOV_CH_LAYOUT_AC3_2_1_1 
MOV_CH_LAYOUT_AC3_3_1_1 
MOV_CH_LAYOUT_EAC3_6_0_A 
MOV_CH_LAYOUT_EAC3_7_0_A 
MOV_CH_LAYOUT_EAC3_6_1_A 
MOV_CH_LAYOUT_EAC3_6_1_B 
MOV_CH_LAYOUT_EAC3_6_1_C 
MOV_CH_LAYOUT_EAC3_7_1_A 
MOV_CH_LAYOUT_EAC3_7_1_B 
MOV_CH_LAYOUT_EAC3_7_1_C 
MOV_CH_LAYOUT_EAC3_7_1_D 
MOV_CH_LAYOUT_EAC3_7_1_E 
MOV_CH_LAYOUT_EAC3_7_1_F 
MOV_CH_LAYOUT_EAC3_7_1_G 
MOV_CH_LAYOUT_EAC3_7_1_H 
MOV_CH_LAYOUT_DTS_3_1 
MOV_CH_LAYOUT_DTS_4_1 
MOV_CH_LAYOUT_DTS_6_0_A 
MOV_CH_LAYOUT_DTS_6_0_B 
MOV_CH_LAYOUT_DTS_6_0_C 
MOV_CH_LAYOUT_DTS_6_1_A 
MOV_CH_LAYOUT_DTS_6_1_B 
MOV_CH_LAYOUT_DTS_6_1_C 
MOV_CH_LAYOUT_DTS_6_1_D 
MOV_CH_LAYOUT_DTS_7_0 
MOV_CH_LAYOUT_DTS_7_1 
MOV_CH_LAYOUT_DTS_8_0_A 
MOV_CH_LAYOUT_DTS_8_0_B 
MOV_CH_LAYOUT_DTS_8_1_A 
MOV_CH_LAYOUT_DTS_8_1_B 

Definition at line 47 of file mov_chan.c.


Function Documentation

uint32_t ff_mov_get_channel_label ( uint32_t  label  ) 

Get the channel layout for the specified channel label.

Parameters:
[in] label channel label
Returns:
channel layout mask fragment

Definition at line 454 of file mov_chan.c.

Referenced by mov_read_chan().

uint64_t ff_mov_get_channel_layout ( uint32_t  tag,
uint32_t  bitmap 
)

mov 'chan' tag reading/writing.

Author:
Justin Ruggles Get the channel layout for the specified channel layout tag.
Parameters:
[in] tag channel layout tag
[out] bitmap channel bitmap (only used if needed)
Returns:
channel layout

Definition at line 427 of file mov_chan.c.

Referenced by mov_read_chan().

uint32_t ff_mov_get_channel_layout_tag ( enum CodecID  codec_id,
uint64_t  channel_layout,
uint32_t *  bitmap 
)

Get the channel layout tag for the specified codec id and channel layout.

If the layout tag was not found, use a channel bitmap if possible.

Parameters:
[in] codec_id codec id
[in] channel_layout channel layout
[out] bitmap channel bitmap
Returns:
channel layout tag

Definition at line 467 of file mov_chan.c.

Referenced by mov_write_chan_tag().


Variable Documentation

Initial value:

Definition at line 156 of file mov_chan.c.

Definition at line 275 of file mov_chan.c.

Initial value:

Definition at line 141 of file mov_chan.c.

struct { ... } mov_codec_ch_layouts[] [static]


Generated on Fri Oct 26 02:48:02 2012 for FFmpeg by  doxygen 1.5.8