Example #1
0
void GstEnginePipeline::TagMessageReceived(GstMessage* msg) {
  GstTagList* taglist = nullptr;
  gst_message_parse_tag(msg, &taglist);

  Engine::SimpleMetaBundle bundle;
  bundle.title = ParseTag(taglist, GST_TAG_TITLE);
  bundle.artist = ParseTag(taglist, GST_TAG_ARTIST);
  bundle.comment = ParseTag(taglist, GST_TAG_COMMENT);
  bundle.album = ParseTag(taglist, GST_TAG_ALBUM);

  gst_tag_list_free(taglist);

  if (ignore_tags_) return;

  if (!bundle.title.isEmpty() || !bundle.artist.isEmpty() ||
      !bundle.comment.isEmpty() || !bundle.album.isEmpty())
    emit MetadataFound(id(), bundle);
}
void GstEnginePipeline::TagMessageReceived(GstMessage* msg) {
    GstTagList* taglist = nullptr;
    gst_message_parse_tag(msg, &taglist);

    Engine::SimpleMetaBundle bundle;
    bundle.title = ParseTag(taglist, GST_TAG_TITLE);
    if (IsAkamaiTag(bundle.title)) {
        QPair<QString, QString> artistTitlePair = ParseAkamaiTag(bundle.title);
        bundle.artist = artistTitlePair.first;
        bundle.title = artistTitlePair.second;
    } else {
        bundle.artist = ParseTag(taglist, GST_TAG_ARTIST);
        bundle.comment = ParseTag(taglist, GST_TAG_COMMENT);
        bundle.album = ParseTag(taglist, GST_TAG_ALBUM);
    }

    gst_tag_list_free(taglist);

    if (ignore_tags_) return;

    if (!bundle.title.isEmpty() || !bundle.artist.isEmpty() ||
            !bundle.comment.isEmpty() || !bundle.album.isEmpty())
        emit MetadataFound(id(), bundle);
}