mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-23 17:14:23 +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_buffer_reorder_channels
|
||||||
gst_audio_reorder_channels
|
gst_audio_reorder_channels
|
||||||
gst_audio_get_channel_reorder_map
|
gst_audio_get_channel_reorder_map
|
||||||
|
gst_audio_channel_positions_to_string
|
||||||
GstAudioChannelMixer
|
GstAudioChannelMixer
|
||||||
GstAudioChannelMixerFlags
|
GstAudioChannelMixerFlags
|
||||||
gst_audio_channel_mixer_new
|
gst_audio_channel_mixer_new
|
||||||
|
|
|
@ -538,3 +538,108 @@ gst_audio_channel_get_fallback_mask (gint channels)
|
||||||
|
|
||||||
return default_masks[channels - 1];
|
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);
|
gint *reorder_map);
|
||||||
guint64 gst_audio_channel_get_fallback_mask (gint channels);
|
guint64 gst_audio_channel_get_fallback_mask (gint channels);
|
||||||
|
|
||||||
|
gchar* gst_audio_channel_positions_to_string (const GstAudioChannelPosition * position,
|
||||||
|
gint channels);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GST_AUDIO_CHANNELS_H__ */
|
#endif /* __GST_AUDIO_CHANNELS_H__ */
|
||||||
|
|
|
@ -36,6 +36,7 @@ EXPORTS
|
||||||
gst_audio_channel_position_get_type
|
gst_audio_channel_position_get_type
|
||||||
gst_audio_channel_positions_from_mask
|
gst_audio_channel_positions_from_mask
|
||||||
gst_audio_channel_positions_to_mask
|
gst_audio_channel_positions_to_mask
|
||||||
|
gst_audio_channel_positions_to_string
|
||||||
gst_audio_channel_positions_to_valid_order
|
gst_audio_channel_positions_to_valid_order
|
||||||
gst_audio_check_valid_channel_positions
|
gst_audio_check_valid_channel_positions
|
||||||
gst_audio_clipping_meta_api_get_type
|
gst_audio_clipping_meta_api_get_type
|
||||||
|
|
Loading…
Reference in a new issue