avutil: Add av_get_default_channel_layout()

Also, use the new function in the AC-3 encoder.
pull/5/head
Justin Ruggles 13 years ago
parent 0becb07842
commit 5cc51a5847
  1. 3
      doc/APIchanges
  2. 2
      libavcodec/ac3enc.c
  3. 15
      libavutil/audioconvert.c
  4. 5
      libavutil/audioconvert.h
  5. 2
      libavutil/avutil.h

@ -12,6 +12,9 @@ libavutil: 2011-04-18
API changes, most recent first:
2012-xx-xx - xxxxxxx - lavu 51.26.0 - audioconvert.h
Add av_get_default_channel_layout()
2012-03-06 - 4d851f8 - lavu 51.25.0 - cpu.h
Add av_set_cpu_flags_mask().

@ -2074,7 +2074,7 @@ static av_cold int set_channel_info(AC3EncodeContext *s, int channels,
return AVERROR(EINVAL);
ch_layout = *channel_layout;
if (!ch_layout)
ch_layout = avcodec_guess_channel_layout(channels, CODEC_ID_AC3, NULL);
ch_layout = av_get_default_channel_layout(channels);
s->lfe_on = !!(ch_layout & AV_CH_LOW_FREQUENCY);
s->channels = channels;

@ -153,3 +153,18 @@ int av_get_channel_layout_nb_channels(uint64_t channel_layout)
x &= x-1; // unset lowest set bit
return count;
}
uint64_t av_get_default_channel_layout(int nb_channels)
{
switch(nb_channels) {
case 1: return AV_CH_LAYOUT_MONO;
case 2: return AV_CH_LAYOUT_STEREO;
case 3: return AV_CH_LAYOUT_SURROUND;
case 4: return AV_CH_LAYOUT_QUAD;
case 5: return AV_CH_LAYOUT_5POINT0;
case 6: return AV_CH_LAYOUT_5POINT1;
case 7: return AV_CH_LAYOUT_6POINT1;
case 8: return AV_CH_LAYOUT_7POINT1;
default: return 0;
}
}

@ -124,6 +124,11 @@ void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint
*/
int av_get_channel_layout_nb_channels(uint64_t channel_layout);
/**
* Return default channel layout for a given number of channels.
*/
uint64_t av_get_default_channel_layout(int nb_channels);
/**
* @}
*/

@ -152,7 +152,7 @@
*/
#define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 25
#define LIBAVUTIL_VERSION_MINOR 26
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \

Loading…
Cancel
Save