More work on multichannel

Reorder channels to a more common default order.
Only add channel layout when channels > 1
Don't try to link to a session that is still starting
Small sse fixes.
This commit is contained in:
Wim Taymans 2018-09-14 15:23:12 +02:00
parent 5196f7f053
commit fcd90b25d3
12 changed files with 262 additions and 124 deletions

View file

@ -144,32 +144,35 @@ enum spa_audio_format {
enum spa_audio_channel {
SPA_AUDIO_CHANNEL_UNKNOWN, /**< unspecified */
SPA_AUDIO_CHANNEL_NA, /**< N/A, silent */
SPA_AUDIO_CHANNEL_MONO, /**< mono stream */
SPA_AUDIO_CHANNEL_FL, /**< front left */
SPA_AUDIO_CHANNEL_FR, /**< front right */
SPA_AUDIO_CHANNEL_RL, /**< rear left */
SPA_AUDIO_CHANNEL_RR, /**< rear right */
SPA_AUDIO_CHANNEL_FC, /**< front center */
SPA_AUDIO_CHANNEL_LFE, /**< LFE */
SPA_AUDIO_CHANNEL_SL, /**< side left */
SPA_AUDIO_CHANNEL_SR, /**< side right */
SPA_AUDIO_CHANNEL_RC, /**< rear center */
SPA_AUDIO_CHANNEL_RL, /**< rear left */
SPA_AUDIO_CHANNEL_RR, /**< rear right */
SPA_AUDIO_CHANNEL_FLC, /**< front left center */
SPA_AUDIO_CHANNEL_FRC, /**< front right center */
SPA_AUDIO_CHANNEL_RC, /**< rear center */
SPA_AUDIO_CHANNEL_SL, /**< side left */
SPA_AUDIO_CHANNEL_SR, /**< side right */
SPA_AUDIO_CHANNEL_TC, /**< top center */
SPA_AUDIO_CHANNEL_TFL, /**< top front left */
SPA_AUDIO_CHANNEL_TFC, /**< top front center */
SPA_AUDIO_CHANNEL_TFR, /**< top front right */
SPA_AUDIO_CHANNEL_TRL, /**< top rear left */
SPA_AUDIO_CHANNEL_TRC, /**< top rear center */
SPA_AUDIO_CHANNEL_TRR, /**< top rear right */
SPA_AUDIO_CHANNEL_RLC, /**< rear left center */
SPA_AUDIO_CHANNEL_RRC, /**< rear right center */
SPA_AUDIO_CHANNEL_FLW, /**< front left wide */
SPA_AUDIO_CHANNEL_FRW, /**< front right wide */
SPA_AUDIO_CHANNEL_LFE2, /**< LFE 2 */
SPA_AUDIO_CHANNEL_FLH, /**< front left high */
SPA_AUDIO_CHANNEL_FCH, /**< front center high */
SPA_AUDIO_CHANNEL_FRH, /**< front right high */
SPA_AUDIO_CHANNEL_TC, /**< top center */
SPA_AUDIO_CHANNEL_TFL, /**< top front left */
SPA_AUDIO_CHANNEL_TFR, /**< top front right */
SPA_AUDIO_CHANNEL_TFC, /**< top front center */
SPA_AUDIO_CHANNEL_TRL, /**< top rear left */
SPA_AUDIO_CHANNEL_TRR, /**< top rear right */
SPA_AUDIO_CHANNEL_TRC, /**< top rear center */
SPA_AUDIO_CHANNEL_TFLC, /**< top front left center */
SPA_AUDIO_CHANNEL_TFRC, /**< top front right center */
SPA_AUDIO_CHANNEL_TSL, /**< top side left */
@ -183,41 +186,6 @@ enum spa_audio_channel {
SPA_AUDIO_CHANNEL_CUSTOM_START = 0x10000,
};
#define SPA_AUDIO_CHANNEL_MASK(ch) (1LL << SPA_AUDIO_CHANNEL_ ## ch)
enum spa_audio_layout {
SPA_AUDIO_LAYOUT_DEFAULT, /**< default layout for the number of channels */
SPA_AUDIO_LAYOUT_CUSTOM, /**< custom layout, either the order of the channels is
* non-standard or the channel position array contains
* custom channels. */
SPA_AUDIO_LAYOUT_MONO, /**< MONO */
SPA_AUDIO_LAYOUT_STEREO, /**< FL FR */
SPA_AUDIO_LAYOUT_2_1, /**< FL FR LFE */
SPA_AUDIO_LAYOUT_2RC, /**< FL FR RC */
SPA_AUDIO_LAYOUT_2FC, /**< FL FR FC */
SPA_AUDIO_LAYOUT_3_1, /**< FL FR FC LFE */
SPA_AUDIO_LAYOUT_4_0, /**< FL FR FC RC */
SPA_AUDIO_LAYOUT_4_1, /**< FL FR FC RC LFE */
SPA_AUDIO_LAYOUT_2_2, /**< FL FR SL SR */
SPA_AUDIO_LAYOUT_QUAD, /**< FL FR RL RR */
SPA_AUDIO_LAYOUT_5_0, /**< FL FR FC SL SR */
SPA_AUDIO_LAYOUT_5_1, /**< FL FR FC SL SR LFE */
SPA_AUDIO_LAYOUT_5_0R, /**< FL FR FC RL RR */
SPA_AUDIO_LAYOUT_5_1R, /**< FL FR FC RL RR LFE */
SPA_AUDIO_LAYOUT_6_0, /**< FL FR FC SL SR RC */
SPA_AUDIO_LAYOUT_6_0F, /**< FL FR SL SR FLC FRC */
SPA_AUDIO_LAYOUT_HEXAGONAL, /**< FL FR FC RL RR RC */
SPA_AUDIO_LAYOUT_6_1, /**< FL FR FC SL SR LFE RC */
SPA_AUDIO_LAYOUT_6_1R, /**< FL FR FC RL RR LFE RC */
SPA_AUDIO_LAYOUT_6_1F, /**< FL FR SL SR FLC FRC LFE */
SPA_AUDIO_LAYOUT_7_0, /**< FL FR FC SL SR RL RR */
SPA_AUDIO_LAYOUT_7_0F, /**< FL FR FC SL SR FLC FRC */
SPA_AUDIO_LAYOUT_7_1, /**< FL FR FC SL SR LFE RL RR */
SPA_AUDIO_LAYOUT_7_1W, /**< FL FR FC SL SR LFE FLC FRC */
SPA_AUDIO_LAYOUT_7_1WR, /**< FL FR FC RL RR LFE FLC FRC */
SPA_AUDIO_LAYOUT_OCTAGONAL, /**< FL FR FC SL SR RL RC RR */
};
/** Extra audio flags */
#define SPA_AUDIO_FLAG_NONE (0) /*< no valid flag */
#define SPA_AUDIO_FLAG_UNPOSITIONED (1 << 0) /*< the position array explicitly