mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
avutil/channel_layout: make pre-defined channel layouts C++ friendly
C++ doesn't support designated initializers until C++20. We have a bunch of pre-defined channel layouts, the gains to make them usable in C++ exceed the losses. Bump minor version so C++ project can check before use these defines. Also initialize .opaque field explicitly to reduce warning in C++. Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
81a48d96e2
commit
ff094f5ebb
@ -2,6 +2,9 @@ The last version increases of all libraries were on 2023-02-09
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2023-08-18 - xxxxxxxxxx - lavu 58.17.100 - channel_layout.h
|
||||
All AV_CHANNEL_LAYOUT_* macros are now compatible with C++ 17 and older.
|
||||
|
||||
2023-08-08 - xxxxxxxxxx - lavc 60.23.100 - libx264.c
|
||||
Add mb_info option.
|
||||
|
||||
|
@ -358,8 +358,16 @@ typedef struct AVChannelLayout {
|
||||
void *opaque;
|
||||
} AVChannelLayout;
|
||||
|
||||
/**
|
||||
* Macro to define native channel layouts
|
||||
*
|
||||
* @note This doesn't use designated initializers for compatibility with C++ 17 and older.
|
||||
*/
|
||||
#define AV_CHANNEL_LAYOUT_MASK(nb, m) \
|
||||
{ .order = AV_CHANNEL_ORDER_NATIVE, .nb_channels = (nb), .u = { .mask = (m) }}
|
||||
{ /* .order */ AV_CHANNEL_ORDER_NATIVE, \
|
||||
/* .nb_channels */ (nb), \
|
||||
/* .u.mask */ { m }, \
|
||||
/* .opaque */ NULL }
|
||||
|
||||
/**
|
||||
* @name Common pre-defined channel layouts
|
||||
@ -396,8 +404,12 @@ typedef struct AVChannelLayout {
|
||||
#define AV_CHANNEL_LAYOUT_HEXADECAGONAL AV_CHANNEL_LAYOUT_MASK(16, AV_CH_LAYOUT_HEXADECAGONAL)
|
||||
#define AV_CHANNEL_LAYOUT_STEREO_DOWNMIX AV_CHANNEL_LAYOUT_MASK(2, AV_CH_LAYOUT_STEREO_DOWNMIX)
|
||||
#define AV_CHANNEL_LAYOUT_22POINT2 AV_CHANNEL_LAYOUT_MASK(24, AV_CH_LAYOUT_22POINT2)
|
||||
|
||||
#define AV_CHANNEL_LAYOUT_AMBISONIC_FIRST_ORDER \
|
||||
{ .order = AV_CHANNEL_ORDER_AMBISONIC, .nb_channels = 4, .u = { .mask = 0 }}
|
||||
{ /* .order */ AV_CHANNEL_ORDER_AMBISONIC, \
|
||||
/* .nb_channels */ 4, \
|
||||
/* .u.mask */ { 0 }, \
|
||||
/* .opaque */ NULL }
|
||||
/** @} */
|
||||
|
||||
struct AVBPrint;
|
||||
|
@ -79,8 +79,8 @@
|
||||
*/
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 58
|
||||
#define LIBAVUTIL_VERSION_MINOR 16
|
||||
#define LIBAVUTIL_VERSION_MICRO 101
|
||||
#define LIBAVUTIL_VERSION_MINOR 17
|
||||
#define LIBAVUTIL_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||
LIBAVUTIL_VERSION_MINOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user