From 5065e76b1c7bbd7f6e7edfeb3bf27284198f10b3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 30 May 2013 14:45:31 +0200 Subject: [PATCH] audio: Add gst_audio_info_is_equal() --- docs/libs/gst-plugins-base-libs-sections.txt | 1 + gst-libs/gst/audio/audio-info.c | 35 ++++++++++++++++++++++++++++ gst-libs/gst/audio/audio-info.h | 3 +++ win32/common/libgstaudio.def | 1 + 4 files changed, 40 insertions(+) diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt index c14e0bc..8df3533 100644 --- a/docs/libs/gst-plugins-base-libs-sections.txt +++ b/docs/libs/gst-plugins-base-libs-sections.txt @@ -115,6 +115,7 @@ gst_audio_info_copy gst_audio_info_free gst_audio_info_new gst_audio_info_set_format +gst_audio_info_is_equal gst_audio_format_build_integer gst_audio_format_fill_silence diff --git a/gst-libs/gst/audio/audio-info.c b/gst-libs/gst/audio/audio-info.c index c50c3d1..1c238f5 100644 --- a/gst-libs/gst/audio/audio-info.c +++ b/gst-libs/gst/audio/audio-info.c @@ -461,3 +461,38 @@ done: return res; } + +/** + * gst_audio_info_is_equal: + * @info: a #GstAudioInfo + * @other: a #GstAudioInfo + * + * Compares two #GstAudioInfo and returns whether they are equal or not + * + * Returns: %TRUE if @info and @other are equal, else %FALSE. + * + * Since: 1.2 + * + */ +gboolean +gst_audio_info_is_equal (const GstAudioInfo * info, const GstAudioInfo * other) +{ + if (GST_AUDIO_INFO_FORMAT (info) != GST_AUDIO_INFO_FORMAT (other)) + return FALSE; + if (GST_AUDIO_INFO_FLAGS (info) != GST_AUDIO_INFO_FLAGS (other)) + return FALSE; + if (GST_AUDIO_INFO_LAYOUT (info) != GST_AUDIO_INFO_LAYOUT (other)) + return FALSE; + if (GST_AUDIO_INFO_RATE (info) != GST_AUDIO_INFO_RATE (other)) + return FALSE; + if (GST_AUDIO_INFO_CHANNELS (info) != GST_AUDIO_INFO_CHANNELS (other)) + return FALSE; + if (GST_AUDIO_INFO_BPF (info) != GST_AUDIO_INFO_BPF (other)) + return FALSE; + if (memcmp (info->position, other->position, + GST_AUDIO_INFO_CHANNELS (info) * sizeof (GstAudioChannelPosition)) != + 0) + return FALSE; + + return TRUE; +} diff --git a/gst-libs/gst/audio/audio-info.h b/gst-libs/gst/audio/audio-info.h index 92be246..41b9f2f 100644 --- a/gst-libs/gst/audio/audio-info.h +++ b/gst-libs/gst/audio/audio-info.h @@ -128,6 +128,9 @@ gboolean gst_audio_info_convert (const GstAudioInfo * info, GstFormat src_fmt, gint64 src_val, GstFormat dest_fmt, gint64 * dest_val); +gboolean gst_audio_info_is_equal (const GstAudioInfo *info, + const GstAudioInfo *other); + G_END_DECLS #endif /* __GST_AUDIO_INFO_H__ */ diff --git a/win32/common/libgstaudio.def b/win32/common/libgstaudio.def index 3a7a364..be4d23a 100644 --- a/win32/common/libgstaudio.def +++ b/win32/common/libgstaudio.def @@ -118,6 +118,7 @@ EXPORTS gst_audio_info_from_caps gst_audio_info_get_type gst_audio_info_init + gst_audio_info_is_equal gst_audio_info_new gst_audio_info_set_format gst_audio_info_to_caps -- 2.7.4