mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
gst-audio: add gst_audio_channel_positions_to_string()
We currently don't log much about channel positions making debugging harder as it should be. This is the first step in my attempt to improve this. https://bugzilla.gnome.org/show_bug.cgi?id=763985
This commit is contained in:
parent
d9268a50f1
commit
3cb08304da
4 changed files with 110 additions and 0 deletions
|
@ -512,6 +512,7 @@ gst_audio_check_valid_channel_positions
|
|||
gst_audio_buffer_reorder_channels
|
||||
gst_audio_reorder_channels
|
||||
gst_audio_get_channel_reorder_map
|
||||
gst_audio_channel_positions_to_string
|
||||
GstAudioChannelMixer
|
||||
GstAudioChannelMixerFlags
|
||||
gst_audio_channel_mixer_new
|
||||
|
|
|
@ -538,3 +538,108 @@ gst_audio_channel_get_fallback_mask (gint channels)
|
|||
|
||||
return default_masks[channels - 1];
|
||||
}
|
||||
|
||||
static const gchar *
|
||||
position_to_string (GstAudioChannelPosition pos)
|
||||
{
|
||||
switch (pos) {
|
||||
case GST_AUDIO_CHANNEL_POSITION_NONE:
|
||||
return "NONE";
|
||||
case GST_AUDIO_CHANNEL_POSITION_MONO:
|
||||
return "MONO";
|
||||
case GST_AUDIO_CHANNEL_POSITION_INVALID:
|
||||
return "INVALID";
|
||||
case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT:
|
||||
return "FL";
|
||||
case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT:
|
||||
return "FR";
|
||||
case GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER:
|
||||
return "FC";
|
||||
case GST_AUDIO_CHANNEL_POSITION_LFE1:
|
||||
return "LFE1";
|
||||
case GST_AUDIO_CHANNEL_POSITION_REAR_LEFT:
|
||||
return "RL";
|
||||
case GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT:
|
||||
return "RR";
|
||||
case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER:
|
||||
return "FLoC";
|
||||
case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER:
|
||||
return "FRoC";
|
||||
case GST_AUDIO_CHANNEL_POSITION_REAR_CENTER:
|
||||
return "RC";
|
||||
case GST_AUDIO_CHANNEL_POSITION_LFE2:
|
||||
return "LF2";
|
||||
case GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT:
|
||||
return "SL";
|
||||
case GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT:
|
||||
return "SR";
|
||||
case GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT:
|
||||
return "TFL";
|
||||
case GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT:
|
||||
return "TFR";
|
||||
case GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER:
|
||||
return "TFC";
|
||||
case GST_AUDIO_CHANNEL_POSITION_TOP_CENTER:
|
||||
return "TFC";
|
||||
case GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT:
|
||||
return "TRL";
|
||||
case GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT:
|
||||
return "TRR";
|
||||
case GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT:
|
||||
return "TSL";
|
||||
case GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT:
|
||||
return "TSR";
|
||||
case GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER:
|
||||
return "TRC";
|
||||
case GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER:
|
||||
return "BFC";
|
||||
case GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT:
|
||||
return "BFL";
|
||||
case GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT:
|
||||
return "BFR";
|
||||
case GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT:
|
||||
return "WL";
|
||||
case GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT:
|
||||
return "WR";
|
||||
case GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT:
|
||||
return "SL";
|
||||
case GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT:
|
||||
return "SR";
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return "UNKNOWN";
|
||||
}
|
||||
|
||||
/**
|
||||
* gst_audio_channel_positions_to_string:
|
||||
* @position: (array length=channels): The %GstAudioChannelPositions
|
||||
* to convert.
|
||||
* @channels: The number of channels.
|
||||
*
|
||||
* Converts @position to a human-readable string representation for
|
||||
* debugging purposes.
|
||||
*
|
||||
* Returns: (transfer full): a newly allocated string representing
|
||||
* @position
|
||||
*
|
||||
* Since 1.10
|
||||
*/
|
||||
gchar *
|
||||
gst_audio_channel_positions_to_string (const GstAudioChannelPosition * position,
|
||||
gint channels)
|
||||
{
|
||||
guint i;
|
||||
GString *tmp;
|
||||
|
||||
g_return_val_if_fail (channels > 0, FALSE);
|
||||
g_return_val_if_fail (position != NULL, FALSE);
|
||||
|
||||
tmp = g_string_new ("[");
|
||||
for (i = 0; i < channels; i++)
|
||||
g_string_append_printf (tmp, " %s", position_to_string (position[i]));
|
||||
g_string_append (tmp, " ]");
|
||||
|
||||
return g_string_free (tmp, FALSE);
|
||||
}
|
||||
|
|
|
@ -162,6 +162,9 @@ gboolean gst_audio_get_channel_reorder_map (gint channels,
|
|||
gint *reorder_map);
|
||||
guint64 gst_audio_channel_get_fallback_mask (gint channels);
|
||||
|
||||
gchar* gst_audio_channel_positions_to_string (const GstAudioChannelPosition * position,
|
||||
gint channels);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GST_AUDIO_CHANNELS_H__ */
|
||||
|
|
|
@ -36,6 +36,7 @@ EXPORTS
|
|||
gst_audio_channel_position_get_type
|
||||
gst_audio_channel_positions_from_mask
|
||||
gst_audio_channel_positions_to_mask
|
||||
gst_audio_channel_positions_to_string
|
||||
gst_audio_channel_positions_to_valid_order
|
||||
gst_audio_check_valid_channel_positions
|
||||
gst_audio_clipping_meta_api_get_type
|
||||
|
|
Loading…
Reference in a new issue