Commit cc276c85 authored by Mans Rullgard's avatar Mans Rullgard
Browse files

Make channel layout masks unsigned



It makes more sense for a bit mask to use an unsigned type.
The change should be source and binary compatible on all
supported systems, hence micro version bump.

Fixes a few invalid shifts.
Signed-off-by: default avatarMans Rullgard <mans@mansr.com>
parent 00a856e3
......@@ -48,7 +48,7 @@ typedef struct AACAC3ParseContext {
int sample_rate;
int bit_rate;
int samples;
int64_t channel_layout;
uint64_t channel_layout;
int service_type;
int remaining_size;
......
......@@ -90,7 +90,7 @@ static const uint8_t aac_channel_layout_map[7][5][2] = {
{ { TYPE_CPE, 0 }, { TYPE_SCE, 0 }, { TYPE_LFE, 0 }, { TYPE_CPE, 2 }, { TYPE_CPE, 1 }, },
};
static const int64_t aac_channel_layout[8] = {
static const uint64_t aac_channel_layout[8] = {
AV_CH_LAYOUT_MONO,
AV_CH_LAYOUT_STEREO,
AV_CH_LAYOUT_SURROUND,
......
......@@ -118,7 +118,7 @@ typedef struct {
uint32_t bit_rate;
uint8_t channels;
uint16_t frame_size;
int64_t channel_layout;
uint64_t channel_layout;
/** @} */
} AC3HeaderInfo;
......
......@@ -77,7 +77,7 @@ static uint8_t exponent_group_tab[2][3][256];
/**
* List of supported channel layouts.
*/
const int64_t ff_ac3_channel_layouts[19] = {
const uint64_t ff_ac3_channel_layouts[19] = {
AV_CH_LAYOUT_MONO,
AV_CH_LAYOUT_STEREO,
AV_CH_LAYOUT_2_1,
......@@ -2063,13 +2063,13 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx)
* Set channel information during initialization.
*/
static av_cold int set_channel_info(AC3EncodeContext *s, int channels,
int64_t *channel_layout)
uint64_t *channel_layout)
{
int ch_layout;
if (channels < 1 || channels > AC3_MAX_CHANNELS)
return AVERROR(EINVAL);
if ((uint64_t)*channel_layout > 0x7FF)
if (*channel_layout > 0x7FF)
return AVERROR(EINVAL);
ch_layout = *channel_layout;
if (!ch_layout)
......
......@@ -258,7 +258,7 @@ typedef struct AC3EncodeContext {
} AC3EncodeContext;
extern const int64_t ff_ac3_channel_layouts[19];
extern const uint64_t ff_ac3_channel_layouts[19];
int ff_ac3_encode_init(AVCodecContext *avctx);
......
......@@ -48,7 +48,7 @@ void avcodec_sample_fmt_string (char *buf, int buf_size, int sample_fmt)
}
#endif
int64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name)
uint64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name)
{
switch(nb_channels) {
case 1: return AV_CH_LAYOUT_MONO;
......
......@@ -80,7 +80,7 @@ int avcodec_channel_layout_num_channels(int64_t channel_layout);
* @param fmt_name Format name, or NULL if unknown
* @return Channel layout mask
*/
int64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name);
uint64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name);
struct AVAudioConvert;
typedef struct AVAudioConvert AVAudioConvert;
......
......@@ -2696,14 +2696,14 @@ typedef struct AVCodecContext {
* - encoding: set by user.
* - decoding: set by libavcodec.
*/
int64_t channel_layout;
uint64_t channel_layout;
/**
* Request decoder to use this channel layout if it can (0 for default)
* - encoding: unused
* - decoding: Set by user.
*/
int64_t request_channel_layout;
uint64_t request_channel_layout;
/**
* Ratecontrol attempt to use, at maximum, <value> of what can be used without an underflow.
......@@ -3044,7 +3044,7 @@ typedef struct AVCodec {
const char *long_name;
const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0
const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1
const int64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
const uint64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0
uint8_t max_lowres; ///< maximum value for lowres supported by the decoder
const AVClass *priv_class; ///< AVClass for the private context
const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}
......
......@@ -128,7 +128,7 @@ static const int dca_ext_audio_descr_mask[] = {
* All 2 channel configurations -> AV_CH_LAYOUT_STEREO
*/
static const int64_t dca_core_channel_layout[] = {
static const uint64_t dca_core_channel_layout[] = {
AV_CH_FRONT_CENTER, ///< 1, A
AV_CH_LAYOUT_STEREO, ///< 2, A + B (dual mono)
AV_CH_LAYOUT_STEREO, ///< 2, L + R (stereo)
......
......@@ -107,7 +107,7 @@ static int truehd_channels(int chanmap)
return channels;
}
static int64_t truehd_layout(int chanmap)
static uint64_t truehd_layout(int chanmap)
{
int layout = 0, i;
......
......@@ -22,7 +22,7 @@
#define LIBAVCODEC_VERSION_MAJOR 53
#define LIBAVCODEC_VERSION_MINOR 22
#define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_MICRO 1
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
......
......@@ -27,7 +27,7 @@ extern const float ff_vorbis_floor1_inverse_db_table[256];
extern const float * const ff_vorbis_vwin[8];
extern const uint8_t ff_vorbis_channel_layout_offsets[8][8];
extern const uint8_t ff_vorbis_encoding_channel_layout_offsets[8][8];
extern const int64_t ff_vorbis_channel_layouts[9];
extern const uint64_t ff_vorbis_channel_layouts[9];
typedef struct {
uint16_t x;
......
......@@ -44,7 +44,7 @@ const uint8_t ff_vorbis_encoding_channel_layout_offsets[8][8] = {
{ 0, 2, 1, 6, 7, 4, 5, 3 },
};
const int64_t ff_vorbis_channel_layouts[9] = {
const uint64_t ff_vorbis_channel_layouts[9] = {
AV_CH_LAYOUT_MONO,
AV_CH_LAYOUT_STEREO,
AV_CH_LAYOUT_SURROUND,
......
......@@ -143,7 +143,7 @@ switch(format) {\
case FORMAT_F32: s->reorder_func = alsa_reorder_f32_out_ ##layout; break;\
}
static av_cold int find_reorder_func(AlsaData *s, int codec_id, int64_t layout, int out)
static av_cold int find_reorder_func(AlsaData *s, int codec_id, uint64_t layout, int out)
{
int format;
......@@ -194,7 +194,7 @@ av_cold int ff_alsa_open(AVFormatContext *ctx, snd_pcm_stream_t mode,
snd_pcm_t *h;
snd_pcm_hw_params_t *hw_params;
snd_pcm_uframes_t buffer_size, period_size;
int64_t layout = ctx->streams[0]->codec->channel_layout;
uint64_t layout = ctx->streams[0]->codec->channel_layout;
if (ctx->filename[0] == 0) audio_device = "default";
else audio_device = ctx->filename;
......
......@@ -25,7 +25,7 @@
#include "libavutil/audioconvert.h"
typedef struct {
int64_t channel_layout;
uint64_t channel_layout;
int64_t sample_rate;
} ANullContext;
......
......@@ -349,7 +349,7 @@ fail:
AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
int64_t channel_layout, int planar)
uint64_t channel_layout, int planar)
{
AVFilterBufferRef *ret = NULL;
......
......@@ -30,7 +30,7 @@
#define LIBAVFILTER_VERSION_MAJOR 2
#define LIBAVFILTER_VERSION_MINOR 13
#define LIBAVFILTER_VERSION_MICRO 0
#define LIBAVFILTER_VERSION_MICRO 1
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \
......@@ -100,7 +100,7 @@ typedef struct AVFilterBuffer {
* per reference properties must be separated out.
*/
typedef struct AVFilterBufferRefAudioProps {
int64_t channel_layout; ///< channel layout of audio buffer
uint64_t channel_layout; ///< channel layout of audio buffer
int nb_samples; ///< number of audio samples
int size; ///< audio buffer size
uint32_t sample_rate; ///< audio buffer sample rate
......@@ -376,7 +376,7 @@ struct AVFilterPad {
*/
AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
int64_t channel_layout, int planar);
uint64_t channel_layout, int planar);
/**
* Callback called after the slices of a frame are completely sent. If
......@@ -465,7 +465,7 @@ AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link,
/** default handler for get_audio_buffer() for audio inputs */
AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
int64_t channel_layout, int planar);
uint64_t channel_layout, int planar);
/**
* A helper for query_formats() which sets all links to the same list of
......@@ -496,7 +496,7 @@ AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link,
/** get_audio_buffer() handler for filters which simply pass audio along */
AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
int64_t channel_layout, int planar);
uint64_t channel_layout, int planar);
/**
* Filter definition. This defines the pads a filter contains, and all the
......@@ -589,7 +589,7 @@ struct AVFilterLink {
int h; ///< agreed upon image height
AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio
/* These two parameters apply only to audio */
int64_t channel_layout; ///< channel layout of current buffer (see libavutil/audioconvert.h)
uint64_t channel_layout; ///< channel layout of current buffer (see libavutil/audioconvert.h)
int64_t sample_rate; ///< samples per second
int format; ///< agreed upon media format
......@@ -688,7 +688,7 @@ avfilter_get_video_buffer_ref_from_arrays(uint8_t *data[4], int linesize[4], int
*/
AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
int64_t channel_layout, int planar);
uint64_t channel_layout, int planar);
/**
* Request an input frame from the filter at the other end of the link.
......
......@@ -57,7 +57,7 @@ AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, int per
AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
int64_t channel_layout, int planar)
uint64_t channel_layout, int planar)
{
AVFilterBuffer *samples = av_mallocz(sizeof(AVFilterBuffer));
AVFilterBufferRef *ref = NULL;
......@@ -292,7 +292,7 @@ AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link, int perms,
AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size,
int64_t channel_layout, int packed)
uint64_t channel_layout, int packed)
{
return avfilter_get_audio_buffer(link->dst->outputs[0], perms, sample_fmt,
size, channel_layout, packed);
......
......@@ -60,7 +60,7 @@ static const char *get_channel_name(int channel_id)
static const struct {
const char *name;
int nb_channels;
int64_t layout;
uint64_t layout;
} channel_layout_map[] = {
{ "mono", 1, AV_CH_LAYOUT_MONO },
{ "stereo", 2, AV_CH_LAYOUT_STEREO },
......@@ -77,7 +77,7 @@ static const struct {
{ 0 }
};
int64_t av_get_channel_layout(const char *name)
uint64_t av_get_channel_layout(const char *name)
{
int i = 0;
do {
......@@ -90,7 +90,7 @@ int64_t av_get_channel_layout(const char *name)
}
void av_get_channel_layout_string(char *buf, int buf_size,
int nb_channels, int64_t channel_layout)
int nb_channels, uint64_t channel_layout)
{
int i;
......@@ -123,7 +123,7 @@ void av_get_channel_layout_string(char *buf, int buf_size,
}
}
int av_get_channel_layout_nb_channels(int64_t channel_layout)
int av_get_channel_layout_nb_channels(uint64_t channel_layout)
{
int count;
uint64_t x = channel_layout;
......
......@@ -62,7 +62,7 @@
/** Channel mask value used for AVCodecContext.request_channel_layout
to indicate that the user requests the channel order of the decoder output
to be the native codec channel order. */
#define AV_CH_LAYOUT_NATIVE 0x8000000000000000LL
#define AV_CH_LAYOUT_NATIVE 0x8000000000000000ULL
/**
* @}
......@@ -92,7 +92,7 @@
/**
* Return a channel layout id that matches name, 0 if no match.
*/
int64_t av_get_channel_layout(const char *name);
uint64_t av_get_channel_layout(const char *name);
/**
* Return a description of a channel layout.
......@@ -101,12 +101,12 @@ int64_t av_get_channel_layout(const char *name);
* @param buf put here the string containing the channel layout
* @param buf_size size in bytes of the buffer
*/
void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, int64_t channel_layout);
void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout);
/**
* Return the number of channels in the channel layout.
*/
int av_get_channel_layout_nb_channels(int64_t channel_layout);
int av_get_channel_layout_nb_channels(uint64_t channel_layout);
/**
* @}
......
......@@ -154,7 +154,7 @@
#define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 19
#define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_MICRO 1
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment