X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst-libs%2Fgst%2Faudio%2Fmultichannel.c;h=6f6ea98da27685bf646a76b43fd1e908ae415312;hb=refs%2Fheads%2Fmaster;hp=bd26f1c2b5ffaee32027bab53f84b7f0c055ab36;hpb=5368e843d0f50770b7959782e360243dff90eb8d;p=framework%2Fmultimedia%2Fgst-plugins-base0.10.git diff --git a/gst-libs/gst/audio/multichannel.c b/gst-libs/gst/audio/multichannel.c index bd26f1c..6f6ea98 100644 --- a/gst-libs/gst/audio/multichannel.c +++ b/gst-libs/gst/audio/multichannel.c @@ -292,6 +292,32 @@ gst_audio_get_channel_positions (GstStructure * str) return pos; } +void priv_gst_audio_info_fill_default_channel_positions (GstAudioInfo * info); + +void +priv_gst_audio_info_fill_default_channel_positions (GstAudioInfo * info) +{ + guint channels, i; + + g_assert (info != NULL); + + channels = GST_AUDIO_INFO_CHANNELS (info); + + g_assert (channels > 0); + + if (channels <= NUM_DEF_CHANS) { + /* just return some default channel layout if we have one */ + for (i = 0; i < channels; ++i) + info->position[i] = default_positions[channels - 1][i]; + } else { + /* for many many channels, the positions are always NONE */ + for (i = 0; i < G_N_ELEMENTS (info->position); i++) + info->position[i] = GST_AUDIO_CHANNEL_POSITION_NONE; + } + + info->flags |= GST_AUDIO_FLAG_DEFAULT_POSITIONS; +} + /** * gst_audio_set_channel_positions: * @str: A #GstStructure to set channel positions on.