/// <summary>
        /// Adds Metadata tags to the recorded file using GStreamer TagSetter interface and splits files if requested
        /// </summary>
        /// <param name="track">
        /// A <see cref="TrackInfo"/> containing the current stream and its metadata
        /// </param>
        /// <param name="splitfiles">
        /// A <see cref="System.Boolean"/> indicating whether the recorded files are to be split
        /// </param>
        /// <returns>
        /// A <see cref="System.Boolean"/> indicating if tagging was successful
        /// </returns>
        public bool AddStreamTags(TrackInfo track, bool splitfiles)
        {
            if (track == null)
            {
                return(false);
            }

            if (splitfiles && file_sink != null && track.ArtistName != null && track.ArtistName.Length > 0)
            {
                if (track.ArtistName != lastArtist || track.TrackTitle != lastTitle)
                {
                    SetMetadataFilename(track.TrackTitle, track.ArtistName);
                    SetNewTrackLocation(output_file + file_extension, IntPtr.Zero);
                }
            }

            lastArtist = track.ArtistName;
            lastTitle  = track.TrackTitle;

            if (tagger == null || tagger.IsNull())
            {
                Hyena.Log.Debug("[Recorder]<AddStreamTags> tagger is null, not tagging!");
                return(false);
            }

            try {
                TagList taglist = new TagList();
                if (track.TrackTitle != null)
                {
                    taglist.AddStringValue(TagMergeMode.ReplaceAll, "title", track.TrackTitle);
                }
                if (track.Genre != null)
                {
                    taglist.AddStringValue(TagMergeMode.ReplaceAll, "genre", track.Genre);
                }
                if (track.ArtistName != null)
                {
                    taglist.AddStringValue(TagMergeMode.ReplaceAll, "artist", track.ArtistName);
                }
                if (track.AlbumArtist != null)
                {
                    taglist.AddStringValue(TagMergeMode.ReplaceAll, "album-artist", track.AlbumArtist);
                }
                if (track.AlbumTitle != null)
                {
                    taglist.AddStringValue(TagMergeMode.ReplaceAll, "album", track.AlbumTitle);
                }

                tagger.MergeTags(taglist, TagMergeMode.KeepAll);
            } catch (Exception e) {
                Hyena.Log.Information("[Streamrecorder] An exception occurred during gstreamer operation");
                Hyena.Log.Debug(e.StackTrace);
            }

            return(true);
        }