GST_TYPE_DISCOVERER_STREAM_INFO);
static void
+gst_discoverer_audio_info_finalize (GstDiscovererAudioInfo * info)
+{
+ g_free (info->language);
+}
+
+static void
gst_discoverer_audio_info_class_init (GstDiscovererAudioInfoClass * klass)
{
- /* Nothing to initialize */
+ klass->finalize =
+ (GstMiniObjectFinalizeFunction) gst_discoverer_audio_info_finalize;
}
static void
gst_discoverer_audio_info_init (GstDiscovererAudioInfo * info)
{
- /* Nothing to initialize */
+ info->language = NULL;
}
static GstDiscovererAudioInfo *
ret->depth = ptr->depth;
ret->bitrate = ptr->bitrate;
ret->max_bitrate = ptr->max_bitrate;
+ ret->language = g_strdup (ptr->language);
return ret;
}
AUDIO_INFO_ACCESSOR_CODE (max_bitrate, guint, 0);
+/**
+ * gst_discoverer_audio_info_get_language:
+ * @info: a #GstDiscovererAudioInfo
+ *
+ * Returns: the language of the stream, or NULL if unknown.
+ *
+ * Since: 0.10.36
+ */
+
+AUDIO_INFO_ACCESSOR_CODE (language, const gchar *, NULL);
+
/* GstDiscovererVideoInfo */
#define VIDEO_INFO_ACCESSOR_CODE(fieldname, type, failval) \
gst_structure_free (tags_st);
}
+ if (!info->language && ((GstDiscovererStreamInfo *) info)->tags) {
+ gchar *language;
+ if (gst_tag_list_get_string (((GstDiscovererStreamInfo *) info)->tags,
+ GST_TAG_LANGUAGE_CODE, &language)) {
+ info->language = language;
+ }
+ }
+
return (GstDiscovererStreamInfo *) info;
} else if (g_str_has_prefix (name, "video/") ||
guint gst_discoverer_audio_info_get_depth(const GstDiscovererAudioInfo* info);
guint gst_discoverer_audio_info_get_bitrate(const GstDiscovererAudioInfo* info);
guint gst_discoverer_audio_info_get_max_bitrate(const GstDiscovererAudioInfo* info);
+const gchar * gst_discoverer_audio_info_get_language(const GstDiscovererAudioInfo* info);
/**
* GstDiscovererVideoInfo:
GstDiscovererAudioInfo *audio_info;
GString *s;
gchar *tmp;
+ const gchar *ctmp;
int len = 400;
const GstTagList *tags;
GstCaps *caps;
}
audio_info = (GstDiscovererAudioInfo *) info;
+ ctmp = gst_discoverer_audio_info_get_language (audio_info);
+ my_g_string_append_printf (s, "Language: %s\n", ctmp ? ctmp : "<unknown>");
my_g_string_append_printf (s, "Channels: %u\n",
gst_discoverer_audio_info_get_channels (audio_info));
my_g_string_append_printf (s, "Sample rate: %u\n",