Klasse TagSetter

Alle implementierten Schnittstellen:
PointerInterface

public class TagSetter extends Interface
Element interface that allows setting of media metadata.

Elements that support changing a stream's metadata will implement this
interface. Examples of such elements are 'vorbisenc', 'theoraenc' and
'id3v2mux'.

If you just want to retrieve metadata in your application then all you
need to do is watch for tag messages on your pipeline's bus. This
interface is only for setting metadata, not for extracting it. To set tags
from the application, find tagsetter elements and set tags using e.g.
gst_tag_setter_merge_tags() or gst_tag_setter_add_tags(). Also consider
setting the #GstTagMergeMode that is used for tag events that arrive at the
tagsetter element (default mode is to keep existing tags).
The application should do that before the element goes to %GST_STATE_PAUSED.

Elements implementing the #GstTagSetter interface often have to merge
any tags received from upstream and the tags set by the application via
the interface. This can be done like this:
<!-- language="C" -->
 GstTagMergeMode merge_mode;
 const GstTagList *application_tags;
 const GstTagList *event_tags;
 GstTagSetter *tagsetter;
 GstTagList *result;
 
 tagsetter = GST_TAG_SETTER (element);
 
 merge_mode = gst_tag_setter_get_tag_merge_mode (tagsetter);
 application_tags = gst_tag_setter_get_tag_list (tagsetter);
 event_tags = (const GstTagList *) element->event_tags;
 
 GST_LOG_OBJECT (tagsetter, "merging tags, merge mode = %d", merge_mode);
 GST_LOG_OBJECT (tagsetter, "event tags: %" GST_PTR_FORMAT, event_tags);
 GST_LOG_OBJECT (tagsetter, "set   tags: %" GST_PTR_FORMAT, application_tags);
 
 result = gst_tag_list_merge (application_tags, event_tags, merge_mode);
 
 GST_LOG_OBJECT (tagsetter, "final tags: %" GST_PTR_FORMAT, result);
 

https://gstreamer.freedesktop.org/documentation/gstreamer/gi-index.html

  • Konstruktordetails

  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • addTagValue

      public void addTagValue(int mode, @Nonnull Str tag, @Nonnull Value value)
      Adds the given tag / GValue pair on the setter using the given merge mode.
      Parameter:
      mode - the mode to use
      tag - tag to set
      value - GValue to set for the tag
    • addTagValue

      public void addTagValue(int mode, String tag, @Nonnull Value value)
      Adds the given tag / GValue pair on the setter using the given merge mode.
      Parameter:
      mode - the mode to use
      tag - tag to set
      value - GValue to set for the tag
    • addTagValues

      public void addTagValues(int mode, @Nonnull Str tag, Object... _ellipsis)
      Adds the given tag / GValue pairs on the setter using the given merge mode.
      The list must be terminated with %NULL.
      Parameter:
      mode - the mode to use
      tag - tag to set
      _ellipsis - more tag / GValue pairs to set
    • addTagValues

      public void addTagValues(int mode, String tag, Object... _ellipsis)
      Adds the given tag / GValue pairs on the setter using the given merge mode.
      The list must be terminated with %NULL.
      Parameter:
      mode - the mode to use
      tag - tag to set
      _ellipsis - more tag / GValue pairs to set
    • addTags

      public void addTags(int mode, @Nonnull Str tag, Object... _ellipsis)
      Adds the given tag / value pairs on the setter using the given merge mode.
      The list must be terminated with %NULL.
      Parameter:
      mode - the mode to use
      tag - tag to set
      _ellipsis - more tag / value pairs to set
    • addTags

      public void addTags(int mode, String tag, Object... _ellipsis)
      Adds the given tag / value pairs on the setter using the given merge mode.
      The list must be terminated with %NULL.
      Parameter:
      mode - the mode to use
      tag - tag to set
      _ellipsis - more tag / value pairs to set
    • getTagList

      public TagList getTagList()
      Returns the current list of tags the setter uses. The list should not be
      modified or freed.

      This function is not thread-safe.
      Gibt zurück:
      a current snapshot of the taglist used in the setter or %NULL if none is used.
    • getTagMergeMode

      public int getTagMergeMode()
      Queries the mode by which tags inside the setter are overwritten by tags
      from events
      Gibt zurück:
      the merge mode used inside the element.
    • mergeTags

      public void mergeTags(@Nonnull TagList list, int mode)
      Merges the given list into the setter's list using the given mode.
      Parameter:
      list - a tag list to merge from
      mode - the mode to merge with
    • resetTags

      public void resetTags()
      Reset the internal taglist. Elements should call this from within the
      state-change handler.
    • setTagMergeMode

      public void setTagMergeMode(int mode)
      Sets the given merge mode that is used for adding tags from events to tags
      specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps
      the tags set with this interface and discards tags from events.
      Parameter:
      mode - The mode with which tags are added
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()