11.11.2013 18:05, Takashi Iwai kirjoitti:
At Sun, 10 Nov 2013 18:19:26 +0200, Anssi Hannula wrote:
[...]
We have also these: SND_CHMAP_BC, /**< bottom center */ SND_CHMAP_BLC, /**< bottom left center */ SND_CHMAP_BRC, /**< bottom right center */
I guess "bottom center" is "under the listener" (USB audio v2 spec doesn't clarify, but clearly doesn't use the "Front" specifier as in "front bottom center").
However, the last two ones are weird. The descriptions do not make sense to me (under the listener to the left? wouldn't that be "bottom side left" instead?).
It seems like they were added by mistake - the only user is the USB audio driver which wrongly uses them for "back left/right center" instead of correct RLC/RRC.
These are taken from gstreamer definitions. I'm not quite sure about these distinctions, but added just for completeness in any future use case. So, just keep these unused for now.
gst-1.0 has: GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT,
So they are clearly labelled "front" and only the first one is "center".
Your gst patch (at least the ml version I saw) mapped them like this: + ITEM(BC, BOTTOM_FRONT_CENTER), + ITEM(BLC, BOTTOM_FRONT_LEFT), + ITEM(BRC, BOTTOM_FRONT_LEFT),
But I was under the assumption that BC is under the listener instead of front center, since otherwise it would be "BFC", not "BC". (though I don't find it unlikely at all that "bottom-center" got to the USB spec by a mistake... but if it were just a case of missing "front" specifier, one'd think the spec would have "bottom-front-left" and "bottom-front-right" as well, which it does not)
Also, clearly BLC is not bottom front left, since the 'C' stands for "center". Not to mention BRC being right, not left. ;)
So I guess the nonsensical BLC/BRC was just a mistake then... I guess we can pretend they are between BC and BSL/BSR (bottom side left/right) or something.
For reference, the complete current position list is: /** channel positions */ enum snd_pcm_chmap_position { SND_CHMAP_UNKNOWN = 0, /**< unspecified */ SND_CHMAP_NA, /**< N/A, silent */ SND_CHMAP_MONO, /**< mono stream */ SND_CHMAP_FL, /**< front left */ SND_CHMAP_FR, /**< front right */ SND_CHMAP_RL, /**< rear left */ SND_CHMAP_RR, /**< rear right */ SND_CHMAP_FC, /**< front center */ SND_CHMAP_LFE, /**< LFE */ SND_CHMAP_SL, /**< side left */ SND_CHMAP_SR, /**< side right */ SND_CHMAP_RC, /**< rear center */ SND_CHMAP_FLC, /**< front left center */ SND_CHMAP_FRC, /**< front right center */ SND_CHMAP_RLC, /**< rear left center */ SND_CHMAP_RRC, /**< rear right center */ SND_CHMAP_FLW, /**< front left wide */ SND_CHMAP_FRW, /**< front right wide */ SND_CHMAP_FLH, /**< front left high */ SND_CHMAP_FCH, /**< front center high */ SND_CHMAP_FRH, /**< front right high */ SND_CHMAP_TC, /**< top center */ SND_CHMAP_TFL, /**< top front left */ SND_CHMAP_TFR, /**< top front right */ SND_CHMAP_TFC, /**< top front center */ SND_CHMAP_TRL, /**< top rear left */ SND_CHMAP_TRR, /**< top rear right */ SND_CHMAP_TRC, /**< top rear center */ SND_CHMAP_TFLC, /**< top front left center */ SND_CHMAP_TFRC, /**< top front right center */ SND_CHMAP_TSL, /**< top side left */ SND_CHMAP_TSR, /**< top side right */ SND_CHMAP_LLFE, /**< left LFE */ SND_CHMAP_RLFE, /**< right LFE */ SND_CHMAP_BC, /**< bottom center */ SND_CHMAP_BLC, /**< bottom left center */ SND_CHMAP_BRC, /**< bottom right center */ SND_CHMAP_LAST = SND_CHMAP_BRC, };
-- Anssi Hannula
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel