You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +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:
		| @@ -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, \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user