return 1;
}
-static void _aac_afh_get_taginfo(const struct mp4 *mp4, struct taginfo *tags)
+static void aac_afh_get_taginfo(const struct mp4 *mp4, struct taginfo *tags)
{
- tags->artist = mp4_meta_get_artist(mp4);
- tags->title = mp4_meta_get_title(mp4);
- tags->year = mp4_meta_get_date(mp4);
- tags->album = mp4_meta_get_album(mp4);
- tags->comment = mp4_meta_get_comment(mp4);
+ tags->artist = mp4_get_tag_value(mp4, "artist");
+ tags->title = mp4_get_tag_value(mp4, "title");
+ tags->year = mp4_get_tag_value(mp4, "date");
+ tags->album = mp4_get_tag_value(mp4, "album");
+ tags->comment = mp4_get_tag_value(mp4, "comment");
}
/*
if (aac_afh_get_chunk(0, c, &buf, &len) >= 0)
numbytes -= buf - map;
afhi->bitrate = 8 * numbytes / afhi->seconds_total / 1000;
- _aac_afh_get_taginfo(c->mp4, &afhi->tags);
+ aac_afh_get_taginfo(c->mp4, &afhi->tags);
ret = 1;
close:
aac_afh_close(c);
return ret;
}
-static char *meta_find_by_name(const struct mp4 *f, const char *item)
-{
- uint32_t i;
-
- for (i = 0; i < f->meta.count; i++)
- if (!strcasecmp(f->meta.tags[i].item, item))
- return para_strdup(f->meta.tags[i].value);
- return NULL;
-}
-
/**
- * Return the value of the artist meta tag of an mp4 file.
+ * Return the value of the given tag item.
*
* \param f Must not be NULL.
+ * \param item "artist", "title", "album", "comment", or "date".
*
- * \return If the file does not contain this metadata tag, the function returns
- * NULL. Otherwise, a copy of the tag value is returned. The caller should free
- * this memory when it is no longer needed.
+ * \return The function always returns NULL if the given item is not in the
+ * above list. Otherwise, if the file does not contain a tag for the given
+ * item, the function also returns NULL. Otherwise a copy of the tag value is
+ * returned and the caller should free this memory when it is no longer needed.
*/
-char *mp4_meta_get_artist(const struct mp4 *f)
+char *mp4_get_tag_value(const struct mp4 *f, const char *item)
{
- return meta_find_by_name(f, "artist");
-}
-
-/**
- * Return the value of the title meta tag of an mp4 file.
- *
- * \param f See \ref mp4_meta_get_artist().
- * \return See \ref mp4_meta_get_artist().
- */
-char *mp4_meta_get_title(const struct mp4 *f)
-{
- return meta_find_by_name(f, "title");
-}
-
-/**
- * Return the value of the date meta tag of an mp4 file.
- *
- * \param f See \ref mp4_meta_get_artist().
- * \return See \ref mp4_meta_get_artist().
- */
-char *mp4_meta_get_date(const struct mp4 *f)
-{
- return meta_find_by_name(f, "date");
-}
-
-/**
- * Return the value of the album meta tag of an mp4 file.
- *
- * \param f See \ref mp4_meta_get_artist().
- * \return See \ref mp4_meta_get_artist().
- */
-char *mp4_meta_get_album(const struct mp4 *f)
-{
- return meta_find_by_name(f, "album");
-}
+ uint32_t i;
-/**
- * Return the value of the comment meta tag of an mp4 file.
- *
- * \param f See \ref mp4_meta_get_artist().
- * \return See \ref mp4_meta_get_artist().
- */
-char *mp4_meta_get_comment(const struct mp4 *f)
-{
- return meta_find_by_name(f, "comment");
+ for (i = 0; i < f->meta.count; i++)
+ if (!strcasecmp(f->meta.tags[i].item, item))
+ return para_strdup(f->meta.tags[i].value);
+ return NULL;
}
int mp4_open_meta(const struct mp4_callback *cb, struct mp4 **result);
struct mp4_metadata *mp4_get_meta(struct mp4 *f);
int mp4_meta_update(struct mp4 *f);
-char *mp4_meta_get_artist(const struct mp4 *f);
-char *mp4_meta_get_title(const struct mp4 *f);
-char *mp4_meta_get_date(const struct mp4 *f);
-char *mp4_meta_get_album(const struct mp4 *f);
-char *mp4_meta_get_comment(const struct mp4 *f);
+char *mp4_get_tag_value(const struct mp4 *f, const char *item);