1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

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: Mans Rullgard <mans@mansr.com>
This commit is contained in:
Mans Rullgard 2011-11-25 12:51:57 +00:00
parent 00a856e3f9
commit cc276c85d1
21 changed files with 39 additions and 39 deletions

View File

@ -48,7 +48,7 @@ typedef struct AACAC3ParseContext {
int sample_rate; int sample_rate;
int bit_rate; int bit_rate;
int samples; int samples;
int64_t channel_layout; uint64_t channel_layout;
int service_type; int service_type;
int remaining_size; int remaining_size;

View File

@ -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 }, }, { { 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_MONO,
AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_STEREO,
AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_SURROUND,

View File

@ -118,7 +118,7 @@ typedef struct {
uint32_t bit_rate; uint32_t bit_rate;
uint8_t channels; uint8_t channels;
uint16_t frame_size; uint16_t frame_size;
int64_t channel_layout; uint64_t channel_layout;
/** @} */ /** @} */
} AC3HeaderInfo; } AC3HeaderInfo;

View File

@ -77,7 +77,7 @@ static uint8_t exponent_group_tab[2][3][256];
/** /**
* List of supported channel layouts. * 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_MONO,
AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_STEREO,
AV_CH_LAYOUT_2_1, AV_CH_LAYOUT_2_1,
@ -2063,13 +2063,13 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx)
* Set channel information during initialization. * Set channel information during initialization.
*/ */
static av_cold int set_channel_info(AC3EncodeContext *s, int channels, static av_cold int set_channel_info(AC3EncodeContext *s, int channels,
int64_t *channel_layout) uint64_t *channel_layout)
{ {
int ch_layout; int ch_layout;
if (channels < 1 || channels > AC3_MAX_CHANNELS) if (channels < 1 || channels > AC3_MAX_CHANNELS)
return AVERROR(EINVAL); return AVERROR(EINVAL);
if ((uint64_t)*channel_layout > 0x7FF) if (*channel_layout > 0x7FF)
return AVERROR(EINVAL); return AVERROR(EINVAL);
ch_layout = *channel_layout; ch_layout = *channel_layout;
if (!ch_layout) if (!ch_layout)

View File

@ -258,7 +258,7 @@ typedef struct AC3EncodeContext {
} 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); int ff_ac3_encode_init(AVCodecContext *avctx);

View File

@ -48,7 +48,7 @@ void avcodec_sample_fmt_string (char *buf, int buf_size, int sample_fmt)
} }
#endif #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) { switch(nb_channels) {
case 1: return AV_CH_LAYOUT_MONO; case 1: return AV_CH_LAYOUT_MONO;

View File

@ -80,7 +80,7 @@ int avcodec_channel_layout_num_channels(int64_t channel_layout);
* @param fmt_name Format name, or NULL if unknown * @param fmt_name Format name, or NULL if unknown
* @return Channel layout mask * @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; struct AVAudioConvert;
typedef struct AVAudioConvert AVAudioConvert; typedef struct AVAudioConvert AVAudioConvert;

View File

@ -2696,14 +2696,14 @@ typedef struct AVCodecContext {
* - encoding: set by user. * - encoding: set by user.
* - decoding: set by libavcodec. * - 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) * Request decoder to use this channel layout if it can (0 for default)
* - encoding: unused * - encoding: unused
* - decoding: Set by user. * - 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. * 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 char *long_name;
const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0 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 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 uint8_t max_lowres; ///< maximum value for lowres supported by the decoder
const AVClass *priv_class; ///< AVClass for the private context 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} const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}

View File

@ -128,7 +128,7 @@ static const int dca_ext_audio_descr_mask[] = {
* All 2 channel configurations -> AV_CH_LAYOUT_STEREO * 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_FRONT_CENTER, ///< 1, A
AV_CH_LAYOUT_STEREO, ///< 2, A + B (dual mono) AV_CH_LAYOUT_STEREO, ///< 2, A + B (dual mono)
AV_CH_LAYOUT_STEREO, ///< 2, L + R (stereo) AV_CH_LAYOUT_STEREO, ///< 2, L + R (stereo)

View File

@ -107,7 +107,7 @@ static int truehd_channels(int chanmap)
return channels; return channels;
} }
static int64_t truehd_layout(int chanmap) static uint64_t truehd_layout(int chanmap)
{ {
int layout = 0, i; int layout = 0, i;

View File

@ -22,7 +22,7 @@
#define LIBAVCODEC_VERSION_MAJOR 53 #define LIBAVCODEC_VERSION_MAJOR 53
#define LIBAVCODEC_VERSION_MINOR 22 #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, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \ LIBAVCODEC_VERSION_MINOR, \

View File

@ -27,7 +27,7 @@ extern const float ff_vorbis_floor1_inverse_db_table[256];
extern const float * const ff_vorbis_vwin[8]; 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_channel_layout_offsets[8][8];
extern const uint8_t ff_vorbis_encoding_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 { typedef struct {
uint16_t x; uint16_t x;

View File

@ -44,7 +44,7 @@ const uint8_t ff_vorbis_encoding_channel_layout_offsets[8][8] = {
{ 0, 2, 1, 6, 7, 4, 5, 3 }, { 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_MONO,
AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_STEREO,
AV_CH_LAYOUT_SURROUND, AV_CH_LAYOUT_SURROUND,

View File

@ -143,7 +143,7 @@ switch(format) {\
case FORMAT_F32: s->reorder_func = alsa_reorder_f32_out_ ##layout; break;\ 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; 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_t *h;
snd_pcm_hw_params_t *hw_params; snd_pcm_hw_params_t *hw_params;
snd_pcm_uframes_t buffer_size, period_size; 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"; if (ctx->filename[0] == 0) audio_device = "default";
else audio_device = ctx->filename; else audio_device = ctx->filename;

View File

@ -25,7 +25,7 @@
#include "libavutil/audioconvert.h" #include "libavutil/audioconvert.h"
typedef struct { typedef struct {
int64_t channel_layout; uint64_t channel_layout;
int64_t sample_rate; int64_t sample_rate;
} ANullContext; } ANullContext;

View File

@ -349,7 +349,7 @@ fail:
AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms, AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size, enum AVSampleFormat sample_fmt, int size,
int64_t channel_layout, int planar) uint64_t channel_layout, int planar)
{ {
AVFilterBufferRef *ret = NULL; AVFilterBufferRef *ret = NULL;

View File

@ -30,7 +30,7 @@
#define LIBAVFILTER_VERSION_MAJOR 2 #define LIBAVFILTER_VERSION_MAJOR 2
#define LIBAVFILTER_VERSION_MINOR 13 #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, \ #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \ LIBAVFILTER_VERSION_MINOR, \
@ -100,7 +100,7 @@ typedef struct AVFilterBuffer {
* per reference properties must be separated out. * per reference properties must be separated out.
*/ */
typedef struct AVFilterBufferRefAudioProps { 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 nb_samples; ///< number of audio samples
int size; ///< audio buffer size int size; ///< audio buffer size
uint32_t sample_rate; ///< audio buffer sample rate uint32_t sample_rate; ///< audio buffer sample rate
@ -376,7 +376,7 @@ struct AVFilterPad {
*/ */
AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms, AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size, 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 * 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 */ /** default handler for get_audio_buffer() for audio inputs */
AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms, AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size, 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 * 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 */ /** get_audio_buffer() handler for filters which simply pass audio along */
AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, int perms, AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size, 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 * Filter definition. This defines the pads a filter contains, and all the
@ -589,7 +589,7 @@ struct AVFilterLink {
int h; ///< agreed upon image height int h; ///< agreed upon image height
AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio
/* These two parameters apply only to audio */ /* 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 int64_t sample_rate; ///< samples per second
int format; ///< agreed upon media format 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, AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size, 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. * Request an input frame from the filter at the other end of the link.

View File

@ -57,7 +57,7 @@ AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, int per
AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms, AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size, enum AVSampleFormat sample_fmt, int size,
int64_t channel_layout, int planar) uint64_t channel_layout, int planar)
{ {
AVFilterBuffer *samples = av_mallocz(sizeof(AVFilterBuffer)); AVFilterBuffer *samples = av_mallocz(sizeof(AVFilterBuffer));
AVFilterBufferRef *ref = NULL; 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, AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, int perms,
enum AVSampleFormat sample_fmt, int size, 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, return avfilter_get_audio_buffer(link->dst->outputs[0], perms, sample_fmt,
size, channel_layout, packed); size, channel_layout, packed);

View File

@ -60,7 +60,7 @@ static const char *get_channel_name(int channel_id)
static const struct { static const struct {
const char *name; const char *name;
int nb_channels; int nb_channels;
int64_t layout; uint64_t layout;
} channel_layout_map[] = { } channel_layout_map[] = {
{ "mono", 1, AV_CH_LAYOUT_MONO }, { "mono", 1, AV_CH_LAYOUT_MONO },
{ "stereo", 2, AV_CH_LAYOUT_STEREO }, { "stereo", 2, AV_CH_LAYOUT_STEREO },
@ -77,7 +77,7 @@ static const struct {
{ 0 } { 0 }
}; };
int64_t av_get_channel_layout(const char *name) uint64_t av_get_channel_layout(const char *name)
{ {
int i = 0; int i = 0;
do { 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, 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; 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; int count;
uint64_t x = channel_layout; uint64_t x = channel_layout;

View File

@ -62,7 +62,7 @@
/** Channel mask value used for AVCodecContext.request_channel_layout /** Channel mask value used for AVCodecContext.request_channel_layout
to indicate that the user requests the channel order of the decoder output to indicate that the user requests the channel order of the decoder output
to be the native codec channel order. */ 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. * 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. * 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 put here the string containing the channel layout
* @param buf_size size in bytes of the buffer * @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. * 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);
/** /**
* @} * @}

View File

@ -154,7 +154,7 @@
#define LIBAVUTIL_VERSION_MAJOR 51 #define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 19 #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, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \ LIBAVUTIL_VERSION_MINOR, \