Clapper Enhancers are special plugins loaded through libpeas for Clapper library.
+The idea is to enhance it (including applications that use Clapper) with new
+capabilities that do stuff outside of GStreamer scope of things without increasing
+number of dependencies of Clapper itself (especially for features that not everyone needs).
+
To avoid confusion with term “plugins” that GStreamer uses, the name “enhancers”
+was choosen instead.
+
In addition to writing enhancers in pure C, they can be written in any programmable
+language that is supported by libpeas and works with Clapper library bindings
+(examples being Python, GJS and Vala). This makes it possible for individual users
+to add their own custom functionalities that they want to use individually.
+
Types
+
Clapper gives three interfaces for writing enhancers for different things, these are:
Each enhancer is a libpeas compatible module. As such it follows its requirements for
+writing plugins and is a GObject sublass implementing one or more of interfaces
+that Clapper library provides.
+
Due to the plugins nature, written enhancer can be either submitted to the main Clapper Enhancers
+repository when it seems useful for more than a single
+application. Alternatively, it can be shipped as part your application. Users can also write their
+own/custom local enhancer plugins.
+
Loading Enhancers
+
Clapper will try to lazy load enhancer modules, meaning they will not be loaded unless they are used.
+As an additional safety precaution, enhancers can be disallowed from their instances being created with
+ClapperEnhancerProxy:target-creation-allowed. Enhancers that operate on-demand
+(when supported URI is given) such as ClapperExtractable and ClapperPlaylistable
+are allowed (enabled) by default, while ClapperReactable are not.
+
Environment variables:
+
+
CLAPPER_ENHANCERS_PATH - override for default path where Clapper loads enhancers from
+
CLAPPER_ENHANCERS_EXTRA_PATH - additional path to scan for enhancer plugins
+
+
While both allow to specify multiple directories (with : separation), applications and
+users should mostly use extra path in order to add their own enhancers from non-standard
+installation directory. They can override default path in case where they want to forbid
+using stock enhancers for some reason.
+
Enhancer Proxies
+
In order to create enhancers when needed and use them only within thread they were created in,
+Clapper manages enhancer instances on its own. It gives applications proxy objects for
+browsing and configuring them.
Properties set on the global list will carry over to all created player instances afterwards.
+While these set on a list from a player are applied to enhancers created by this player only.
+You can use that to your advantage to only allow creation of some type of enhancer in only some
+player instances.
+
Properties
+
Some enhancers might want to expose some configuration. For this cases they should install
+GObject properties in their class. They must only use fundamental types from the list below:
+
+
boolean
+
int
+
uint
+
double
+
string
+
+
They should include one or more of ClapperEnhancerParamFlags.
+Properties in object can have global, local, neither or both flags at once.
+
The ones with [Clapper.EnhancerParamFlags.GLOBAL] are for user to configure. They should
+be exposed (ideally in the UI) and used for things that make sense to be set for all
+applications at once (e.g. supported media codec by user device, preferred language, etc.).
+
On the other hand, properties with [Clapper.EnhancerParamFlags.LOCAL] are for application scope
+usage only. They never carry over to other apps, nor they can be set on global enhancers list.
+Instead they are configured per player instance.
+
When property is neither global or local it is considered to be plugin internal property.
+Clapper will never access them, as such they can be of any type (not limited to above list).
+This also makes properties that are already installed in base classes of subclassed object
+not appear in the UI.
+
When both flags are set, property will initially use globally set value by user while still
+allowing application to override this value locally per player instance.
+
Extra flags like [Clapper.EnhancerParamFlags.FILEPATH] and [Clapper.EnhancerParamFlags.DIRPATH]
+can be used (usually with string type of property) in order to let application know that this
+field holds a file/directory path and allow it to present file selection dialog to the user instead
+of text entry.
Use clapper_enhancer_proxy_get_settings() to get a GSettings with global properties
+to read and write (note that only users should be able to change them, thus you might want to bind these
+into some UI widgets for that). These can be (with user consent) set on either proxy from global proxies
+list or the player one.
+
Use clapper_enhancer_proxy_set_locally() to set local properties. These are meant for applications
+to freely customize as they please. Remember that you can only set them on a enhancer proxy object belonging
+to some player instance and not the global one.
+
Plugin Info File
+
An enhancer plugin should be placed within directory that includes its [Peas] plugin
+description file. It should be a text file with a .plugin extension and contain at least
+following content:
+
[Plugin]
+Module=example_enhancer
+Name=Example Enhancer
+Description=This enhancer serves as an example
+Version=0.0.1
+
+
+
+
Module - module entry file name. It also acts as enhancer ID and should be unique for each.
+It is recommended to use app/custom prefix in its name.
+
Name - module friendly name for displaying in UI and such.
+
Description - description to present to the user for what it does.
+
Version - enhancer version. In order to lazy load enhancers, Clapper will cache each
+enhancer data and olny reload it if version changes, so keep this always updated.
+
+
If module is written in interpretable programming language it must also contain Loader key
+with interpreter name (e.g. Loader=python).
+
Some enhancer interfaces require additional fields to be put in this file. They are described
+in the requirements of each one in their documentation pages that are listed in the
+Types section.
+
Adding Enhancers to Flatpak App
+
If you are using Clapper as part of a Flatpak application, you can get all the enhancers from their main repo as an extension
+(info here),
+thus you do not need to build them yourself.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/clapper/clapper.devhelp2 b/doc/clapper/clapper.devhelp2
index 928b4469..9144f8db 100644
--- a/doc/clapper/clapper.devhelp2
+++ b/doc/clapper/clapper.devhelp2
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/doc/clapper/clapper.toml b/doc/clapper/clapper.toml
index 00db3466..9b7cefea 100644
--- a/doc/clapper/clapper.toml
+++ b/doc/clapper/clapper.toml
@@ -66,6 +66,11 @@ base_url = "https://github.com/Rafostar/clapper/tree/master/"
[extra]
# The same order will be used when generating the index
content_files = [
+ "clapper-enhancers.md",
+ "extractable-enhancers.md",
+ "playlistable-enhancers.md",
+ "reactable-enhancers.md",
+ "migrating-to-010.md",
]
content_images = [
"images/clapper-logo.svg",
diff --git a/doc/clapper/extractable-enhancers.html b/doc/clapper/extractable-enhancers.html
new file mode 100644
index 00000000..6eb9635f
--- /dev/null
+++ b/doc/clapper/extractable-enhancers.html
@@ -0,0 +1,195 @@
+
+
+
+
+
+ Clapper – 0.0: Extractable Enhancers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extractable Enhancers
+
+
+
+
+
+
+
Overview
+
ClapperExtractable is an interface to implement enhancers that need to
+resolve given URI into data that GStreamer will be able to play. While not
+limited to, main use-case is for media information extraction.
+
While implementer is free to write whole extraction by hand, he can alternatively
+integrate some 3rd party library that does most of this work. In such case, extractable
+enhancer is more of a wrapper for integrating said library. This is especially useful
+if library that you want to use is written in different programming language than Clapper is.
Additional fields for .plugin info file: X-Schemes and X-Hosts. The former one should
+hold the ; separated list of supported URI schemes, while the latter is for hostnames.
With this in place, enhancer will be loaded and used for URIs that match combinations
+of one of the schemes and hosts. The special rule is that when using some custom URI
+scheme other than http(s), X-Hosts can be skipped since such URI explicitly
+says to use this module.
+
Considering all of the above, this enhancer would try to extract URIs like:
When Clapper.ExtractableInterface.extract is called, newly made ClapperHarvest
+is passed as this function argument. Implementation is responsible for filling it with
+data (see clapper_harvest_fill()) that can be played. Such content can be either
+a resolved URI to actual media file or some streaming manifest (like HLS or DASH).
+
During extract function, implementation might optionally add media tags such as title
+(which will be merged with tags of ClapperMediaItem) and extra HTTP request
+headers if any are required to access this content.
+
Multiple items extraction
+
It is possible to handle URIs which would normally return more than one media item to play.
+Examples being playlists, search queries, related videos, etc.
+
This can be handled in two ways, depending on set media type:
+
+
text/uri-list
+
application/clapper-playlist
+
+
If you use the first option, harvest should be filled with idividual URIs one per line.
+Clapper will use its built-in URI list parser to create a media item for each URI and
+place them in its playback queue. This is equivalent of creating ClapperMediaItem
+for each of these URIs without setting any tags in it initially.
+
The second option requires for this enhancer to also implement ClapperPlaylistable
+interface. In this case, you can fill harvest with ANY kind of data considering that
+Clapper.PlaylistableInterface.parse of your own enhancer will be used with the data you
+passed. With this, you can add more info to media items such as extra tags, timeline markers
+or subtitle URI. Useful if your extractor extracts both URIs and tags in one go.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/doc/clapper/index.html b/doc/clapper/index.html
index b08ceec6..88cc6681 100644
--- a/doc/clapper/index.html
+++ b/doc/clapper/index.html
@@ -324,6 +324,16 @@ SPDX-License-Identifier: LGPL-2.1-or-later
diff --git a/doc/clapper/index.json b/doc/clapper/index.json
index 25d7bcde..c059f1e1 100644
--- a/doc/clapper/index.json
+++ b/doc/clapper/index.json
@@ -1 +1 @@
-{"meta":{"ns":"Clapper","version":"0.0","generator":"gi-docgen","generator-version":"2025.4"},"symbols":[{"type":"bitfield","name":"EnhancerParamFlags","ctype":"ClapperEnhancerParamFlags","summary":"Additional [flags@GObject.ParamFlags] to be set in enhancer plugins implementations.","deprecated":null},{"type":"bitfield","name":"ReactableItemUpdatedFlags","ctype":"ClapperReactableItemUpdatedFlags","summary":"Flags informing which properties were updated within [class@Clapper.MediaItem].","deprecated":null},{"type":"class","name":"AudioStream","ctype":"ClapperAudioStream","summary":"Represents an audio stream within media.","deprecated":null},{"type":"class","name":"Discoverer","ctype":"ClapperDiscoverer","summary":"An optional Discoverer feature to be added to the player. #ClapperDiscoverer is a feature that wraps around #GstDiscoverer ...","deprecated":null},{"type":"class","name":"EnhancerProxy","ctype":"ClapperEnhancerProxy","summary":"An intermediary between player and enhancer plugin. Applications can use this to inspect enhancer information, its properties and ...","deprecated":null},{"type":"class","name":"EnhancerProxyList","ctype":"ClapperEnhancerProxyList","summary":"A list of enhancer proxies.","deprecated":null},{"type":"class","name":"Feature","ctype":"ClapperFeature","summary":"A base class for creating new features for the player. Feature objects are meant for adding additional functionalities ...","deprecated":"0.10"},{"type":"class","name":"Harvest","ctype":"ClapperHarvest","summary":"An object storing data from enhancers that implement [iface@Clapper.Extractable] interface.","deprecated":null},{"type":"class","name":"Marker","ctype":"ClapperMarker","summary":"Represents a point in timeline. Markers are a convienient way of marking points of interest within a [class@Clapper.Timeline] ...","deprecated":null},{"type":"class","name":"MediaItem","ctype":"ClapperMediaItem","summary":"Represents a media item. A newly created media item must be added to player [class@Clapper.Queue] first in order ...","deprecated":null},{"type":"class","name":"Mpris","ctype":"ClapperMpris","summary":"An optional `MPRIS` feature to add to the player. Not every OS supports `MPRIS`. Use [const@Clapper.HAVE_MPRIS] macro to ...","deprecated":"0.10"},{"type":"class","name":"Player","ctype":"ClapperPlayer","summary":"The media player object used for playback. #ClapperPlayer was written in an easy to use way, so no ...","deprecated":null},{"type":"class","name":"Queue","ctype":"ClapperQueue","summary":"A queue of media to be played.","deprecated":null},{"type":"class","name":"Server","ctype":"ClapperServer","summary":"An optional Server feature to add to the player. #ClapperServer is a feature that hosts a local server ...","deprecated":null},{"type":"class","name":"Stream","ctype":"ClapperStream","summary":"Represents a stream within media.","deprecated":null},{"type":"class","name":"StreamList","ctype":"ClapperStreamList","summary":"A list of media streams.","deprecated":null},{"type":"class","name":"SubtitleStream","ctype":"ClapperSubtitleStream","summary":"Represents a subtitle stream within media.","deprecated":null},{"type":"class","name":"ThreadedObject","ctype":"ClapperThreadedObject","summary":"A base class for creating objects that work within a separate thread.","deprecated":null},{"type":"class","name":"Timeline","ctype":"ClapperTimeline","summary":"A media timeline filled with point markers.","deprecated":null},{"type":"class","name":"VideoStream","ctype":"ClapperVideoStream","summary":"Represents a video stream within media.","deprecated":null},{"type":"constant","name":"HAVE_DISCOVERER","ident":"CLAPPER_HAVE_DISCOVERER","summary":"Check if Clapper was compiled with Discoverer feature.","deprecated":null},{"type":"constant","name":"HAVE_MPRIS","ident":"CLAPPER_HAVE_MPRIS","summary":"Check if Clapper was compiled with MPRIS feature.","deprecated":null},{"type":"constant","name":"HAVE_SERVER","ident":"CLAPPER_HAVE_SERVER","summary":"Check if Clapper was compiled with Server feature.","deprecated":null},{"type":"constant","name":"MAJOR_VERSION","ident":"CLAPPER_MAJOR_VERSION","summary":"Clapper major version component","deprecated":null},{"type":"constant","name":"MARKER_NO_END","ident":"CLAPPER_MARKER_NO_END","summary":"The value used to indicate that marker does not have an ending time specified","deprecated":null},{"type":"constant","name":"MICRO_VERSION","ident":"CLAPPER_MICRO_VERSION","summary":"Clapper micro version component","deprecated":null},{"type":"constant","name":"MINOR_VERSION","ident":"CLAPPER_MINOR_VERSION","summary":"Clapper minor version component","deprecated":null},{"type":"constant","name":"QUEUE_INVALID_POSITION","ident":"CLAPPER_QUEUE_INVALID_POSITION","summary":"The value used to refer to an invalid position in a #ClapperQueue","deprecated":null},{"type":"constant","name":"STREAM_LIST_INVALID_POSITION","ident":"CLAPPER_STREAM_LIST_INVALID_POSITION","summary":"The value used to refer to an invalid position in a #ClapperStreamList","deprecated":null},{"type":"constant","name":"TIME_FORMAT","ident":"CLAPPER_TIME_FORMAT","summary":"A string that can be used in printf-like format to display e.g. position or duration in `hh:mm:ss` format. Meant ...","deprecated":null},{"type":"constant","name":"TIME_MS_FORMAT","ident":"CLAPPER_TIME_MS_FORMAT","summary":"Same as [const@Clapper.TIME_FORMAT], but also displays milliseconds. Meant to be used together with [func@Clapper.TIME_MS_ARGS]. Example: ```c gchar ...","deprecated":null},{"type":"constant","name":"VERSION_S","ident":"CLAPPER_VERSION_S","summary":"Clapper version, encoded as a string","deprecated":null},{"type":"constant","name":"WITH_ENHANCERS_LOADER","ident":"CLAPPER_WITH_ENHANCERS_LOADER","summary":"Check if Clapper was compiled with Enhancers Loader functionality. Alternatively, apps before compiling can also check whether `pkgconfig` ...","deprecated":null},{"type":"ctor","name":"new","type_name":"Discoverer","ident":"clapper_discoverer_new","summary":"Creates a new #ClapperDiscoverer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"Marker","ident":"clapper_marker_new","summary":"Creates a new #ClapperMarker with given params. It is considered a programmer error trying to set an ending ...","deprecated":null},{"type":"ctor","name":"new","type_name":"MediaItem","ident":"clapper_media_item_new","summary":"Creates new #ClapperMediaItem from URI. Use one of the URI protocols supported by plugins in #GStreamer installation. For ...","deprecated":null},{"type":"ctor","name":"new","type_name":"Mpris","ident":"clapper_mpris_new","summary":"Creates a new #ClapperMpris instance.","deprecated":"0.10"},{"type":"ctor","name":"new","type_name":"Player","ident":"clapper_player_new","summary":"Creates a new #ClapperPlayer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"Server","ident":"clapper_server_new","summary":"Creates a new #ClapperServer instance.","deprecated":null},{"type":"ctor","name":"new_cached","type_name":"MediaItem","ident":"clapper_media_item_new_cached","summary":"Same as [ctor@Clapper.MediaItem.new], but allows to provide a location of a cache file where particular media at @uri is ...","deprecated":null},{"type":"ctor","name":"new_from_file","type_name":"MediaItem","ident":"clapper_media_item_new_from_file","summary":"Creates new #ClapperMediaItem from #GFile. Same as [ctor@Clapper.MediaItem.new], but uses a [iface@Gio.File] for convenience in some situations instead ...","deprecated":null},{"type":"enum","name":"DiscovererDiscoveryMode","ctype":"ClapperDiscovererDiscoveryMode","summary":"No description available.","deprecated":null},{"type":"enum","name":"MarkerType","ctype":"ClapperMarkerType","summary":"No description available.","deprecated":null},{"type":"enum","name":"PlayerSeekMethod","ctype":"ClapperPlayerSeekMethod","summary":"No description available.","deprecated":null},{"type":"enum","name":"PlayerState","ctype":"ClapperPlayerState","summary":"No description available.","deprecated":null},{"type":"enum","name":"QueueProgressionMode","ctype":"ClapperQueueProgressionMode","summary":"No description available.","deprecated":null},{"type":"enum","name":"StreamType","ctype":"ClapperStreamType","summary":"No description available.","deprecated":null},{"type":"function","name":"enhancer_check","ident":"clapper_enhancer_check","summary":"Check if an enhancer of @type is available for given @scheme and @host. A check that compares requested ...","deprecated":"0.10"},{"type":"function","name":"get_global_enhancer_proxies","ident":"clapper_get_global_enhancer_proxies","summary":"Get a list of available enhancers in the form of [class@Clapper.EnhancerProxy] objects. This returns a global list of ...","deprecated":null},{"type":"function","name":"get_major_version","ident":"clapper_get_major_version","summary":"Clapper runtime major version component This returns the Clapper library version your code is running against unlike [const@Clapper.MAJOR_VERSION] ...","deprecated":null},{"type":"function","name":"get_micro_version","ident":"clapper_get_micro_version","summary":"Clapper runtime micro version component This returns the Clapper library version your code is running against unlike [const@Clapper.MICRO_VERSION] ...","deprecated":null},{"type":"function","name":"get_minor_version","ident":"clapper_get_minor_version","summary":"Clapper runtime minor version component This returns the Clapper library version your code is running against unlike [const@Clapper.MINOR_VERSION] ...","deprecated":null},{"type":"function","name":"get_version_s","ident":"clapper_get_version_s","summary":"Clapper runtime version as string This returns the Clapper library version your code is running against unlike [const@Clapper.VERSION_S] ...","deprecated":null},{"type":"function","name":"init","ident":"clapper_init","summary":"Initializes the Clapper library. Implementations must always call this before using Clapper API. Because Clapper uses GStreamer internally, ...","deprecated":null},{"type":"function","name":"init_check","ident":"clapper_init_check","summary":"This function does the same thing as [func@Clapper.init], but instead of terminating on failure it returns %FALSE.","deprecated":null},{"type":"function_macro","name":"AUDIO_STREAM_CAST","ident":"CLAPPER_AUDIO_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"CHECK_VERSION","ident":"CLAPPER_CHECK_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"DEPRECATED_FOR","ident":"CLAPPER_DEPRECATED_FOR","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"DISCOVERER_CAST","ident":"CLAPPER_DISCOVERER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENCODE_VERSION","ident":"CLAPPER_ENCODE_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENHANCER_PROXY_CAST","ident":"CLAPPER_ENHANCER_PROXY_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENHANCER_PROXY_LIST_CAST","ident":"CLAPPER_ENHANCER_PROXY_LIST_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"EXTRACTABLE_CAST","ident":"CLAPPER_EXTRACTABLE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"FEATURE_CAST","ident":"CLAPPER_FEATURE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"HARVEST_CAST","ident":"CLAPPER_HARVEST_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"MARKER_CAST","ident":"CLAPPER_MARKER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"MEDIA_ITEM_CAST","ident":"CLAPPER_MEDIA_ITEM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"MPRIS_CAST","ident":"CLAPPER_MPRIS_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"PLAYER_CAST","ident":"CLAPPER_PLAYER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"PLAYLISTABLE_CAST","ident":"CLAPPER_PLAYLISTABLE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"QUEUE_CAST","ident":"CLAPPER_QUEUE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"REACTABLE_CAST","ident":"CLAPPER_REACTABLE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SERVER_CAST","ident":"CLAPPER_SERVER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"STREAM_CAST","ident":"CLAPPER_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"STREAM_LIST_CAST","ident":"CLAPPER_STREAM_LIST_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SUBTITLE_STREAM_CAST","ident":"CLAPPER_SUBTITLE_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"THREADED_OBJECT_CAST","ident":"CLAPPER_THREADED_OBJECT_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TIMELINE_CAST","ident":"CLAPPER_TIMELINE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TIME_ARGS","ident":"CLAPPER_TIME_ARGS","summary":"Formats @t for the [const@Clapper.TIME_FORMAT] format string.","deprecated":null},{"type":"function_macro","name":"TIME_MS_ARGS","ident":"CLAPPER_TIME_MS_ARGS","summary":"Formats @t for the [const@Clapper.TIME_MS_FORMAT] format string.","deprecated":null},{"type":"function_macro","name":"VIDEO_STREAM_CAST","ident":"CLAPPER_VIDEO_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"interface","name":"Extractable","ctype":"ClapperExtractable","summary":"An interface for creating enhancers that resolve given URI into something playable.","deprecated":null},{"type":"interface","name":"Playlistable","ctype":"ClapperPlaylistable","summary":"An interface for creating enhancers that parse data into individual media items.","deprecated":null},{"type":"interface","name":"Reactable","ctype":"ClapperReactable","summary":"An interface for creating enhancers that react to the playback and/or events that should influence it.","deprecated":null},{"type":"method","name":"add_feature","type_name":"Player","ident":"clapper_player_add_feature","summary":"Add another #ClapperFeature to the player.","deprecated":null},{"type":"method","name":"add_item","type_name":"Queue","ident":"clapper_queue_add_item","summary":"Add another #ClapperMediaItem to the end of queue. If item is already in queue, this function will do ...","deprecated":null},{"type":"method","name":"clear","type_name":"Queue","ident":"clapper_queue_clear","summary":"Removes all media items from the queue. If queue is empty, this function will do nothing, so it ...","deprecated":null},{"type":"method","name":"extra_data_lists_value","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_extra_data_lists_value","summary":"A convenience function to check whether @proxy plugin file has an extra data field with @key that among separated ...","deprecated":null},{"type":"method","name":"fill","type_name":"Harvest","ident":"clapper_harvest_fill","summary":"Fill harvest with extracted data. It can be anything that GStreamer can parse and play such as single URI ...","deprecated":null},{"type":"method","name":"fill_with_bytes","type_name":"Harvest","ident":"clapper_harvest_fill_with_bytes","summary":"A convenience method to fill @harvest with data from #GBytes. For more info, see [method@Clapper.Harvest.fill] documentation.","deprecated":null},{"type":"method","name":"fill_with_text","type_name":"Harvest","ident":"clapper_harvest_fill_with_text","summary":"A convenience method to fill @harvest using a %NULL terminated string. For more info, see [method@Clapper.Harvest.fill] documentation.","deprecated":null},{"type":"method","name":"find_item","type_name":"Queue","ident":"clapper_queue_find_item","summary":"Get the index of #ClapperMediaItem within #ClapperQueue.","deprecated":null},{"type":"method","name":"get_adaptive_bandwidth","type_name":"Player","ident":"clapper_player_get_adaptive_bandwidth","summary":"Get last fragment download bandwidth (bits/s) during adaptive streaming.","deprecated":null},{"type":"method","name":"get_adaptive_max_bitrate","type_name":"Player","ident":"clapper_player_get_adaptive_max_bitrate","summary":"Get currently set maximal bitrate (bits/s) for adaptive streaming.","deprecated":null},{"type":"method","name":"get_adaptive_min_bitrate","type_name":"Player","ident":"clapper_player_get_adaptive_min_bitrate","summary":"Get currently set minimal bitrate (bits/s) for adaptive streaming.","deprecated":null},{"type":"method","name":"get_adaptive_start_bitrate","type_name":"Player","ident":"clapper_player_get_adaptive_start_bitrate","summary":"Get currently set initial bitrate (bits/s) for adaptive streaming.","deprecated":null},{"type":"method","name":"get_audio_enabled","type_name":"Player","ident":"clapper_player_get_audio_enabled","summary":"Get whether audio stream is enabled.","deprecated":null},{"type":"method","name":"get_audio_filter","type_name":"Player","ident":"clapper_player_get_audio_filter","summary":"Get #GstElement used as audio filter.","deprecated":null},{"type":"method","name":"get_audio_offset","type_name":"Player","ident":"clapper_player_get_audio_offset","summary":"Get the currently set audio stream offset. The returned value is in seconds as a decimal number.","deprecated":null},{"type":"method","name":"get_audio_sink","type_name":"Player","ident":"clapper_player_get_audio_sink","summary":"Get #GstElement used as audio sink.","deprecated":null},{"type":"method","name":"get_audio_streams","type_name":"Player","ident":"clapper_player_get_audio_streams","summary":"Get a list of audio streams within media item.","deprecated":null},{"type":"method","name":"get_autoplay","type_name":"Player","ident":"clapper_player_get_autoplay","summary":"Get the autoplay value.","deprecated":null},{"type":"method","name":"get_bitrate","type_name":"AudioStream","ident":"clapper_audio_stream_get_bitrate","summary":"Get bitrate of audio @stream.","deprecated":null},{"type":"method","name":"get_bitrate","type_name":"VideoStream","ident":"clapper_video_stream_get_bitrate","summary":"Get bitrate of video @stream.","deprecated":null},{"type":"method","name":"get_channels","type_name":"AudioStream","ident":"clapper_audio_stream_get_channels","summary":"Get number of audio channels in @stream.","deprecated":null},{"type":"method","name":"get_codec","type_name":"AudioStream","ident":"clapper_audio_stream_get_codec","summary":"Get codec used to encode @stream.","deprecated":null},{"type":"method","name":"get_codec","type_name":"VideoStream","ident":"clapper_video_stream_get_codec","summary":"Get codec used to encode @stream.","deprecated":null},{"type":"method","name":"get_container_format","type_name":"MediaItem","ident":"clapper_media_item_get_container_format","summary":"Get media item container format.","deprecated":"0.10"},{"type":"method","name":"get_context","type_name":"ThreadedObject","ident":"clapper_threaded_object_get_context","summary":"Get the #GMainContext of the thread used by this object. Useful when you want to invoke object thread ...","deprecated":null},{"type":"method","name":"get_current_audio_decoder","type_name":"Player","ident":"clapper_player_get_current_audio_decoder","summary":"Get #GstElement currently used as audio decoder.","deprecated":null},{"type":"method","name":"get_current_index","type_name":"Queue","ident":"clapper_queue_get_current_index","summary":"Get index of the currently selected #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_current_index","type_name":"StreamList","ident":"clapper_stream_list_get_current_index","summary":"Get index of the currently selected #ClapperStream.","deprecated":null},{"type":"method","name":"get_current_item","type_name":"Queue","ident":"clapper_queue_get_current_item","summary":"Get the currently selected #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_current_port","type_name":"Server","ident":"clapper_server_get_current_port","summary":"Get port on which server is currently listening on.","deprecated":null},{"type":"method","name":"get_current_stream","type_name":"StreamList","ident":"clapper_stream_list_get_current_stream","summary":"Get the currently selected #ClapperStream.","deprecated":null},{"type":"method","name":"get_current_video_decoder","type_name":"Player","ident":"clapper_player_get_current_video_decoder","summary":"Get #GstElement currently used as video decoder.","deprecated":null},{"type":"method","name":"get_description","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_description","summary":"Get description from enhancer plugin info file.","deprecated":null},{"type":"method","name":"get_discovery_mode","type_name":"Discoverer","ident":"clapper_discoverer_get_discovery_mode","summary":"Get the [enum@Clapper.DiscovererDiscoveryMode] of @discoverer.","deprecated":null},{"type":"method","name":"get_download_dir","type_name":"Player","ident":"clapper_player_get_download_dir","summary":"Get path to a directory set for media downloads.","deprecated":null},{"type":"method","name":"get_download_enabled","type_name":"Player","ident":"clapper_player_get_download_enabled","summary":"Get whether progressive download buffering is enabled.","deprecated":null},{"type":"method","name":"get_duration","type_name":"MediaItem","ident":"clapper_media_item_get_duration","summary":"Get media item duration as decimal number in seconds.","deprecated":null},{"type":"method","name":"get_enabled","type_name":"Server","ident":"clapper_server_get_enabled","summary":"Get whether #ClapperServer is set to be running.","deprecated":null},{"type":"method","name":"get_end","type_name":"Marker","ident":"clapper_marker_get_end","summary":"Get the end position (in seconds) of @marker.","deprecated":null},{"type":"method","name":"get_enhancer_proxies","type_name":"Player","ident":"clapper_player_get_enhancer_proxies","summary":"Get a list of available enhancers in the form of [class@Clapper.EnhancerProxy] objects.","deprecated":null},{"type":"method","name":"get_extra_data","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_extra_data","summary":"Get extra data from enhancer plugin info file specified by @key. Extra data in the plugin info file ...","deprecated":null},{"type":"method","name":"get_fallback_art_url","type_name":"Mpris","ident":"clapper_mpris_get_fallback_art_url","summary":"Get fallback art URL earlier set by user.","deprecated":"0.10"},{"type":"method","name":"get_fps","type_name":"VideoStream","ident":"clapper_video_stream_get_fps","summary":"Get number of frames per second in video @stream.","deprecated":null},{"type":"method","name":"get_friendly_name","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_friendly_name","summary":"Get a name from enhancer plugin info file. Can be used for showing in UI and such. Name ...","deprecated":null},{"type":"method","name":"get_gapless","type_name":"Queue","ident":"clapper_queue_get_gapless","summary":"Get if #ClapperQueue is set to use gapless progression.","deprecated":null},{"type":"method","name":"get_height","type_name":"VideoStream","ident":"clapper_video_stream_get_height","summary":"Get height of video @stream.","deprecated":null},{"type":"method","name":"get_id","type_name":"MediaItem","ident":"clapper_media_item_get_id","summary":"Get the unique ID of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_instant","type_name":"Queue","ident":"clapper_queue_get_instant","summary":"Get if #ClapperQueue is set to use instant media item changes.","deprecated":null},{"type":"method","name":"get_item","type_name":"Queue","ident":"clapper_queue_get_item","summary":"Get the #ClapperMediaItem at index. This behaves the same as [method@Gio.ListModel.get_item], and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_lang_code","type_name":"AudioStream","ident":"clapper_audio_stream_get_lang_code","summary":"Get an ISO-639 language code of the @stream.","deprecated":null},{"type":"method","name":"get_lang_code","type_name":"SubtitleStream","ident":"clapper_subtitle_stream_get_lang_code","summary":"Get an ISO-639 language code of the @stream.","deprecated":null},{"type":"method","name":"get_lang_name","type_name":"AudioStream","ident":"clapper_audio_stream_get_lang_name","summary":"Get language name of the @stream. This function will try to return a translated string into current locale ...","deprecated":null},{"type":"method","name":"get_lang_name","type_name":"SubtitleStream","ident":"clapper_subtitle_stream_get_lang_name","summary":"Get language name of the @stream. This function will try to return a translated string into current locale ...","deprecated":null},{"type":"method","name":"get_marker","type_name":"Timeline","ident":"clapper_timeline_get_marker","summary":"Get the #ClapperMarker at index. This behaves the same as [method@Gio.ListModel.get_item], and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_marker_type","type_name":"Marker","ident":"clapper_marker_get_marker_type","summary":"Get the #ClapperMarkerType of @marker.","deprecated":null},{"type":"method","name":"get_module_dir","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_module_dir","summary":"Get a path to the directory from which enhancer is loaded.","deprecated":null},{"type":"method","name":"get_module_name","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_module_name","summary":"Get name of the module from enhancer plugin info file. This value is used to uniquely identify a particular ...","deprecated":null},{"type":"method","name":"get_mute","type_name":"Player","ident":"clapper_player_get_mute","summary":"Get the mute state of the player.","deprecated":null},{"type":"method","name":"get_n_items","type_name":"Queue","ident":"clapper_queue_get_n_items","summary":"Get the number of items in #ClapperQueue. This behaves the same as [method@Gio.ListModel.get_n_items], and is here for code ...","deprecated":null},{"type":"method","name":"get_n_markers","type_name":"Timeline","ident":"clapper_timeline_get_n_markers","summary":"Get the number of markers in #ClapperTimeline. This behaves the same as [method@Gio.ListModel.get_n_items], and is here for code ...","deprecated":null},{"type":"method","name":"get_n_proxies","type_name":"EnhancerProxyList","ident":"clapper_enhancer_proxy_list_get_n_proxies","summary":"Get the number of proxies in #ClapperEnhancerProxyList. This behaves the same as [method@Gio.ListModel.get_n_items], and is here for code ...","deprecated":null},{"type":"method","name":"get_n_streams","type_name":"StreamList","ident":"clapper_stream_list_get_n_streams","summary":"Get the number of streams in #ClapperStreamList. This behaves the same as [method@Gio.ListModel.get_n_items], and is here for code ...","deprecated":null},{"type":"method","name":"get_pixel_format","type_name":"VideoStream","ident":"clapper_video_stream_get_pixel_format","summary":"Get pixel format of video @stream.","deprecated":null},{"type":"method","name":"get_player","type_name":"Reactable","ident":"clapper_reactable_get_player","summary":"Get the [class@Clapper.Player] that this reactable is reacting to. This is meant to be used in implementations where ...","deprecated":null},{"type":"method","name":"get_port","type_name":"Server","ident":"clapper_server_get_port","summary":"Get requested server listening port. If you want to know the port server is currently listening on, use ...","deprecated":null},{"type":"method","name":"get_position","type_name":"Player","ident":"clapper_player_get_position","summary":"Get the current player playback position. The returned value is in seconds as a decimal number.","deprecated":null},{"type":"method","name":"get_progression_mode","type_name":"Queue","ident":"clapper_queue_get_progression_mode","summary":"Get the #ClapperQueueProgressionMode of the #ClapperQueue.","deprecated":null},{"type":"method","name":"get_proxy","type_name":"EnhancerProxyList","ident":"clapper_enhancer_proxy_list_get_proxy","summary":"Get the #ClapperEnhancerProxy at index. This behaves the same as [method@Gio.ListModel.get_item], and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_proxy_by_module","type_name":"EnhancerProxyList","ident":"clapper_enhancer_proxy_list_get_proxy_by_module","summary":"Get the #ClapperEnhancerProxy by module name as defined in its plugin file. A convenience function to find a ...","deprecated":null},{"type":"method","name":"get_queue","type_name":"Player","ident":"clapper_player_get_queue","summary":"Get the #ClapperQueue of the player. The queue belongs to the player and can be accessed for as ...","deprecated":null},{"type":"method","name":"get_queue_controllable","type_name":"Mpris","ident":"clapper_mpris_get_queue_controllable","summary":"Get whether remote `MPRIS` clients can control [class@Clapper.Queue].","deprecated":"0.10"},{"type":"method","name":"get_queue_controllable","type_name":"Server","ident":"clapper_server_get_queue_controllable","summary":"Get whether remote @server clients can control [class@Clapper.Queue].","deprecated":null},{"type":"method","name":"get_running","type_name":"Server","ident":"clapper_server_get_running","summary":"Get whether #ClapperServer is currently running.","deprecated":null},{"type":"method","name":"get_sample_format","type_name":"AudioStream","ident":"clapper_audio_stream_get_sample_format","summary":"Get sample format of audio @stream.","deprecated":null},{"type":"method","name":"get_sample_rate","type_name":"AudioStream","ident":"clapper_audio_stream_get_sample_rate","summary":"Get sample rate of audio @stream (in Hz).","deprecated":null},{"type":"method","name":"get_settings","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_settings","summary":"Get #GSettings of an enhancer. Implementations can use this together with [method@Clapper.EnhancerProxy.get_target_properties] in order to allow user to ...","deprecated":null},{"type":"method","name":"get_speed","type_name":"Player","ident":"clapper_player_get_speed","summary":"Get the speed of the player used for playback.","deprecated":null},{"type":"method","name":"get_start","type_name":"Marker","ident":"clapper_marker_get_start","summary":"Get the start position (in seconds) of @marker.","deprecated":null},{"type":"method","name":"get_state","type_name":"Player","ident":"clapper_player_get_state","summary":"Get the current #ClapperPlayerState.","deprecated":null},{"type":"method","name":"get_stream","type_name":"StreamList","ident":"clapper_stream_list_get_stream","summary":"Get the #ClapperStream at index. This behaves the same as [method@Gio.ListModel.get_item], and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_stream_type","type_name":"Stream","ident":"clapper_stream_get_stream_type","summary":"Get the #ClapperStreamType of @stream.","deprecated":null},{"type":"method","name":"get_subtitle_font_desc","type_name":"Player","ident":"clapper_player_get_subtitle_font_desc","summary":"Get the currently set font description used for subtitle stream rendering.","deprecated":null},{"type":"method","name":"get_subtitle_offset","type_name":"Player","ident":"clapper_player_get_subtitle_offset","summary":"Get the currently set subtitle stream offset. The returned value is in seconds as a decimal number.","deprecated":null},{"type":"method","name":"get_subtitle_streams","type_name":"Player","ident":"clapper_player_get_subtitle_streams","summary":"Get a list of subtitle streams within media item.","deprecated":null},{"type":"method","name":"get_subtitles_enabled","type_name":"Player","ident":"clapper_player_get_subtitles_enabled","summary":"Get whether subtitles are to be shown when available.","deprecated":null},{"type":"method","name":"get_suburi","type_name":"MediaItem","ident":"clapper_media_item_get_suburi","summary":"Get the additional URI of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_tags","type_name":"MediaItem","ident":"clapper_media_item_get_tags","summary":"Get readable list of tags stored in media item.","deprecated":null},{"type":"method","name":"get_target_creation_allowed","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_target_creation_allowed","summary":"Get whether it is allowed to create instances of enhancer that this proxy targets.","deprecated":null},{"type":"method","name":"get_target_interfaces","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_target_interfaces","summary":"Get an array of interfaces that target enhancer implements. The returned array includes only Clapper specific interfaces for ...","deprecated":null},{"type":"method","name":"get_target_properties","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_target_properties","summary":"Get an array of properties in target enhancer. Implementations can use this in order to find out what ...","deprecated":null},{"type":"method","name":"get_timeline","type_name":"MediaItem","ident":"clapper_media_item_get_timeline","summary":"Get the [class@Clapper.Timeline] associated with @item.","deprecated":null},{"type":"method","name":"get_title","type_name":"Marker","ident":"clapper_marker_get_title","summary":"Get the title of @marker.","deprecated":null},{"type":"method","name":"get_title","type_name":"MediaItem","ident":"clapper_media_item_get_title","summary":"Get media item title. The title can be either text detected by media discovery once it completes. Otherwise ...","deprecated":null},{"type":"method","name":"get_title","type_name":"Stream","ident":"clapper_stream_get_title","summary":"Get the title of @stream, if any.","deprecated":null},{"type":"method","name":"get_uri","type_name":"MediaItem","ident":"clapper_media_item_get_uri","summary":"Get the URI of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_version","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_version","summary":"Get version string from enhancer plugin info file.","deprecated":null},{"type":"method","name":"get_video_enabled","type_name":"Player","ident":"clapper_player_get_video_enabled","summary":"Get whether video stream is enabled.","deprecated":null},{"type":"method","name":"get_video_filter","type_name":"Player","ident":"clapper_player_get_video_filter","summary":"Get #GstElement used as video filter.","deprecated":null},{"type":"method","name":"get_video_sink","type_name":"Player","ident":"clapper_player_get_video_sink","summary":"Get #GstElement used as video sink.","deprecated":null},{"type":"method","name":"get_video_streams","type_name":"Player","ident":"clapper_player_get_video_streams","summary":"Get a list of video streams within media item.","deprecated":null},{"type":"method","name":"get_volume","type_name":"Player","ident":"clapper_player_get_volume","summary":"Get the volume of the player.","deprecated":null},{"type":"method","name":"get_width","type_name":"VideoStream","ident":"clapper_video_stream_get_width","summary":"Get width of video @stream.","deprecated":null},{"type":"method","name":"headers_set","type_name":"Harvest","ident":"clapper_harvest_headers_set","summary":"Set one or more request headers named with @key to specified `value`. Arguments should be %NULL terminated list ...","deprecated":null},{"type":"method","name":"headers_set_value","type_name":"Harvest","ident":"clapper_harvest_headers_set_value","summary":"Set another header in the request headers list using #GValue. Setting again the same key will update its ...","deprecated":null},{"type":"method","name":"insert_item","type_name":"Queue","ident":"clapper_queue_insert_item","summary":"Insert another #ClapperMediaItem at @index position to the queue. If item is already in queue, this function will ...","deprecated":null},{"type":"method","name":"insert_marker","type_name":"Timeline","ident":"clapper_timeline_insert_marker","summary":"Insert the #ClapperMarker into @timeline.","deprecated":null},{"type":"method","name":"item_is_current","type_name":"Queue","ident":"clapper_queue_item_is_current","summary":"Checks if given #ClapperMediaItem is currently selected.","deprecated":null},{"type":"method","name":"make_pipeline_graph","type_name":"Player","ident":"clapper_player_make_pipeline_graph","summary":"Make current #GStreamer pipeline graph in `graphviz` dot format. Applications can use tools like `graphviz` to display returned ...","deprecated":null},{"type":"method","name":"pause","type_name":"Player","ident":"clapper_player_pause","summary":"Pause the playback of current media item. This function will queue a request for the underlaying #GStreamer pipeline ...","deprecated":null},{"type":"method","name":"peek_proxy","type_name":"EnhancerProxyList","ident":"clapper_enhancer_proxy_list_peek_proxy","summary":"Get the #ClapperEnhancerProxy at index. Similar to [method@Clapper.EnhancerProxyList.get_proxy], but does not take a new reference on proxy. ...","deprecated":null},{"type":"method","name":"play","type_name":"Player","ident":"clapper_player_play","summary":"Either start or resume the playback of current media item. This function will queue a request for the ...","deprecated":null},{"type":"method","name":"populate_tags","type_name":"MediaItem","ident":"clapper_media_item_populate_tags","summary":"Populate non-existing tags in @item tag list. Passed @tags must use [enum@Gst.TagScope.GLOBAL] scope. Note that tags are ...","deprecated":null},{"type":"method","name":"queue_append_sync","type_name":"Reactable","ident":"clapper_reactable_queue_append_sync","summary":"A convenience function that within application main thread synchronously appends an @item to the playback queue of the player ...","deprecated":null},{"type":"method","name":"queue_clear_sync","type_name":"Reactable","ident":"clapper_reactable_queue_clear_sync","summary":"A convenience function that within application main thread synchronously clears the playback queue of the player that @reactable belongs ...","deprecated":null},{"type":"method","name":"queue_insert_sync","type_name":"Reactable","ident":"clapper_reactable_queue_insert_sync","summary":"A convenience function that within application main thread synchronously inserts an @item to the playback queue position after @after_item ...","deprecated":null},{"type":"method","name":"queue_remove_sync","type_name":"Reactable","ident":"clapper_reactable_queue_remove_sync","summary":"A convenience function that within application main thread synchronously removes an @item from the playback queue of the player ...","deprecated":null},{"type":"method","name":"remove_index","type_name":"Queue","ident":"clapper_queue_remove_index","summary":"Removes #ClapperMediaItem at @index from the queue.","deprecated":null},{"type":"method","name":"remove_item","type_name":"Queue","ident":"clapper_queue_remove_item","summary":"Removes #ClapperMediaItem from the queue. If item either was never in the queue or was removed from it ...","deprecated":null},{"type":"method","name":"remove_marker","type_name":"Timeline","ident":"clapper_timeline_remove_marker","summary":"Removes #ClapperMarker from the timeline if present.","deprecated":null},{"type":"method","name":"reposition_item","type_name":"Queue","ident":"clapper_queue_reposition_item","summary":"Change position of one #ClapperMediaItem within the queue. Note that the @index is the new position you expect ...","deprecated":null},{"type":"method","name":"seek","type_name":"Player","ident":"clapper_player_seek","summary":"Request the player to perform a seek operation. This function will use [enum@Clapper.PlayerSeekMethod.NORMAL] as a seeking method. If ...","deprecated":null},{"type":"method","name":"seek_custom","type_name":"Player","ident":"clapper_player_seek_custom","summary":"Request the player to perform a seek operation. Same as [method@Clapper.Player.seek], but also allows to specify [enum@Clapper.PlayerSeekMethod] to ...","deprecated":null},{"type":"method","name":"select_index","type_name":"Queue","ident":"clapper_queue_select_index","summary":"Selects #ClapperMediaItem at @index from @queue as current one or unselects currently selected index when @index is [const@Clapper.QUEUE_INVALID_POSITION].","deprecated":null},{"type":"method","name":"select_index","type_name":"StreamList","ident":"clapper_stream_list_select_index","summary":"Selects #ClapperStream at @index from @list as current one.","deprecated":null},{"type":"method","name":"select_item","type_name":"Queue","ident":"clapper_queue_select_item","summary":"Selects #ClapperMediaItem from @queue as current one or unselects currently selected item when @item is %NULL.","deprecated":null},{"type":"method","name":"select_next_item","type_name":"Queue","ident":"clapper_queue_select_next_item","summary":"Selects next #ClapperMediaItem from @queue for playback. Note that this will try to select next item in the ...","deprecated":null},{"type":"method","name":"select_previous_item","type_name":"Queue","ident":"clapper_queue_select_previous_item","summary":"Selects previous #ClapperMediaItem from @queue for playback. Note that this will try to select previous item in the ...","deprecated":null},{"type":"method","name":"select_stream","type_name":"StreamList","ident":"clapper_stream_list_select_stream","summary":"Selects #ClapperStream from @list to be activated.","deprecated":null},{"type":"method","name":"set_adaptive_max_bitrate","type_name":"Player","ident":"clapper_player_set_adaptive_max_bitrate","summary":"Set maximal bitrate to select for adaptive streaming such as DASH or HLS.","deprecated":null},{"type":"method","name":"set_adaptive_min_bitrate","type_name":"Player","ident":"clapper_player_set_adaptive_min_bitrate","summary":"Set minimal bitrate to select for adaptive streaming such as DASH or HLS.","deprecated":null},{"type":"method","name":"set_adaptive_start_bitrate","type_name":"Player","ident":"clapper_player_set_adaptive_start_bitrate","summary":"Set initial bitrate to select when starting adaptive streaming such as DASH or HLS.","deprecated":null},{"type":"method","name":"set_audio_enabled","type_name":"Player","ident":"clapper_player_set_audio_enabled","summary":"Set whether enable audio stream.","deprecated":null},{"type":"method","name":"set_audio_filter","type_name":"Player","ident":"clapper_player_set_audio_filter","summary":"Set #GstElement to be used as audio filter.","deprecated":null},{"type":"method","name":"set_audio_offset","type_name":"Player","ident":"clapper_player_set_audio_offset","summary":"Set synchronisation offset between the audio stream and video. Positive values make the audio ahead of the video ...","deprecated":null},{"type":"method","name":"set_audio_sink","type_name":"Player","ident":"clapper_player_set_audio_sink","summary":"Set #GstElement to be used as audio sink.","deprecated":null},{"type":"method","name":"set_autoplay","type_name":"Player","ident":"clapper_player_set_autoplay","summary":"Set the autoplay state of the player. When autoplay is enabled, player will always try to start playback ...","deprecated":null},{"type":"method","name":"set_discovery_mode","type_name":"Discoverer","ident":"clapper_discoverer_set_discovery_mode","summary":"Set the [enum@Clapper.DiscovererDiscoveryMode] of @discoverer.","deprecated":null},{"type":"method","name":"set_download_dir","type_name":"Player","ident":"clapper_player_set_download_dir","summary":"Set a directory that @player will use to store downloads. See [property@Clapper.Player:download-enabled] description for more info how this works.","deprecated":null},{"type":"method","name":"set_download_enabled","type_name":"Player","ident":"clapper_player_set_download_enabled","summary":"Set whether player should attempt progressive download buffering. For this to actually work a [property@Clapper.Player:download-dir] must also be set.","deprecated":null},{"type":"method","name":"set_enabled","type_name":"Server","ident":"clapper_server_set_enabled","summary":"Set whether #ClapperServer should be running. Note that server feature will run only after being added to the ...","deprecated":null},{"type":"method","name":"set_expiration_date_utc","type_name":"Harvest","ident":"clapper_harvest_set_expiration_date_utc","summary":"Set date in UTC time until harvested content is expected to stay alive. This is used for harvest ...","deprecated":null},{"type":"method","name":"set_expiration_seconds","type_name":"Harvest","ident":"clapper_harvest_set_expiration_seconds","summary":"Set amount of seconds for how long harvested content is expected to stay alive. Alternative function to [method@Clapper.Harvest.set_expiration_date_utc], ...","deprecated":null},{"type":"method","name":"set_fallback_art_url","type_name":"Mpris","ident":"clapper_mpris_set_fallback_art_url","summary":"Set fallback artwork to show when media does not provide one.","deprecated":"0.10"},{"type":"method","name":"set_gapless","type_name":"Queue","ident":"clapper_queue_set_gapless","summary":"Set #ClapperQueue progression to be gapless. Gapless playback will try to re-use as much as possible of underlying ...","deprecated":null},{"type":"method","name":"set_instant","type_name":"Queue","ident":"clapper_queue_set_instant","summary":"Set #ClapperQueue media item changes to be instant. Instant will try to re-use as much as possible of ...","deprecated":null},{"type":"method","name":"set_locally","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_set_locally","summary":"Configure one or more properties which have [flags@Clapper.EnhancerParamFlags.LOCAL] flag set on the target enhancer instance. Implementations can use ...","deprecated":null},{"type":"method","name":"set_locally_with_table","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_set_locally_with_table","summary":"Same as [method@Clapper.EnhancerProxy.set_locally], but to configure uses [struct@GLib.HashTable] with string keys and [struct@GObject.Value] as their values.","deprecated":null},{"type":"method","name":"set_mute","type_name":"Player","ident":"clapper_player_set_mute","summary":"Set the mute state of the player.","deprecated":null},{"type":"method","name":"set_port","type_name":"Server","ident":"clapper_server_set_port","summary":"Set server listening port.","deprecated":null},{"type":"method","name":"set_progression_mode","type_name":"Queue","ident":"clapper_queue_set_progression_mode","summary":"Set the #ClapperQueueProgressionMode of the #ClapperQueue. Changing the mode set will alter next item selection at the end ...","deprecated":null},{"type":"method","name":"set_queue_controllable","type_name":"Mpris","ident":"clapper_mpris_set_queue_controllable","summary":"Set whether remote MPRIS clients can control #ClapperQueue. This includes ability to open new URIs, adding/removing items from ...","deprecated":"0.10"},{"type":"method","name":"set_queue_controllable","type_name":"Server","ident":"clapper_server_set_queue_controllable","summary":"Set whether remote @server clients can control [class@Clapper.Queue]. This includes ability to add/remove items from the queue and ...","deprecated":null},{"type":"method","name":"set_speed","type_name":"Player","ident":"clapper_player_set_speed","summary":"Set the speed multiplier of the player.","deprecated":null},{"type":"method","name":"set_subtitle_font_desc","type_name":"Player","ident":"clapper_player_set_subtitle_font_desc","summary":"Set Pango font description to be used for subtitle stream rendering.","deprecated":null},{"type":"method","name":"set_subtitle_offset","type_name":"Player","ident":"clapper_player_set_subtitle_offset","summary":"Set synchronisation offset between the subtitle stream and video. Positive values make the subtitles ahead of the video ...","deprecated":null},{"type":"method","name":"set_subtitles_enabled","type_name":"Player","ident":"clapper_player_set_subtitles_enabled","summary":"Set whether subtitles should be shown if any.","deprecated":null},{"type":"method","name":"set_suburi","type_name":"MediaItem","ident":"clapper_media_item_set_suburi","summary":"Set the additional URI of #ClapperMediaItem. This is typically used to add an external subtitles URI to the @item.","deprecated":null},{"type":"method","name":"set_target_creation_allowed","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_set_target_creation_allowed","summary":"Set whether to allow instances of proxy target to be created. See [property@Clapper.EnhancerProxy:target-creation-allowed] for detailed descripton what this does.","deprecated":null},{"type":"method","name":"set_video_enabled","type_name":"Player","ident":"clapper_player_set_video_enabled","summary":"Set whether enable video stream.","deprecated":null},{"type":"method","name":"set_video_filter","type_name":"Player","ident":"clapper_player_set_video_filter","summary":"Set #GstElement to be used as video filter.","deprecated":null},{"type":"method","name":"set_video_sink","type_name":"Player","ident":"clapper_player_set_video_sink","summary":"Set #GstElement to be used as video sink.","deprecated":null},{"type":"method","name":"set_volume","type_name":"Player","ident":"clapper_player_set_volume","summary":"Set the volume of the player. The value should be within 0 - 2.0 range, where 1.0 is ...","deprecated":null},{"type":"method","name":"steal_index","type_name":"Queue","ident":"clapper_queue_steal_index","summary":"Removes #ClapperMediaItem at @index from the queue.","deprecated":null},{"type":"method","name":"stop","type_name":"Player","ident":"clapper_player_stop","summary":"Stop the playback of current media item. This function will queue a request for the underlaying #GStreamer pipeline ...","deprecated":null},{"type":"method","name":"tags_add","type_name":"Harvest","ident":"clapper_harvest_tags_add","summary":"Append one or more tags into the tag list. Variable arguments should be in the form of tag ...","deprecated":null},{"type":"method","name":"tags_add_value","type_name":"Harvest","ident":"clapper_harvest_tags_add_value","summary":"Append another tag into the tag list using #GValue.","deprecated":null},{"type":"method","name":"target_has_interface","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_target_has_interface","summary":"A convenience function to check if target enhancer implements given interface. This works only with Clapper specific interfaces ...","deprecated":null},{"type":"method","name":"toc_add","type_name":"Harvest","ident":"clapper_harvest_toc_add","summary":"Append a chapter or track name into table of contents.","deprecated":null},{"type":"property","name":"adaptive-bandwidth","type_name":"Player","summary":"Last fragment download bandwidth (bits/s) during adaptive streaming. This property only changes when adaptive streaming and later stays ...","deprecated":null},{"type":"property","name":"adaptive-max-bitrate","type_name":"Player","summary":"A maximal allowed bitrate (bits/s) during adaptive streaming such as DASH or HLS (`0` for unlimited). Setting this ...","deprecated":null},{"type":"property","name":"adaptive-min-bitrate","type_name":"Player","summary":"A minimal allowed bitrate (bits/s) during adaptive streaming such as DASH or HLS. Setting this will prevent streaming ...","deprecated":null},{"type":"property","name":"adaptive-start-bitrate","type_name":"Player","summary":"An initial bitrate (bits/s) to select during starting adaptive streaming such as DASH or HLS. If value is ...","deprecated":null},{"type":"property","name":"audio-enabled","type_name":"Player","summary":"Whether audio stream is enabled.","deprecated":null},{"type":"property","name":"audio-filter","type_name":"Player","summary":"Optional audio filter to use (none by default).","deprecated":null},{"type":"property","name":"audio-offset","type_name":"Player","summary":"Audio stream offset relative to video.","deprecated":null},{"type":"property","name":"audio-sink","type_name":"Player","summary":"Audio sink to use (autoaudiosink by default).","deprecated":null},{"type":"property","name":"audio-streams","type_name":"Player","summary":"List of currently available audio streams.","deprecated":null},{"type":"property","name":"autoplay","type_name":"Player","summary":"Always try to start playback after media item changes.","deprecated":null},{"type":"property","name":"bitrate","type_name":"AudioStream","summary":"Stream bitrate.","deprecated":null},{"type":"property","name":"bitrate","type_name":"VideoStream","summary":"Stream bitrate.","deprecated":null},{"type":"property","name":"cache-location","type_name":"MediaItem","summary":"Media downloaded cache file location.","deprecated":null},{"type":"property","name":"channels","type_name":"AudioStream","summary":"Stream number of audio channels.","deprecated":null},{"type":"property","name":"codec","type_name":"AudioStream","summary":"Stream codec.","deprecated":null},{"type":"property","name":"codec","type_name":"VideoStream","summary":"Stream codec.","deprecated":null},{"type":"property","name":"container-format","type_name":"MediaItem","summary":"Media container format.","deprecated":"0.10"},{"type":"property","name":"current-audio-decoder","type_name":"Player","summary":"Currently used audio decoder.","deprecated":null},{"type":"property","name":"current-index","type_name":"Queue","summary":"Index of currently selected media item for playback.","deprecated":null},{"type":"property","name":"current-index","type_name":"StreamList","summary":"Index of currently selected stream.","deprecated":null},{"type":"property","name":"current-item","type_name":"Queue","summary":"Currently selected media item for playback.","deprecated":null},{"type":"property","name":"current-port","type_name":"Server","summary":"Port on which server is currently listening on or 0 if not listening.","deprecated":null},{"type":"property","name":"current-stream","type_name":"StreamList","summary":"Currently selected stream.","deprecated":null},{"type":"property","name":"current-video-decoder","type_name":"Player","summary":"Currently used video decoder.","deprecated":null},{"type":"property","name":"description","type_name":"EnhancerProxy","summary":"Description from enhancer plugin info file.","deprecated":null},{"type":"property","name":"desktop-entry","type_name":"Mpris","summary":"The basename of an installed .desktop file with the \".desktop\" extension stripped.","deprecated":"0.10"},{"type":"property","name":"discovery-mode","type_name":"Discoverer","summary":"Discoverer discovery mode.","deprecated":null},{"type":"property","name":"download-dir","type_name":"Player","summary":"A directory that @player will use to download network content when [property@Clapper.Player:download-enabled] is set to %TRUE. If directory ...","deprecated":null},{"type":"property","name":"download-enabled","type_name":"Player","summary":"Whether progressive download buffering is enabled. If progressive download is enabled and [property@Clapper.Player:download-dir] is set, streamed network content ...","deprecated":null},{"type":"property","name":"duration","type_name":"MediaItem","summary":"Media duration as a decimal number in seconds. This might be a different value compared to `duration` from ...","deprecated":null},{"type":"property","name":"enabled","type_name":"Server","summary":"Whether server is enabled.","deprecated":null},{"type":"property","name":"end","type_name":"Marker","summary":"Ending time of marker.","deprecated":null},{"type":"property","name":"enhancer-proxies","type_name":"Player","summary":"List of available enhancers in the form of [class@Clapper.EnhancerProxy] objects. Use these to inspect available enhancers on the ...","deprecated":null},{"type":"property","name":"fallback-art-url","type_name":"Mpris","summary":"Fallback artwork to show when media does not provide one.","deprecated":"0.10"},{"type":"property","name":"fps","type_name":"VideoStream","summary":"Stream FPS.","deprecated":null},{"type":"property","name":"friendly-name","type_name":"EnhancerProxy","summary":"Name from enhancer plugin info file.","deprecated":null},{"type":"property","name":"gapless","type_name":"Queue","summary":"Use gapless progression.","deprecated":null},{"type":"property","name":"height","type_name":"VideoStream","summary":"Stream height.","deprecated":null},{"type":"property","name":"id","type_name":"MediaItem","summary":"Media Item ID.","deprecated":null},{"type":"property","name":"identity","type_name":"Mpris","summary":"A friendly name to identify the media player. Example: \"My Player\"","deprecated":"0.10"},{"type":"property","name":"instant","type_name":"Queue","summary":"Use instant media item changes.","deprecated":null},{"type":"property","name":"lang-code","type_name":"AudioStream","summary":"Stream language code in ISO-639 format.","deprecated":null},{"type":"property","name":"lang-code","type_name":"SubtitleStream","summary":"Stream language code in ISO-639 format.","deprecated":null},{"type":"property","name":"lang-name","type_name":"AudioStream","summary":"Stream language name.","deprecated":null},{"type":"property","name":"lang-name","type_name":"SubtitleStream","summary":"Stream language name.","deprecated":null},{"type":"property","name":"marker-type","type_name":"Marker","summary":"Type of stream.","deprecated":null},{"type":"property","name":"module-dir","type_name":"EnhancerProxy","summary":"Module directory.","deprecated":null},{"type":"property","name":"module-name","type_name":"EnhancerProxy","summary":"Module name from enhancer plugin info file.","deprecated":null},{"type":"property","name":"mute","type_name":"Player","summary":"Mute audio without changing volume.","deprecated":null},{"type":"property","name":"n-items","type_name":"Queue","summary":"Number of media items in the queue.","deprecated":null},{"type":"property","name":"n-markers","type_name":"Timeline","summary":"Number of markers in the timeline.","deprecated":null},{"type":"property","name":"n-proxies","type_name":"EnhancerProxyList","summary":"Number of proxies in the list.","deprecated":null},{"type":"property","name":"n-streams","type_name":"StreamList","summary":"Number of streams in the list.","deprecated":null},{"type":"property","name":"own-name","type_name":"Mpris","summary":"DBus name to own on connection. Must be written as a reverse DNS format starting with \"org.mpris.MediaPlayer2.\" prefix. ...","deprecated":"0.10"},{"type":"property","name":"pixel-format","type_name":"VideoStream","summary":"Stream pixel format.","deprecated":null},{"type":"property","name":"port","type_name":"Server","summary":"Port to listen on or 0 for using random unused port.","deprecated":null},{"type":"property","name":"position","type_name":"Player","summary":"Current playback position as a decimal number in seconds.","deprecated":null},{"type":"property","name":"progression-mode","type_name":"Queue","summary":"Queue progression mode.","deprecated":null},{"type":"property","name":"queue","type_name":"Player","summary":"Clapper playback queue.","deprecated":null},{"type":"property","name":"queue-controllable","type_name":"Mpris","summary":"Whether remote MPRIS clients can control #ClapperQueue.","deprecated":"0.10"},{"type":"property","name":"queue-controllable","type_name":"Server","summary":"Whether remote server clients can control #ClapperQueue.","deprecated":null},{"type":"property","name":"running","type_name":"Server","summary":"Whether server is currently running.","deprecated":null},{"type":"property","name":"sample-format","type_name":"AudioStream","summary":"Stream sample format.","deprecated":null},{"type":"property","name":"sample-rate","type_name":"AudioStream","summary":"Stream sample rate (in Hz).","deprecated":null},{"type":"property","name":"speed","type_name":"Player","summary":"Current playback speed.","deprecated":null},{"type":"property","name":"start","type_name":"Marker","summary":"Starting time of marker.","deprecated":null},{"type":"property","name":"state","type_name":"Player","summary":"Current playback state.","deprecated":null},{"type":"property","name":"stream-type","type_name":"Stream","summary":"Type of stream.","deprecated":null},{"type":"property","name":"subtitle-font-desc","type_name":"Player","summary":"Subtitle stream font description.","deprecated":null},{"type":"property","name":"subtitle-offset","type_name":"Player","summary":"Subtitle stream offset relative to video.","deprecated":null},{"type":"property","name":"subtitle-streams","type_name":"Player","summary":"List of currently available subtitle streams.","deprecated":null},{"type":"property","name":"subtitles-enabled","type_name":"Player","summary":"Whether subtitles stream is enabled.","deprecated":null},{"type":"property","name":"suburi","type_name":"MediaItem","summary":"Media additional URI.","deprecated":null},{"type":"property","name":"tags","type_name":"MediaItem","summary":"A readable list of tags stored in media item.","deprecated":null},{"type":"property","name":"target-creation-allowed","type_name":"EnhancerProxy","summary":"Whether to allow instances of proxy target to be created. This effectively means whether the given enhancer can ...","deprecated":null},{"type":"property","name":"timeline","type_name":"MediaItem","summary":"Media timeline.","deprecated":null},{"type":"property","name":"title","type_name":"Marker","summary":"Title of marker.","deprecated":null},{"type":"property","name":"title","type_name":"MediaItem","summary":"Media title. This might be a different string compared to `title` from [property@Clapper.MediaItem:tags], as this gives parsed title ...","deprecated":null},{"type":"property","name":"title","type_name":"Stream","summary":"Title of stream.","deprecated":null},{"type":"property","name":"uri","type_name":"MediaItem","summary":"Media URI.","deprecated":null},{"type":"property","name":"version","type_name":"EnhancerProxy","summary":"Version from enhancer plugin info file.","deprecated":null},{"type":"property","name":"video-enabled","type_name":"Player","summary":"Whether video stream is enabled.","deprecated":null},{"type":"property","name":"video-filter","type_name":"Player","summary":"Optional video filter to use (none by default).","deprecated":null},{"type":"property","name":"video-sink","type_name":"Player","summary":"Video sink to use (autovideosink by default).","deprecated":null},{"type":"property","name":"video-streams","type_name":"Player","summary":"List of currently available video streams.","deprecated":null},{"type":"property","name":"volume","type_name":"Player","summary":"Current volume as a decimal number (1.0 = 100%). Note that #ClapperPlayer uses a CUBIC volume scale, meaning ...","deprecated":null},{"type":"property","name":"width","type_name":"VideoStream","summary":"Stream width.","deprecated":null},{"type":"signal","name":"download-complete","type_name":"Player","summary":"Media was fully downloaded to local cache directory. This signal will be only emitted when progressive download buffering is ...","deprecated":null},{"type":"signal","name":"error","type_name":"Player","summary":"These are normal error messages. Upon emitting this signal, playback will stop due to the error.","deprecated":null},{"type":"signal","name":"error","type_name":"Server","summary":"Error signal when server could not start. This will be emitted from application main thread.","deprecated":null},{"type":"signal","name":"message","type_name":"Player","summary":"Allows for applications to receive element messages posted on the underlaying pipeline bus. This is a detailed signal. ...","deprecated":null},{"type":"signal","name":"missing-plugin","type_name":"Player","summary":"A #GStreamer plugin or one of its features needed for playback is missing. The @description and @installer_detail can ...","deprecated":null},{"type":"signal","name":"seek-done","type_name":"Player","summary":"A seeking operation has finished. Player is now at playback position after seek.","deprecated":null},{"type":"signal","name":"warning","type_name":"Player","summary":"These are some usually more minor error messages that should be treated like warnings. Should not generally prevent/stop playback.","deprecated":null},{"type":"vfunc","name":"extract","type_name":"Extractable","summary":"Extract data and fill harvest.","deprecated":null},{"type":"vfunc","name":"internal_stream_updated","type_name":"Stream","summary":"This function is called when internal #GstStream gets updated. Meant for internal usage only. Used for subclasses to update ...","deprecated":null},{"type":"vfunc","name":"item_updated","type_name":"Feature","summary":"An item in queue got updated. This might be (or not) currently played item. Implementations can get parent player ...","deprecated":null},{"type":"vfunc","name":"item_updated","type_name":"Reactable","summary":"An item in queue got updated. This might be (or not) currently played item. Implementations can compare it ...","deprecated":null},{"type":"vfunc","name":"mute_changed","type_name":"Feature","summary":"Player mute state was changed.","deprecated":null},{"type":"vfunc","name":"mute_changed","type_name":"Reactable","summary":"Player mute state changed.","deprecated":null},{"type":"vfunc","name":"parse","type_name":"Playlistable","summary":"Parse @bytes and fill @playlist with [class@Clapper.MediaItem] objects. If implementation returns %FALSE, whole @playlist content will be discarded.","deprecated":null},{"type":"vfunc","name":"played_item_changed","type_name":"Feature","summary":"New media item started playing. All following events (such as position changes) will be related to this @item from ...","deprecated":null},{"type":"vfunc","name":"played_item_changed","type_name":"Reactable","summary":"New media item started playing. All following events (such as position changes) will be related to this @item from ...","deprecated":null},{"type":"vfunc","name":"position_changed","type_name":"Feature","summary":"Player position was changed.","deprecated":null},{"type":"vfunc","name":"position_changed","type_name":"Reactable","summary":"Player position changed.","deprecated":null},{"type":"vfunc","name":"prepare","type_name":"Feature","summary":"Prepare feature for operation (optional). This is different from init() as its called from features thread once feature ...","deprecated":null},{"type":"vfunc","name":"property_changed","type_name":"Feature","summary":"A property of @feature changed its value. Useful for reconfiguring @feature, since unlike \"notify\" signal this is always ...","deprecated":null},{"type":"vfunc","name":"queue_cleared","type_name":"Feature","summary":"All items were removed from queue. Note that in such event @queue_item_removed will NOT be called for each item ...","deprecated":null},{"type":"vfunc","name":"queue_cleared","type_name":"Reactable","summary":"All items were removed from queue. Note that in such event [vfunc@Clapper.Reactable.queue_item_removed] will NOT be called for each ...","deprecated":null},{"type":"vfunc","name":"queue_item_added","type_name":"Feature","summary":"An item was added to the queue.","deprecated":null},{"type":"vfunc","name":"queue_item_added","type_name":"Reactable","summary":"An item was added to the queue.","deprecated":null},{"type":"vfunc","name":"queue_item_removed","type_name":"Feature","summary":"An item was removed from queue.","deprecated":null},{"type":"vfunc","name":"queue_item_removed","type_name":"Reactable","summary":"An item was removed from queue. Implementations that are interested in queue items removal should also implement [vfunc@Clapper.Reactable.queue_cleared].","deprecated":null},{"type":"vfunc","name":"queue_item_repositioned","type_name":"Feature","summary":"An item changed position within queue.","deprecated":null},{"type":"vfunc","name":"queue_item_repositioned","type_name":"Reactable","summary":"An item changed position within queue.","deprecated":null},{"type":"vfunc","name":"queue_progression_changed","type_name":"Feature","summary":"Progression mode of the queue was changed.","deprecated":null},{"type":"vfunc","name":"queue_progression_changed","type_name":"Reactable","summary":"Progression mode of the queue was changed.","deprecated":null},{"type":"vfunc","name":"speed_changed","type_name":"Feature","summary":"Player speed was changed.","deprecated":null},{"type":"vfunc","name":"speed_changed","type_name":"Reactable","summary":"Player speed changed.","deprecated":null},{"type":"vfunc","name":"state_changed","type_name":"Feature","summary":"Player state was changed.","deprecated":null},{"type":"vfunc","name":"state_changed","type_name":"Reactable","summary":"Player state changed.","deprecated":null},{"type":"vfunc","name":"thread_start","type_name":"ThreadedObject","summary":"Called right after thread started. Useful for initializing objects that work within this new thread.","deprecated":null},{"type":"vfunc","name":"thread_stop","type_name":"ThreadedObject","summary":"Called when thread is going to stop. Useful for cleanup of things created on thread start.","deprecated":null},{"type":"vfunc","name":"unprepare","type_name":"Feature","summary":"Revert the changes done in @prepare (optional).","deprecated":null},{"type":"vfunc","name":"volume_changed","type_name":"Feature","summary":"Player volume was changed.","deprecated":null},{"type":"vfunc","name":"volume_changed","type_name":"Reactable","summary":"Player volume changed.","deprecated":null}],"terms":{}}
\ No newline at end of file
+{"meta":{"ns":"Clapper","version":"0.0","generator":"gi-docgen","generator-version":"2025.4"},"symbols":[{"type":"bitfield","name":"EnhancerParamFlags","ctype":"ClapperEnhancerParamFlags","summary":"Additional [flags@GObject.ParamFlags] to be set in enhancer plugins implementations.","deprecated":null},{"type":"bitfield","name":"ReactableItemUpdatedFlags","ctype":"ClapperReactableItemUpdatedFlags","summary":"Flags informing which properties were updated within [class@Clapper.MediaItem].","deprecated":null},{"type":"class","name":"AudioStream","ctype":"ClapperAudioStream","summary":"Represents an audio stream within media.","deprecated":null},{"type":"class","name":"Discoverer","ctype":"ClapperDiscoverer","summary":"An optional Discoverer feature to be added to the player. #ClapperDiscoverer is a feature that wraps around #GstDiscoverer ...","deprecated":null},{"type":"class","name":"EnhancerProxy","ctype":"ClapperEnhancerProxy","summary":"An intermediary between player and enhancer plugin. Applications can use this to inspect enhancer information, its properties and ...","deprecated":null},{"type":"class","name":"EnhancerProxyList","ctype":"ClapperEnhancerProxyList","summary":"A list of enhancer proxies.","deprecated":null},{"type":"class","name":"Feature","ctype":"ClapperFeature","summary":"A base class for creating new features for the player. Feature objects are meant for adding additional functionalities ...","deprecated":"0.10"},{"type":"class","name":"Harvest","ctype":"ClapperHarvest","summary":"An object storing data from enhancers that implement [iface@Clapper.Extractable] interface.","deprecated":null},{"type":"class","name":"Marker","ctype":"ClapperMarker","summary":"Represents a point in timeline. Markers are a convienient way of marking points of interest within a [class@Clapper.Timeline] ...","deprecated":null},{"type":"class","name":"MediaItem","ctype":"ClapperMediaItem","summary":"Represents a media item. A newly created media item must be added to player [class@Clapper.Queue] first in order ...","deprecated":null},{"type":"class","name":"Mpris","ctype":"ClapperMpris","summary":"An optional `MPRIS` feature to add to the player. Not every OS supports `MPRIS`. Use [const@Clapper.HAVE_MPRIS] macro to ...","deprecated":"0.10"},{"type":"class","name":"Player","ctype":"ClapperPlayer","summary":"The media player object used for playback. #ClapperPlayer was written in an easy to use way, so no ...","deprecated":null},{"type":"class","name":"Queue","ctype":"ClapperQueue","summary":"A queue of media to be played.","deprecated":null},{"type":"class","name":"Server","ctype":"ClapperServer","summary":"An optional Server feature to add to the player. #ClapperServer is a feature that hosts a local server ...","deprecated":null},{"type":"class","name":"Stream","ctype":"ClapperStream","summary":"Represents a stream within media.","deprecated":null},{"type":"class","name":"StreamList","ctype":"ClapperStreamList","summary":"A list of media streams.","deprecated":null},{"type":"class","name":"SubtitleStream","ctype":"ClapperSubtitleStream","summary":"Represents a subtitle stream within media.","deprecated":null},{"type":"class","name":"ThreadedObject","ctype":"ClapperThreadedObject","summary":"A base class for creating objects that work within a separate thread.","deprecated":null},{"type":"class","name":"Timeline","ctype":"ClapperTimeline","summary":"A media timeline filled with point markers.","deprecated":null},{"type":"class","name":"VideoStream","ctype":"ClapperVideoStream","summary":"Represents a video stream within media.","deprecated":null},{"type":"constant","name":"HAVE_DISCOVERER","ident":"CLAPPER_HAVE_DISCOVERER","summary":"Check if Clapper was compiled with Discoverer feature.","deprecated":null},{"type":"constant","name":"HAVE_MPRIS","ident":"CLAPPER_HAVE_MPRIS","summary":"Check if Clapper was compiled with MPRIS feature.","deprecated":null},{"type":"constant","name":"HAVE_SERVER","ident":"CLAPPER_HAVE_SERVER","summary":"Check if Clapper was compiled with Server feature.","deprecated":null},{"type":"constant","name":"MAJOR_VERSION","ident":"CLAPPER_MAJOR_VERSION","summary":"Clapper major version component","deprecated":null},{"type":"constant","name":"MARKER_NO_END","ident":"CLAPPER_MARKER_NO_END","summary":"The value used to indicate that marker does not have an ending time specified","deprecated":null},{"type":"constant","name":"MICRO_VERSION","ident":"CLAPPER_MICRO_VERSION","summary":"Clapper micro version component","deprecated":null},{"type":"constant","name":"MINOR_VERSION","ident":"CLAPPER_MINOR_VERSION","summary":"Clapper minor version component","deprecated":null},{"type":"constant","name":"QUEUE_INVALID_POSITION","ident":"CLAPPER_QUEUE_INVALID_POSITION","summary":"The value used to refer to an invalid position in a #ClapperQueue","deprecated":null},{"type":"constant","name":"STREAM_LIST_INVALID_POSITION","ident":"CLAPPER_STREAM_LIST_INVALID_POSITION","summary":"The value used to refer to an invalid position in a #ClapperStreamList","deprecated":null},{"type":"constant","name":"TIME_FORMAT","ident":"CLAPPER_TIME_FORMAT","summary":"A string that can be used in printf-like format to display e.g. position or duration in `hh:mm:ss` format. Meant ...","deprecated":null},{"type":"constant","name":"TIME_MS_FORMAT","ident":"CLAPPER_TIME_MS_FORMAT","summary":"Same as [const@Clapper.TIME_FORMAT], but also displays milliseconds. Meant to be used together with [func@Clapper.TIME_MS_ARGS]. Example: ```c gchar ...","deprecated":null},{"type":"constant","name":"VERSION_S","ident":"CLAPPER_VERSION_S","summary":"Clapper version, encoded as a string","deprecated":null},{"type":"constant","name":"WITH_ENHANCERS_LOADER","ident":"CLAPPER_WITH_ENHANCERS_LOADER","summary":"Check if Clapper was compiled with Enhancers Loader functionality. Alternatively, apps before compiling can also check whether `pkgconfig` ...","deprecated":null},{"type":"content","name":"Clapper Enhancers","href":"clapper-enhancers.html","summary":" ### Overview Clapper Enhancers are special plugins loaded through `libpeas` for Clapper library. The idea is to ..."},{"type":"content","name":"Extractable Enhancers","href":"extractable-enhancers.html","summary":" ### Overview [iface@Clapper.Extractable] is an interface to implement enhancers that need to resolve given URI into data ..."},{"type":"content","name":"Migrating to Clapper 0.10","href":"migrating-to-010.html","summary":" ### Replace Features with Enhancers Clapper 0.10 deprecates [class@Clapper.Feature] objects in favour [Clapper Enhancers](clapper-enhancers.html) used via [class@Clapper.EnhancerProxy]. ..."},{"type":"content","name":"Playlistable Enhancers","href":"playlistable-enhancers.html","summary":" ### Overview [iface@Clapper.Playlistable] is an interface to implement playlist parsers. Allows to expand Clapper library with an ..."},{"type":"content","name":"Reactable Enhancers","href":"reactable-enhancers.html","summary":" ### Overview [iface@Clapper.Reactable] is an interface to implement enhancers that react to the playback and/or events that ..."},{"type":"ctor","name":"new","type_name":"Discoverer","ident":"clapper_discoverer_new","summary":"Creates a new #ClapperDiscoverer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"Marker","ident":"clapper_marker_new","summary":"Creates a new #ClapperMarker with given params. It is considered a programmer error trying to set an ending ...","deprecated":null},{"type":"ctor","name":"new","type_name":"MediaItem","ident":"clapper_media_item_new","summary":"Creates new #ClapperMediaItem from URI. Use one of the URI protocols supported by plugins in #GStreamer installation. For ...","deprecated":null},{"type":"ctor","name":"new","type_name":"Mpris","ident":"clapper_mpris_new","summary":"Creates a new #ClapperMpris instance.","deprecated":"0.10"},{"type":"ctor","name":"new","type_name":"Player","ident":"clapper_player_new","summary":"Creates a new #ClapperPlayer instance.","deprecated":null},{"type":"ctor","name":"new","type_name":"Server","ident":"clapper_server_new","summary":"Creates a new #ClapperServer instance.","deprecated":null},{"type":"ctor","name":"new_cached","type_name":"MediaItem","ident":"clapper_media_item_new_cached","summary":"Same as [ctor@Clapper.MediaItem.new], but allows to provide a location of a cache file where particular media at @uri is ...","deprecated":null},{"type":"ctor","name":"new_from_file","type_name":"MediaItem","ident":"clapper_media_item_new_from_file","summary":"Creates new #ClapperMediaItem from #GFile. Same as [ctor@Clapper.MediaItem.new], but uses a [iface@Gio.File] for convenience in some situations instead ...","deprecated":null},{"type":"enum","name":"DiscovererDiscoveryMode","ctype":"ClapperDiscovererDiscoveryMode","summary":"No description available.","deprecated":null},{"type":"enum","name":"MarkerType","ctype":"ClapperMarkerType","summary":"No description available.","deprecated":null},{"type":"enum","name":"PlayerSeekMethod","ctype":"ClapperPlayerSeekMethod","summary":"No description available.","deprecated":null},{"type":"enum","name":"PlayerState","ctype":"ClapperPlayerState","summary":"No description available.","deprecated":null},{"type":"enum","name":"QueueProgressionMode","ctype":"ClapperQueueProgressionMode","summary":"No description available.","deprecated":null},{"type":"enum","name":"StreamType","ctype":"ClapperStreamType","summary":"No description available.","deprecated":null},{"type":"function","name":"enhancer_check","ident":"clapper_enhancer_check","summary":"Check if an enhancer of @type is available for given @scheme and @host. A check that compares requested ...","deprecated":"0.10"},{"type":"function","name":"get_global_enhancer_proxies","ident":"clapper_get_global_enhancer_proxies","summary":"Get a list of available enhancers in the form of [class@Clapper.EnhancerProxy] objects. This returns a global list of ...","deprecated":null},{"type":"function","name":"get_major_version","ident":"clapper_get_major_version","summary":"Clapper runtime major version component This returns the Clapper library version your code is running against unlike [const@Clapper.MAJOR_VERSION] ...","deprecated":null},{"type":"function","name":"get_micro_version","ident":"clapper_get_micro_version","summary":"Clapper runtime micro version component This returns the Clapper library version your code is running against unlike [const@Clapper.MICRO_VERSION] ...","deprecated":null},{"type":"function","name":"get_minor_version","ident":"clapper_get_minor_version","summary":"Clapper runtime minor version component This returns the Clapper library version your code is running against unlike [const@Clapper.MINOR_VERSION] ...","deprecated":null},{"type":"function","name":"get_version_s","ident":"clapper_get_version_s","summary":"Clapper runtime version as string This returns the Clapper library version your code is running against unlike [const@Clapper.VERSION_S] ...","deprecated":null},{"type":"function","name":"init","ident":"clapper_init","summary":"Initializes the Clapper library. Implementations must always call this before using Clapper API. Because Clapper uses GStreamer internally, ...","deprecated":null},{"type":"function","name":"init_check","ident":"clapper_init_check","summary":"This function does the same thing as [func@Clapper.init], but instead of terminating on failure it returns %FALSE.","deprecated":null},{"type":"function_macro","name":"AUDIO_STREAM_CAST","ident":"CLAPPER_AUDIO_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"CHECK_VERSION","ident":"CLAPPER_CHECK_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"DEPRECATED_FOR","ident":"CLAPPER_DEPRECATED_FOR","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"DISCOVERER_CAST","ident":"CLAPPER_DISCOVERER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENCODE_VERSION","ident":"CLAPPER_ENCODE_VERSION","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENHANCER_PROXY_CAST","ident":"CLAPPER_ENHANCER_PROXY_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"ENHANCER_PROXY_LIST_CAST","ident":"CLAPPER_ENHANCER_PROXY_LIST_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"EXTRACTABLE_CAST","ident":"CLAPPER_EXTRACTABLE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"FEATURE_CAST","ident":"CLAPPER_FEATURE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"HARVEST_CAST","ident":"CLAPPER_HARVEST_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"MARKER_CAST","ident":"CLAPPER_MARKER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"MEDIA_ITEM_CAST","ident":"CLAPPER_MEDIA_ITEM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"MPRIS_CAST","ident":"CLAPPER_MPRIS_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"PLAYER_CAST","ident":"CLAPPER_PLAYER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"PLAYLISTABLE_CAST","ident":"CLAPPER_PLAYLISTABLE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"QUEUE_CAST","ident":"CLAPPER_QUEUE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"REACTABLE_CAST","ident":"CLAPPER_REACTABLE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SERVER_CAST","ident":"CLAPPER_SERVER_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"STREAM_CAST","ident":"CLAPPER_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"STREAM_LIST_CAST","ident":"CLAPPER_STREAM_LIST_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"SUBTITLE_STREAM_CAST","ident":"CLAPPER_SUBTITLE_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"THREADED_OBJECT_CAST","ident":"CLAPPER_THREADED_OBJECT_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TIMELINE_CAST","ident":"CLAPPER_TIMELINE_CAST","summary":"No description available.","deprecated":null},{"type":"function_macro","name":"TIME_ARGS","ident":"CLAPPER_TIME_ARGS","summary":"Formats @t for the [const@Clapper.TIME_FORMAT] format string.","deprecated":null},{"type":"function_macro","name":"TIME_MS_ARGS","ident":"CLAPPER_TIME_MS_ARGS","summary":"Formats @t for the [const@Clapper.TIME_MS_FORMAT] format string.","deprecated":null},{"type":"function_macro","name":"VIDEO_STREAM_CAST","ident":"CLAPPER_VIDEO_STREAM_CAST","summary":"No description available.","deprecated":null},{"type":"interface","name":"Extractable","ctype":"ClapperExtractable","summary":"An interface for creating enhancers that resolve given URI into something playable.","deprecated":null},{"type":"interface","name":"Playlistable","ctype":"ClapperPlaylistable","summary":"An interface for creating enhancers that parse data into individual media items.","deprecated":null},{"type":"interface","name":"Reactable","ctype":"ClapperReactable","summary":"An interface for creating enhancers that react to the playback and/or events that should influence it.","deprecated":null},{"type":"method","name":"add_feature","type_name":"Player","ident":"clapper_player_add_feature","summary":"Add another #ClapperFeature to the player.","deprecated":null},{"type":"method","name":"add_item","type_name":"Queue","ident":"clapper_queue_add_item","summary":"Add another #ClapperMediaItem to the end of queue. If item is already in queue, this function will do ...","deprecated":null},{"type":"method","name":"clear","type_name":"Queue","ident":"clapper_queue_clear","summary":"Removes all media items from the queue. If queue is empty, this function will do nothing, so it ...","deprecated":null},{"type":"method","name":"extra_data_lists_value","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_extra_data_lists_value","summary":"A convenience function to check whether @proxy plugin file has an extra data field with @key that among separated ...","deprecated":null},{"type":"method","name":"fill","type_name":"Harvest","ident":"clapper_harvest_fill","summary":"Fill harvest with extracted data. It can be anything that GStreamer can parse and play such as single URI ...","deprecated":null},{"type":"method","name":"fill_with_bytes","type_name":"Harvest","ident":"clapper_harvest_fill_with_bytes","summary":"A convenience method to fill @harvest with data from #GBytes. For more info, see [method@Clapper.Harvest.fill] documentation.","deprecated":null},{"type":"method","name":"fill_with_text","type_name":"Harvest","ident":"clapper_harvest_fill_with_text","summary":"A convenience method to fill @harvest using a %NULL terminated string. For more info, see [method@Clapper.Harvest.fill] documentation.","deprecated":null},{"type":"method","name":"find_item","type_name":"Queue","ident":"clapper_queue_find_item","summary":"Get the index of #ClapperMediaItem within #ClapperQueue.","deprecated":null},{"type":"method","name":"get_adaptive_bandwidth","type_name":"Player","ident":"clapper_player_get_adaptive_bandwidth","summary":"Get last fragment download bandwidth (bits/s) during adaptive streaming.","deprecated":null},{"type":"method","name":"get_adaptive_max_bitrate","type_name":"Player","ident":"clapper_player_get_adaptive_max_bitrate","summary":"Get currently set maximal bitrate (bits/s) for adaptive streaming.","deprecated":null},{"type":"method","name":"get_adaptive_min_bitrate","type_name":"Player","ident":"clapper_player_get_adaptive_min_bitrate","summary":"Get currently set minimal bitrate (bits/s) for adaptive streaming.","deprecated":null},{"type":"method","name":"get_adaptive_start_bitrate","type_name":"Player","ident":"clapper_player_get_adaptive_start_bitrate","summary":"Get currently set initial bitrate (bits/s) for adaptive streaming.","deprecated":null},{"type":"method","name":"get_audio_enabled","type_name":"Player","ident":"clapper_player_get_audio_enabled","summary":"Get whether audio stream is enabled.","deprecated":null},{"type":"method","name":"get_audio_filter","type_name":"Player","ident":"clapper_player_get_audio_filter","summary":"Get #GstElement used as audio filter.","deprecated":null},{"type":"method","name":"get_audio_offset","type_name":"Player","ident":"clapper_player_get_audio_offset","summary":"Get the currently set audio stream offset. The returned value is in seconds as a decimal number.","deprecated":null},{"type":"method","name":"get_audio_sink","type_name":"Player","ident":"clapper_player_get_audio_sink","summary":"Get #GstElement used as audio sink.","deprecated":null},{"type":"method","name":"get_audio_streams","type_name":"Player","ident":"clapper_player_get_audio_streams","summary":"Get a list of audio streams within media item.","deprecated":null},{"type":"method","name":"get_autoplay","type_name":"Player","ident":"clapper_player_get_autoplay","summary":"Get the autoplay value.","deprecated":null},{"type":"method","name":"get_bitrate","type_name":"AudioStream","ident":"clapper_audio_stream_get_bitrate","summary":"Get bitrate of audio @stream.","deprecated":null},{"type":"method","name":"get_bitrate","type_name":"VideoStream","ident":"clapper_video_stream_get_bitrate","summary":"Get bitrate of video @stream.","deprecated":null},{"type":"method","name":"get_channels","type_name":"AudioStream","ident":"clapper_audio_stream_get_channels","summary":"Get number of audio channels in @stream.","deprecated":null},{"type":"method","name":"get_codec","type_name":"AudioStream","ident":"clapper_audio_stream_get_codec","summary":"Get codec used to encode @stream.","deprecated":null},{"type":"method","name":"get_codec","type_name":"VideoStream","ident":"clapper_video_stream_get_codec","summary":"Get codec used to encode @stream.","deprecated":null},{"type":"method","name":"get_container_format","type_name":"MediaItem","ident":"clapper_media_item_get_container_format","summary":"Get media item container format.","deprecated":"0.10"},{"type":"method","name":"get_context","type_name":"ThreadedObject","ident":"clapper_threaded_object_get_context","summary":"Get the #GMainContext of the thread used by this object. Useful when you want to invoke object thread ...","deprecated":null},{"type":"method","name":"get_current_audio_decoder","type_name":"Player","ident":"clapper_player_get_current_audio_decoder","summary":"Get #GstElement currently used as audio decoder.","deprecated":null},{"type":"method","name":"get_current_index","type_name":"Queue","ident":"clapper_queue_get_current_index","summary":"Get index of the currently selected #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_current_index","type_name":"StreamList","ident":"clapper_stream_list_get_current_index","summary":"Get index of the currently selected #ClapperStream.","deprecated":null},{"type":"method","name":"get_current_item","type_name":"Queue","ident":"clapper_queue_get_current_item","summary":"Get the currently selected #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_current_port","type_name":"Server","ident":"clapper_server_get_current_port","summary":"Get port on which server is currently listening on.","deprecated":null},{"type":"method","name":"get_current_stream","type_name":"StreamList","ident":"clapper_stream_list_get_current_stream","summary":"Get the currently selected #ClapperStream.","deprecated":null},{"type":"method","name":"get_current_video_decoder","type_name":"Player","ident":"clapper_player_get_current_video_decoder","summary":"Get #GstElement currently used as video decoder.","deprecated":null},{"type":"method","name":"get_description","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_description","summary":"Get description from enhancer plugin info file.","deprecated":null},{"type":"method","name":"get_discovery_mode","type_name":"Discoverer","ident":"clapper_discoverer_get_discovery_mode","summary":"Get the [enum@Clapper.DiscovererDiscoveryMode] of @discoverer.","deprecated":null},{"type":"method","name":"get_download_dir","type_name":"Player","ident":"clapper_player_get_download_dir","summary":"Get path to a directory set for media downloads.","deprecated":null},{"type":"method","name":"get_download_enabled","type_name":"Player","ident":"clapper_player_get_download_enabled","summary":"Get whether progressive download buffering is enabled.","deprecated":null},{"type":"method","name":"get_duration","type_name":"MediaItem","ident":"clapper_media_item_get_duration","summary":"Get media item duration as decimal number in seconds.","deprecated":null},{"type":"method","name":"get_enabled","type_name":"Server","ident":"clapper_server_get_enabled","summary":"Get whether #ClapperServer is set to be running.","deprecated":null},{"type":"method","name":"get_end","type_name":"Marker","ident":"clapper_marker_get_end","summary":"Get the end position (in seconds) of @marker.","deprecated":null},{"type":"method","name":"get_enhancer_proxies","type_name":"Player","ident":"clapper_player_get_enhancer_proxies","summary":"Get a list of available enhancers in the form of [class@Clapper.EnhancerProxy] objects.","deprecated":null},{"type":"method","name":"get_extra_data","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_extra_data","summary":"Get extra data from enhancer plugin info file specified by @key. Extra data in the plugin info file ...","deprecated":null},{"type":"method","name":"get_fallback_art_url","type_name":"Mpris","ident":"clapper_mpris_get_fallback_art_url","summary":"Get fallback art URL earlier set by user.","deprecated":"0.10"},{"type":"method","name":"get_fps","type_name":"VideoStream","ident":"clapper_video_stream_get_fps","summary":"Get number of frames per second in video @stream.","deprecated":null},{"type":"method","name":"get_friendly_name","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_friendly_name","summary":"Get a name from enhancer plugin info file. Can be used for showing in UI and such. Name ...","deprecated":null},{"type":"method","name":"get_gapless","type_name":"Queue","ident":"clapper_queue_get_gapless","summary":"Get if #ClapperQueue is set to use gapless progression.","deprecated":null},{"type":"method","name":"get_height","type_name":"VideoStream","ident":"clapper_video_stream_get_height","summary":"Get height of video @stream.","deprecated":null},{"type":"method","name":"get_id","type_name":"MediaItem","ident":"clapper_media_item_get_id","summary":"Get the unique ID of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_instant","type_name":"Queue","ident":"clapper_queue_get_instant","summary":"Get if #ClapperQueue is set to use instant media item changes.","deprecated":null},{"type":"method","name":"get_item","type_name":"Queue","ident":"clapper_queue_get_item","summary":"Get the #ClapperMediaItem at index. This behaves the same as [method@Gio.ListModel.get_item], and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_lang_code","type_name":"AudioStream","ident":"clapper_audio_stream_get_lang_code","summary":"Get an ISO-639 language code of the @stream.","deprecated":null},{"type":"method","name":"get_lang_code","type_name":"SubtitleStream","ident":"clapper_subtitle_stream_get_lang_code","summary":"Get an ISO-639 language code of the @stream.","deprecated":null},{"type":"method","name":"get_lang_name","type_name":"AudioStream","ident":"clapper_audio_stream_get_lang_name","summary":"Get language name of the @stream. This function will try to return a translated string into current locale ...","deprecated":null},{"type":"method","name":"get_lang_name","type_name":"SubtitleStream","ident":"clapper_subtitle_stream_get_lang_name","summary":"Get language name of the @stream. This function will try to return a translated string into current locale ...","deprecated":null},{"type":"method","name":"get_marker","type_name":"Timeline","ident":"clapper_timeline_get_marker","summary":"Get the #ClapperMarker at index. This behaves the same as [method@Gio.ListModel.get_item], and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_marker_type","type_name":"Marker","ident":"clapper_marker_get_marker_type","summary":"Get the #ClapperMarkerType of @marker.","deprecated":null},{"type":"method","name":"get_module_dir","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_module_dir","summary":"Get a path to the directory from which enhancer is loaded.","deprecated":null},{"type":"method","name":"get_module_name","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_module_name","summary":"Get name of the module from enhancer plugin info file. This value is used to uniquely identify a particular ...","deprecated":null},{"type":"method","name":"get_mute","type_name":"Player","ident":"clapper_player_get_mute","summary":"Get the mute state of the player.","deprecated":null},{"type":"method","name":"get_n_items","type_name":"Queue","ident":"clapper_queue_get_n_items","summary":"Get the number of items in #ClapperQueue. This behaves the same as [method@Gio.ListModel.get_n_items], and is here for code ...","deprecated":null},{"type":"method","name":"get_n_markers","type_name":"Timeline","ident":"clapper_timeline_get_n_markers","summary":"Get the number of markers in #ClapperTimeline. This behaves the same as [method@Gio.ListModel.get_n_items], and is here for code ...","deprecated":null},{"type":"method","name":"get_n_proxies","type_name":"EnhancerProxyList","ident":"clapper_enhancer_proxy_list_get_n_proxies","summary":"Get the number of proxies in #ClapperEnhancerProxyList. This behaves the same as [method@Gio.ListModel.get_n_items], and is here for code ...","deprecated":null},{"type":"method","name":"get_n_streams","type_name":"StreamList","ident":"clapper_stream_list_get_n_streams","summary":"Get the number of streams in #ClapperStreamList. This behaves the same as [method@Gio.ListModel.get_n_items], and is here for code ...","deprecated":null},{"type":"method","name":"get_pixel_format","type_name":"VideoStream","ident":"clapper_video_stream_get_pixel_format","summary":"Get pixel format of video @stream.","deprecated":null},{"type":"method","name":"get_player","type_name":"Reactable","ident":"clapper_reactable_get_player","summary":"Get the [class@Clapper.Player] that this reactable is reacting to. This is meant to be used in implementations where ...","deprecated":null},{"type":"method","name":"get_port","type_name":"Server","ident":"clapper_server_get_port","summary":"Get requested server listening port. If you want to know the port server is currently listening on, use ...","deprecated":null},{"type":"method","name":"get_position","type_name":"Player","ident":"clapper_player_get_position","summary":"Get the current player playback position. The returned value is in seconds as a decimal number.","deprecated":null},{"type":"method","name":"get_progression_mode","type_name":"Queue","ident":"clapper_queue_get_progression_mode","summary":"Get the #ClapperQueueProgressionMode of the #ClapperQueue.","deprecated":null},{"type":"method","name":"get_proxy","type_name":"EnhancerProxyList","ident":"clapper_enhancer_proxy_list_get_proxy","summary":"Get the #ClapperEnhancerProxy at index. This behaves the same as [method@Gio.ListModel.get_item], and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_proxy_by_module","type_name":"EnhancerProxyList","ident":"clapper_enhancer_proxy_list_get_proxy_by_module","summary":"Get the #ClapperEnhancerProxy by module name as defined in its plugin file. A convenience function to find a ...","deprecated":null},{"type":"method","name":"get_queue","type_name":"Player","ident":"clapper_player_get_queue","summary":"Get the #ClapperQueue of the player. The queue belongs to the player and can be accessed for as ...","deprecated":null},{"type":"method","name":"get_queue_controllable","type_name":"Mpris","ident":"clapper_mpris_get_queue_controllable","summary":"Get whether remote `MPRIS` clients can control [class@Clapper.Queue].","deprecated":"0.10"},{"type":"method","name":"get_queue_controllable","type_name":"Server","ident":"clapper_server_get_queue_controllable","summary":"Get whether remote @server clients can control [class@Clapper.Queue].","deprecated":null},{"type":"method","name":"get_running","type_name":"Server","ident":"clapper_server_get_running","summary":"Get whether #ClapperServer is currently running.","deprecated":null},{"type":"method","name":"get_sample_format","type_name":"AudioStream","ident":"clapper_audio_stream_get_sample_format","summary":"Get sample format of audio @stream.","deprecated":null},{"type":"method","name":"get_sample_rate","type_name":"AudioStream","ident":"clapper_audio_stream_get_sample_rate","summary":"Get sample rate of audio @stream (in Hz).","deprecated":null},{"type":"method","name":"get_settings","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_settings","summary":"Get #GSettings of an enhancer. Implementations can use this together with [method@Clapper.EnhancerProxy.get_target_properties] in order to allow user to ...","deprecated":null},{"type":"method","name":"get_speed","type_name":"Player","ident":"clapper_player_get_speed","summary":"Get the speed of the player used for playback.","deprecated":null},{"type":"method","name":"get_start","type_name":"Marker","ident":"clapper_marker_get_start","summary":"Get the start position (in seconds) of @marker.","deprecated":null},{"type":"method","name":"get_state","type_name":"Player","ident":"clapper_player_get_state","summary":"Get the current #ClapperPlayerState.","deprecated":null},{"type":"method","name":"get_stream","type_name":"StreamList","ident":"clapper_stream_list_get_stream","summary":"Get the #ClapperStream at index. This behaves the same as [method@Gio.ListModel.get_item], and is here for code uniformity and ...","deprecated":null},{"type":"method","name":"get_stream_type","type_name":"Stream","ident":"clapper_stream_get_stream_type","summary":"Get the #ClapperStreamType of @stream.","deprecated":null},{"type":"method","name":"get_subtitle_font_desc","type_name":"Player","ident":"clapper_player_get_subtitle_font_desc","summary":"Get the currently set font description used for subtitle stream rendering.","deprecated":null},{"type":"method","name":"get_subtitle_offset","type_name":"Player","ident":"clapper_player_get_subtitle_offset","summary":"Get the currently set subtitle stream offset. The returned value is in seconds as a decimal number.","deprecated":null},{"type":"method","name":"get_subtitle_streams","type_name":"Player","ident":"clapper_player_get_subtitle_streams","summary":"Get a list of subtitle streams within media item.","deprecated":null},{"type":"method","name":"get_subtitles_enabled","type_name":"Player","ident":"clapper_player_get_subtitles_enabled","summary":"Get whether subtitles are to be shown when available.","deprecated":null},{"type":"method","name":"get_suburi","type_name":"MediaItem","ident":"clapper_media_item_get_suburi","summary":"Get the additional URI of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_tags","type_name":"MediaItem","ident":"clapper_media_item_get_tags","summary":"Get readable list of tags stored in media item.","deprecated":null},{"type":"method","name":"get_target_creation_allowed","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_target_creation_allowed","summary":"Get whether it is allowed to create instances of enhancer that this proxy targets.","deprecated":null},{"type":"method","name":"get_target_interfaces","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_target_interfaces","summary":"Get an array of interfaces that target enhancer implements. The returned array includes only Clapper specific interfaces for ...","deprecated":null},{"type":"method","name":"get_target_properties","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_target_properties","summary":"Get an array of properties in target enhancer. Implementations can use this in order to find out what ...","deprecated":null},{"type":"method","name":"get_timeline","type_name":"MediaItem","ident":"clapper_media_item_get_timeline","summary":"Get the [class@Clapper.Timeline] associated with @item.","deprecated":null},{"type":"method","name":"get_title","type_name":"Marker","ident":"clapper_marker_get_title","summary":"Get the title of @marker.","deprecated":null},{"type":"method","name":"get_title","type_name":"MediaItem","ident":"clapper_media_item_get_title","summary":"Get media item title. The title can be either text detected by media discovery once it completes. Otherwise ...","deprecated":null},{"type":"method","name":"get_title","type_name":"Stream","ident":"clapper_stream_get_title","summary":"Get the title of @stream, if any.","deprecated":null},{"type":"method","name":"get_uri","type_name":"MediaItem","ident":"clapper_media_item_get_uri","summary":"Get the URI of #ClapperMediaItem.","deprecated":null},{"type":"method","name":"get_version","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_get_version","summary":"Get version string from enhancer plugin info file.","deprecated":null},{"type":"method","name":"get_video_enabled","type_name":"Player","ident":"clapper_player_get_video_enabled","summary":"Get whether video stream is enabled.","deprecated":null},{"type":"method","name":"get_video_filter","type_name":"Player","ident":"clapper_player_get_video_filter","summary":"Get #GstElement used as video filter.","deprecated":null},{"type":"method","name":"get_video_sink","type_name":"Player","ident":"clapper_player_get_video_sink","summary":"Get #GstElement used as video sink.","deprecated":null},{"type":"method","name":"get_video_streams","type_name":"Player","ident":"clapper_player_get_video_streams","summary":"Get a list of video streams within media item.","deprecated":null},{"type":"method","name":"get_volume","type_name":"Player","ident":"clapper_player_get_volume","summary":"Get the volume of the player.","deprecated":null},{"type":"method","name":"get_width","type_name":"VideoStream","ident":"clapper_video_stream_get_width","summary":"Get width of video @stream.","deprecated":null},{"type":"method","name":"headers_set","type_name":"Harvest","ident":"clapper_harvest_headers_set","summary":"Set one or more request headers named with @key to specified `value`. Arguments should be %NULL terminated list ...","deprecated":null},{"type":"method","name":"headers_set_value","type_name":"Harvest","ident":"clapper_harvest_headers_set_value","summary":"Set another header in the request headers list using #GValue. Setting again the same key will update its ...","deprecated":null},{"type":"method","name":"insert_item","type_name":"Queue","ident":"clapper_queue_insert_item","summary":"Insert another #ClapperMediaItem at @index position to the queue. If item is already in queue, this function will ...","deprecated":null},{"type":"method","name":"insert_marker","type_name":"Timeline","ident":"clapper_timeline_insert_marker","summary":"Insert the #ClapperMarker into @timeline.","deprecated":null},{"type":"method","name":"item_is_current","type_name":"Queue","ident":"clapper_queue_item_is_current","summary":"Checks if given #ClapperMediaItem is currently selected.","deprecated":null},{"type":"method","name":"make_pipeline_graph","type_name":"Player","ident":"clapper_player_make_pipeline_graph","summary":"Make current #GStreamer pipeline graph in `graphviz` dot format. Applications can use tools like `graphviz` to display returned ...","deprecated":null},{"type":"method","name":"pause","type_name":"Player","ident":"clapper_player_pause","summary":"Pause the playback of current media item. This function will queue a request for the underlaying #GStreamer pipeline ...","deprecated":null},{"type":"method","name":"peek_proxy","type_name":"EnhancerProxyList","ident":"clapper_enhancer_proxy_list_peek_proxy","summary":"Get the #ClapperEnhancerProxy at index. Similar to [method@Clapper.EnhancerProxyList.get_proxy], but does not take a new reference on proxy. ...","deprecated":null},{"type":"method","name":"play","type_name":"Player","ident":"clapper_player_play","summary":"Either start or resume the playback of current media item. This function will queue a request for the ...","deprecated":null},{"type":"method","name":"populate_tags","type_name":"MediaItem","ident":"clapper_media_item_populate_tags","summary":"Populate non-existing tags in @item tag list. Passed @tags must use [enum@Gst.TagScope.GLOBAL] scope. Note that tags are ...","deprecated":null},{"type":"method","name":"queue_append_sync","type_name":"Reactable","ident":"clapper_reactable_queue_append_sync","summary":"A convenience function that within application main thread synchronously appends an @item to the playback queue of the player ...","deprecated":null},{"type":"method","name":"queue_clear_sync","type_name":"Reactable","ident":"clapper_reactable_queue_clear_sync","summary":"A convenience function that within application main thread synchronously clears the playback queue of the player that @reactable belongs ...","deprecated":null},{"type":"method","name":"queue_insert_sync","type_name":"Reactable","ident":"clapper_reactable_queue_insert_sync","summary":"A convenience function that within application main thread synchronously inserts an @item to the playback queue position after @after_item ...","deprecated":null},{"type":"method","name":"queue_remove_sync","type_name":"Reactable","ident":"clapper_reactable_queue_remove_sync","summary":"A convenience function that within application main thread synchronously removes an @item from the playback queue of the player ...","deprecated":null},{"type":"method","name":"remove_index","type_name":"Queue","ident":"clapper_queue_remove_index","summary":"Removes #ClapperMediaItem at @index from the queue.","deprecated":null},{"type":"method","name":"remove_item","type_name":"Queue","ident":"clapper_queue_remove_item","summary":"Removes #ClapperMediaItem from the queue. If item either was never in the queue or was removed from it ...","deprecated":null},{"type":"method","name":"remove_marker","type_name":"Timeline","ident":"clapper_timeline_remove_marker","summary":"Removes #ClapperMarker from the timeline if present.","deprecated":null},{"type":"method","name":"reposition_item","type_name":"Queue","ident":"clapper_queue_reposition_item","summary":"Change position of one #ClapperMediaItem within the queue. Note that the @index is the new position you expect ...","deprecated":null},{"type":"method","name":"seek","type_name":"Player","ident":"clapper_player_seek","summary":"Request the player to perform a seek operation. This function will use [enum@Clapper.PlayerSeekMethod.NORMAL] as a seeking method. If ...","deprecated":null},{"type":"method","name":"seek_custom","type_name":"Player","ident":"clapper_player_seek_custom","summary":"Request the player to perform a seek operation. Same as [method@Clapper.Player.seek], but also allows to specify [enum@Clapper.PlayerSeekMethod] to ...","deprecated":null},{"type":"method","name":"select_index","type_name":"Queue","ident":"clapper_queue_select_index","summary":"Selects #ClapperMediaItem at @index from @queue as current one or unselects currently selected index when @index is [const@Clapper.QUEUE_INVALID_POSITION].","deprecated":null},{"type":"method","name":"select_index","type_name":"StreamList","ident":"clapper_stream_list_select_index","summary":"Selects #ClapperStream at @index from @list as current one.","deprecated":null},{"type":"method","name":"select_item","type_name":"Queue","ident":"clapper_queue_select_item","summary":"Selects #ClapperMediaItem from @queue as current one or unselects currently selected item when @item is %NULL.","deprecated":null},{"type":"method","name":"select_next_item","type_name":"Queue","ident":"clapper_queue_select_next_item","summary":"Selects next #ClapperMediaItem from @queue for playback. Note that this will try to select next item in the ...","deprecated":null},{"type":"method","name":"select_previous_item","type_name":"Queue","ident":"clapper_queue_select_previous_item","summary":"Selects previous #ClapperMediaItem from @queue for playback. Note that this will try to select previous item in the ...","deprecated":null},{"type":"method","name":"select_stream","type_name":"StreamList","ident":"clapper_stream_list_select_stream","summary":"Selects #ClapperStream from @list to be activated.","deprecated":null},{"type":"method","name":"set_adaptive_max_bitrate","type_name":"Player","ident":"clapper_player_set_adaptive_max_bitrate","summary":"Set maximal bitrate to select for adaptive streaming such as DASH or HLS.","deprecated":null},{"type":"method","name":"set_adaptive_min_bitrate","type_name":"Player","ident":"clapper_player_set_adaptive_min_bitrate","summary":"Set minimal bitrate to select for adaptive streaming such as DASH or HLS.","deprecated":null},{"type":"method","name":"set_adaptive_start_bitrate","type_name":"Player","ident":"clapper_player_set_adaptive_start_bitrate","summary":"Set initial bitrate to select when starting adaptive streaming such as DASH or HLS.","deprecated":null},{"type":"method","name":"set_audio_enabled","type_name":"Player","ident":"clapper_player_set_audio_enabled","summary":"Set whether enable audio stream.","deprecated":null},{"type":"method","name":"set_audio_filter","type_name":"Player","ident":"clapper_player_set_audio_filter","summary":"Set #GstElement to be used as audio filter.","deprecated":null},{"type":"method","name":"set_audio_offset","type_name":"Player","ident":"clapper_player_set_audio_offset","summary":"Set synchronisation offset between the audio stream and video. Positive values make the audio ahead of the video ...","deprecated":null},{"type":"method","name":"set_audio_sink","type_name":"Player","ident":"clapper_player_set_audio_sink","summary":"Set #GstElement to be used as audio sink.","deprecated":null},{"type":"method","name":"set_autoplay","type_name":"Player","ident":"clapper_player_set_autoplay","summary":"Set the autoplay state of the player. When autoplay is enabled, player will always try to start playback ...","deprecated":null},{"type":"method","name":"set_discovery_mode","type_name":"Discoverer","ident":"clapper_discoverer_set_discovery_mode","summary":"Set the [enum@Clapper.DiscovererDiscoveryMode] of @discoverer.","deprecated":null},{"type":"method","name":"set_download_dir","type_name":"Player","ident":"clapper_player_set_download_dir","summary":"Set a directory that @player will use to store downloads. See [property@Clapper.Player:download-enabled] description for more info how this works.","deprecated":null},{"type":"method","name":"set_download_enabled","type_name":"Player","ident":"clapper_player_set_download_enabled","summary":"Set whether player should attempt progressive download buffering. For this to actually work a [property@Clapper.Player:download-dir] must also be set.","deprecated":null},{"type":"method","name":"set_enabled","type_name":"Server","ident":"clapper_server_set_enabled","summary":"Set whether #ClapperServer should be running. Note that server feature will run only after being added to the ...","deprecated":null},{"type":"method","name":"set_expiration_date_utc","type_name":"Harvest","ident":"clapper_harvest_set_expiration_date_utc","summary":"Set date in UTC time until harvested content is expected to stay alive. This is used for harvest ...","deprecated":null},{"type":"method","name":"set_expiration_seconds","type_name":"Harvest","ident":"clapper_harvest_set_expiration_seconds","summary":"Set amount of seconds for how long harvested content is expected to stay alive. Alternative function to [method@Clapper.Harvest.set_expiration_date_utc], ...","deprecated":null},{"type":"method","name":"set_fallback_art_url","type_name":"Mpris","ident":"clapper_mpris_set_fallback_art_url","summary":"Set fallback artwork to show when media does not provide one.","deprecated":"0.10"},{"type":"method","name":"set_gapless","type_name":"Queue","ident":"clapper_queue_set_gapless","summary":"Set #ClapperQueue progression to be gapless. Gapless playback will try to re-use as much as possible of underlying ...","deprecated":null},{"type":"method","name":"set_instant","type_name":"Queue","ident":"clapper_queue_set_instant","summary":"Set #ClapperQueue media item changes to be instant. Instant will try to re-use as much as possible of ...","deprecated":null},{"type":"method","name":"set_locally","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_set_locally","summary":"Configure one or more properties which have [flags@Clapper.EnhancerParamFlags.LOCAL] flag set on the target enhancer instance. Implementations can use ...","deprecated":null},{"type":"method","name":"set_locally_with_table","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_set_locally_with_table","summary":"Same as [method@Clapper.EnhancerProxy.set_locally], but to configure uses [struct@GLib.HashTable] with string keys and [struct@GObject.Value] as their values.","deprecated":null},{"type":"method","name":"set_mute","type_name":"Player","ident":"clapper_player_set_mute","summary":"Set the mute state of the player.","deprecated":null},{"type":"method","name":"set_port","type_name":"Server","ident":"clapper_server_set_port","summary":"Set server listening port.","deprecated":null},{"type":"method","name":"set_progression_mode","type_name":"Queue","ident":"clapper_queue_set_progression_mode","summary":"Set the #ClapperQueueProgressionMode of the #ClapperQueue. Changing the mode set will alter next item selection at the end ...","deprecated":null},{"type":"method","name":"set_queue_controllable","type_name":"Mpris","ident":"clapper_mpris_set_queue_controllable","summary":"Set whether remote MPRIS clients can control #ClapperQueue. This includes ability to open new URIs, adding/removing items from ...","deprecated":"0.10"},{"type":"method","name":"set_queue_controllable","type_name":"Server","ident":"clapper_server_set_queue_controllable","summary":"Set whether remote @server clients can control [class@Clapper.Queue]. This includes ability to add/remove items from the queue and ...","deprecated":null},{"type":"method","name":"set_speed","type_name":"Player","ident":"clapper_player_set_speed","summary":"Set the speed multiplier of the player.","deprecated":null},{"type":"method","name":"set_subtitle_font_desc","type_name":"Player","ident":"clapper_player_set_subtitle_font_desc","summary":"Set Pango font description to be used for subtitle stream rendering.","deprecated":null},{"type":"method","name":"set_subtitle_offset","type_name":"Player","ident":"clapper_player_set_subtitle_offset","summary":"Set synchronisation offset between the subtitle stream and video. Positive values make the subtitles ahead of the video ...","deprecated":null},{"type":"method","name":"set_subtitles_enabled","type_name":"Player","ident":"clapper_player_set_subtitles_enabled","summary":"Set whether subtitles should be shown if any.","deprecated":null},{"type":"method","name":"set_suburi","type_name":"MediaItem","ident":"clapper_media_item_set_suburi","summary":"Set the additional URI of #ClapperMediaItem. This is typically used to add an external subtitles URI to the @item.","deprecated":null},{"type":"method","name":"set_target_creation_allowed","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_set_target_creation_allowed","summary":"Set whether to allow instances of proxy target to be created. See [property@Clapper.EnhancerProxy:target-creation-allowed] for detailed descripton what this does.","deprecated":null},{"type":"method","name":"set_video_enabled","type_name":"Player","ident":"clapper_player_set_video_enabled","summary":"Set whether enable video stream.","deprecated":null},{"type":"method","name":"set_video_filter","type_name":"Player","ident":"clapper_player_set_video_filter","summary":"Set #GstElement to be used as video filter.","deprecated":null},{"type":"method","name":"set_video_sink","type_name":"Player","ident":"clapper_player_set_video_sink","summary":"Set #GstElement to be used as video sink.","deprecated":null},{"type":"method","name":"set_volume","type_name":"Player","ident":"clapper_player_set_volume","summary":"Set the volume of the player. The value should be within 0 - 2.0 range, where 1.0 is ...","deprecated":null},{"type":"method","name":"steal_index","type_name":"Queue","ident":"clapper_queue_steal_index","summary":"Removes #ClapperMediaItem at @index from the queue.","deprecated":null},{"type":"method","name":"stop","type_name":"Player","ident":"clapper_player_stop","summary":"Stop the playback of current media item. This function will queue a request for the underlaying #GStreamer pipeline ...","deprecated":null},{"type":"method","name":"tags_add","type_name":"Harvest","ident":"clapper_harvest_tags_add","summary":"Append one or more tags into the tag list. Variable arguments should be in the form of tag ...","deprecated":null},{"type":"method","name":"tags_add_value","type_name":"Harvest","ident":"clapper_harvest_tags_add_value","summary":"Append another tag into the tag list using #GValue.","deprecated":null},{"type":"method","name":"target_has_interface","type_name":"EnhancerProxy","ident":"clapper_enhancer_proxy_target_has_interface","summary":"A convenience function to check if target enhancer implements given interface. This works only with Clapper specific interfaces ...","deprecated":null},{"type":"method","name":"toc_add","type_name":"Harvest","ident":"clapper_harvest_toc_add","summary":"Append a chapter or track name into table of contents.","deprecated":null},{"type":"property","name":"adaptive-bandwidth","type_name":"Player","summary":"Last fragment download bandwidth (bits/s) during adaptive streaming. This property only changes when adaptive streaming and later stays ...","deprecated":null},{"type":"property","name":"adaptive-max-bitrate","type_name":"Player","summary":"A maximal allowed bitrate (bits/s) during adaptive streaming such as DASH or HLS (`0` for unlimited). Setting this ...","deprecated":null},{"type":"property","name":"adaptive-min-bitrate","type_name":"Player","summary":"A minimal allowed bitrate (bits/s) during adaptive streaming such as DASH or HLS. Setting this will prevent streaming ...","deprecated":null},{"type":"property","name":"adaptive-start-bitrate","type_name":"Player","summary":"An initial bitrate (bits/s) to select during starting adaptive streaming such as DASH or HLS. If value is ...","deprecated":null},{"type":"property","name":"audio-enabled","type_name":"Player","summary":"Whether audio stream is enabled.","deprecated":null},{"type":"property","name":"audio-filter","type_name":"Player","summary":"Optional audio filter to use (none by default).","deprecated":null},{"type":"property","name":"audio-offset","type_name":"Player","summary":"Audio stream offset relative to video.","deprecated":null},{"type":"property","name":"audio-sink","type_name":"Player","summary":"Audio sink to use (autoaudiosink by default).","deprecated":null},{"type":"property","name":"audio-streams","type_name":"Player","summary":"List of currently available audio streams.","deprecated":null},{"type":"property","name":"autoplay","type_name":"Player","summary":"Always try to start playback after media item changes.","deprecated":null},{"type":"property","name":"bitrate","type_name":"AudioStream","summary":"Stream bitrate.","deprecated":null},{"type":"property","name":"bitrate","type_name":"VideoStream","summary":"Stream bitrate.","deprecated":null},{"type":"property","name":"cache-location","type_name":"MediaItem","summary":"Media downloaded cache file location.","deprecated":null},{"type":"property","name":"channels","type_name":"AudioStream","summary":"Stream number of audio channels.","deprecated":null},{"type":"property","name":"codec","type_name":"AudioStream","summary":"Stream codec.","deprecated":null},{"type":"property","name":"codec","type_name":"VideoStream","summary":"Stream codec.","deprecated":null},{"type":"property","name":"container-format","type_name":"MediaItem","summary":"Media container format.","deprecated":"0.10"},{"type":"property","name":"current-audio-decoder","type_name":"Player","summary":"Currently used audio decoder.","deprecated":null},{"type":"property","name":"current-index","type_name":"Queue","summary":"Index of currently selected media item for playback.","deprecated":null},{"type":"property","name":"current-index","type_name":"StreamList","summary":"Index of currently selected stream.","deprecated":null},{"type":"property","name":"current-item","type_name":"Queue","summary":"Currently selected media item for playback.","deprecated":null},{"type":"property","name":"current-port","type_name":"Server","summary":"Port on which server is currently listening on or 0 if not listening.","deprecated":null},{"type":"property","name":"current-stream","type_name":"StreamList","summary":"Currently selected stream.","deprecated":null},{"type":"property","name":"current-video-decoder","type_name":"Player","summary":"Currently used video decoder.","deprecated":null},{"type":"property","name":"description","type_name":"EnhancerProxy","summary":"Description from enhancer plugin info file.","deprecated":null},{"type":"property","name":"desktop-entry","type_name":"Mpris","summary":"The basename of an installed .desktop file with the \".desktop\" extension stripped.","deprecated":"0.10"},{"type":"property","name":"discovery-mode","type_name":"Discoverer","summary":"Discoverer discovery mode.","deprecated":null},{"type":"property","name":"download-dir","type_name":"Player","summary":"A directory that @player will use to download network content when [property@Clapper.Player:download-enabled] is set to %TRUE. If directory ...","deprecated":null},{"type":"property","name":"download-enabled","type_name":"Player","summary":"Whether progressive download buffering is enabled. If progressive download is enabled and [property@Clapper.Player:download-dir] is set, streamed network content ...","deprecated":null},{"type":"property","name":"duration","type_name":"MediaItem","summary":"Media duration as a decimal number in seconds. This might be a different value compared to `duration` from ...","deprecated":null},{"type":"property","name":"enabled","type_name":"Server","summary":"Whether server is enabled.","deprecated":null},{"type":"property","name":"end","type_name":"Marker","summary":"Ending time of marker.","deprecated":null},{"type":"property","name":"enhancer-proxies","type_name":"Player","summary":"List of available enhancers in the form of [class@Clapper.EnhancerProxy] objects. Use these to inspect available enhancers on the ...","deprecated":null},{"type":"property","name":"fallback-art-url","type_name":"Mpris","summary":"Fallback artwork to show when media does not provide one.","deprecated":"0.10"},{"type":"property","name":"fps","type_name":"VideoStream","summary":"Stream FPS.","deprecated":null},{"type":"property","name":"friendly-name","type_name":"EnhancerProxy","summary":"Name from enhancer plugin info file.","deprecated":null},{"type":"property","name":"gapless","type_name":"Queue","summary":"Use gapless progression.","deprecated":null},{"type":"property","name":"height","type_name":"VideoStream","summary":"Stream height.","deprecated":null},{"type":"property","name":"id","type_name":"MediaItem","summary":"Media Item ID.","deprecated":null},{"type":"property","name":"identity","type_name":"Mpris","summary":"A friendly name to identify the media player. Example: \"My Player\"","deprecated":"0.10"},{"type":"property","name":"instant","type_name":"Queue","summary":"Use instant media item changes.","deprecated":null},{"type":"property","name":"lang-code","type_name":"AudioStream","summary":"Stream language code in ISO-639 format.","deprecated":null},{"type":"property","name":"lang-code","type_name":"SubtitleStream","summary":"Stream language code in ISO-639 format.","deprecated":null},{"type":"property","name":"lang-name","type_name":"AudioStream","summary":"Stream language name.","deprecated":null},{"type":"property","name":"lang-name","type_name":"SubtitleStream","summary":"Stream language name.","deprecated":null},{"type":"property","name":"marker-type","type_name":"Marker","summary":"Type of stream.","deprecated":null},{"type":"property","name":"module-dir","type_name":"EnhancerProxy","summary":"Module directory.","deprecated":null},{"type":"property","name":"module-name","type_name":"EnhancerProxy","summary":"Module name from enhancer plugin info file.","deprecated":null},{"type":"property","name":"mute","type_name":"Player","summary":"Mute audio without changing volume.","deprecated":null},{"type":"property","name":"n-items","type_name":"Queue","summary":"Number of media items in the queue.","deprecated":null},{"type":"property","name":"n-markers","type_name":"Timeline","summary":"Number of markers in the timeline.","deprecated":null},{"type":"property","name":"n-proxies","type_name":"EnhancerProxyList","summary":"Number of proxies in the list.","deprecated":null},{"type":"property","name":"n-streams","type_name":"StreamList","summary":"Number of streams in the list.","deprecated":null},{"type":"property","name":"own-name","type_name":"Mpris","summary":"DBus name to own on connection. Must be written as a reverse DNS format starting with \"org.mpris.MediaPlayer2.\" prefix. ...","deprecated":"0.10"},{"type":"property","name":"pixel-format","type_name":"VideoStream","summary":"Stream pixel format.","deprecated":null},{"type":"property","name":"port","type_name":"Server","summary":"Port to listen on or 0 for using random unused port.","deprecated":null},{"type":"property","name":"position","type_name":"Player","summary":"Current playback position as a decimal number in seconds.","deprecated":null},{"type":"property","name":"progression-mode","type_name":"Queue","summary":"Queue progression mode.","deprecated":null},{"type":"property","name":"queue","type_name":"Player","summary":"Clapper playback queue.","deprecated":null},{"type":"property","name":"queue-controllable","type_name":"Mpris","summary":"Whether remote MPRIS clients can control #ClapperQueue.","deprecated":"0.10"},{"type":"property","name":"queue-controllable","type_name":"Server","summary":"Whether remote server clients can control #ClapperQueue.","deprecated":null},{"type":"property","name":"running","type_name":"Server","summary":"Whether server is currently running.","deprecated":null},{"type":"property","name":"sample-format","type_name":"AudioStream","summary":"Stream sample format.","deprecated":null},{"type":"property","name":"sample-rate","type_name":"AudioStream","summary":"Stream sample rate (in Hz).","deprecated":null},{"type":"property","name":"speed","type_name":"Player","summary":"Current playback speed.","deprecated":null},{"type":"property","name":"start","type_name":"Marker","summary":"Starting time of marker.","deprecated":null},{"type":"property","name":"state","type_name":"Player","summary":"Current playback state.","deprecated":null},{"type":"property","name":"stream-type","type_name":"Stream","summary":"Type of stream.","deprecated":null},{"type":"property","name":"subtitle-font-desc","type_name":"Player","summary":"Subtitle stream font description.","deprecated":null},{"type":"property","name":"subtitle-offset","type_name":"Player","summary":"Subtitle stream offset relative to video.","deprecated":null},{"type":"property","name":"subtitle-streams","type_name":"Player","summary":"List of currently available subtitle streams.","deprecated":null},{"type":"property","name":"subtitles-enabled","type_name":"Player","summary":"Whether subtitles stream is enabled.","deprecated":null},{"type":"property","name":"suburi","type_name":"MediaItem","summary":"Media additional URI.","deprecated":null},{"type":"property","name":"tags","type_name":"MediaItem","summary":"A readable list of tags stored in media item.","deprecated":null},{"type":"property","name":"target-creation-allowed","type_name":"EnhancerProxy","summary":"Whether to allow instances of proxy target to be created. This effectively means whether the given enhancer can ...","deprecated":null},{"type":"property","name":"timeline","type_name":"MediaItem","summary":"Media timeline.","deprecated":null},{"type":"property","name":"title","type_name":"Marker","summary":"Title of marker.","deprecated":null},{"type":"property","name":"title","type_name":"MediaItem","summary":"Media title. This might be a different string compared to `title` from [property@Clapper.MediaItem:tags], as this gives parsed title ...","deprecated":null},{"type":"property","name":"title","type_name":"Stream","summary":"Title of stream.","deprecated":null},{"type":"property","name":"uri","type_name":"MediaItem","summary":"Media URI.","deprecated":null},{"type":"property","name":"version","type_name":"EnhancerProxy","summary":"Version from enhancer plugin info file.","deprecated":null},{"type":"property","name":"video-enabled","type_name":"Player","summary":"Whether video stream is enabled.","deprecated":null},{"type":"property","name":"video-filter","type_name":"Player","summary":"Optional video filter to use (none by default).","deprecated":null},{"type":"property","name":"video-sink","type_name":"Player","summary":"Video sink to use (autovideosink by default).","deprecated":null},{"type":"property","name":"video-streams","type_name":"Player","summary":"List of currently available video streams.","deprecated":null},{"type":"property","name":"volume","type_name":"Player","summary":"Current volume as a decimal number (1.0 = 100%). Note that #ClapperPlayer uses a CUBIC volume scale, meaning ...","deprecated":null},{"type":"property","name":"width","type_name":"VideoStream","summary":"Stream width.","deprecated":null},{"type":"signal","name":"download-complete","type_name":"Player","summary":"Media was fully downloaded to local cache directory. This signal will be only emitted when progressive download buffering is ...","deprecated":null},{"type":"signal","name":"error","type_name":"Player","summary":"These are normal error messages. Upon emitting this signal, playback will stop due to the error.","deprecated":null},{"type":"signal","name":"error","type_name":"Server","summary":"Error signal when server could not start. This will be emitted from application main thread.","deprecated":null},{"type":"signal","name":"message","type_name":"Player","summary":"Allows for applications to receive element messages posted on the underlaying pipeline bus. This is a detailed signal. ...","deprecated":null},{"type":"signal","name":"missing-plugin","type_name":"Player","summary":"A #GStreamer plugin or one of its features needed for playback is missing. The @description and @installer_detail can ...","deprecated":null},{"type":"signal","name":"seek-done","type_name":"Player","summary":"A seeking operation has finished. Player is now at playback position after seek.","deprecated":null},{"type":"signal","name":"warning","type_name":"Player","summary":"These are some usually more minor error messages that should be treated like warnings. Should not generally prevent/stop playback.","deprecated":null},{"type":"vfunc","name":"extract","type_name":"Extractable","summary":"Extract data and fill harvest.","deprecated":null},{"type":"vfunc","name":"internal_stream_updated","type_name":"Stream","summary":"This function is called when internal #GstStream gets updated. Meant for internal usage only. Used for subclasses to update ...","deprecated":null},{"type":"vfunc","name":"item_updated","type_name":"Feature","summary":"An item in queue got updated. This might be (or not) currently played item. Implementations can get parent player ...","deprecated":null},{"type":"vfunc","name":"item_updated","type_name":"Reactable","summary":"An item in queue got updated. This might be (or not) currently played item. Implementations can compare it ...","deprecated":null},{"type":"vfunc","name":"mute_changed","type_name":"Feature","summary":"Player mute state was changed.","deprecated":null},{"type":"vfunc","name":"mute_changed","type_name":"Reactable","summary":"Player mute state changed.","deprecated":null},{"type":"vfunc","name":"parse","type_name":"Playlistable","summary":"Parse @bytes and fill @playlist with [class@Clapper.MediaItem] objects. If implementation returns %FALSE, whole @playlist content will be discarded.","deprecated":null},{"type":"vfunc","name":"played_item_changed","type_name":"Feature","summary":"New media item started playing. All following events (such as position changes) will be related to this @item from ...","deprecated":null},{"type":"vfunc","name":"played_item_changed","type_name":"Reactable","summary":"New media item started playing. All following events (such as position changes) will be related to this @item from ...","deprecated":null},{"type":"vfunc","name":"position_changed","type_name":"Feature","summary":"Player position was changed.","deprecated":null},{"type":"vfunc","name":"position_changed","type_name":"Reactable","summary":"Player position changed.","deprecated":null},{"type":"vfunc","name":"prepare","type_name":"Feature","summary":"Prepare feature for operation (optional). This is different from init() as its called from features thread once feature ...","deprecated":null},{"type":"vfunc","name":"property_changed","type_name":"Feature","summary":"A property of @feature changed its value. Useful for reconfiguring @feature, since unlike \"notify\" signal this is always ...","deprecated":null},{"type":"vfunc","name":"queue_cleared","type_name":"Feature","summary":"All items were removed from queue. Note that in such event @queue_item_removed will NOT be called for each item ...","deprecated":null},{"type":"vfunc","name":"queue_cleared","type_name":"Reactable","summary":"All items were removed from queue. Note that in such event [vfunc@Clapper.Reactable.queue_item_removed] will NOT be called for each ...","deprecated":null},{"type":"vfunc","name":"queue_item_added","type_name":"Feature","summary":"An item was added to the queue.","deprecated":null},{"type":"vfunc","name":"queue_item_added","type_name":"Reactable","summary":"An item was added to the queue.","deprecated":null},{"type":"vfunc","name":"queue_item_removed","type_name":"Feature","summary":"An item was removed from queue.","deprecated":null},{"type":"vfunc","name":"queue_item_removed","type_name":"Reactable","summary":"An item was removed from queue. Implementations that are interested in queue items removal should also implement [vfunc@Clapper.Reactable.queue_cleared].","deprecated":null},{"type":"vfunc","name":"queue_item_repositioned","type_name":"Feature","summary":"An item changed position within queue.","deprecated":null},{"type":"vfunc","name":"queue_item_repositioned","type_name":"Reactable","summary":"An item changed position within queue.","deprecated":null},{"type":"vfunc","name":"queue_progression_changed","type_name":"Feature","summary":"Progression mode of the queue was changed.","deprecated":null},{"type":"vfunc","name":"queue_progression_changed","type_name":"Reactable","summary":"Progression mode of the queue was changed.","deprecated":null},{"type":"vfunc","name":"speed_changed","type_name":"Feature","summary":"Player speed was changed.","deprecated":null},{"type":"vfunc","name":"speed_changed","type_name":"Reactable","summary":"Player speed changed.","deprecated":null},{"type":"vfunc","name":"state_changed","type_name":"Feature","summary":"Player state was changed.","deprecated":null},{"type":"vfunc","name":"state_changed","type_name":"Reactable","summary":"Player state changed.","deprecated":null},{"type":"vfunc","name":"thread_start","type_name":"ThreadedObject","summary":"Called right after thread started. Useful for initializing objects that work within this new thread.","deprecated":null},{"type":"vfunc","name":"thread_stop","type_name":"ThreadedObject","summary":"Called when thread is going to stop. Useful for cleanup of things created on thread start.","deprecated":null},{"type":"vfunc","name":"unprepare","type_name":"Feature","summary":"Revert the changes done in @prepare (optional).","deprecated":null},{"type":"vfunc","name":"volume_changed","type_name":"Feature","summary":"Player volume was changed.","deprecated":null},{"type":"vfunc","name":"volume_changed","type_name":"Reactable","summary":"Player volume changed.","deprecated":null}],"terms":{}}
\ No newline at end of file
diff --git a/doc/clapper/migrating-to-010.html b/doc/clapper/migrating-to-010.html
new file mode 100644
index 00000000..7a2582de
--- /dev/null
+++ b/doc/clapper/migrating-to-010.html
@@ -0,0 +1,159 @@
+
+
+
+
+
+ Clapper – 0.0: Migrating to Clapper 0.10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Old ClapperFeature objects (including mpris, discoverer and server) are left for compatibility
+reasons, but all apps using them are advised to migrate to enhancer plugins which already surpassed former
+ones in what can be achieved with them.
+
Since these are now in the form of plugins scanned during init, one of the differences is that you now check
+their availablity at runtime instead of compile time like before.
ClapperPlaylistable is an interface to implement playlist parsers.
+Allows to expand Clapper library with an ability to read data from which one
+or more media items should be created.
+
To load playlist within Clapper, just create a new media item which has an URI
+leading to data that playlistable enhancer will act upon. After parsing, that item
+will be merged with first parsed item and the rest will be inserted into queue after
+its position.
+
Essentially, such enhancer inserts items from a playlist into playback queue upon
+which Clapper operates. It can also handle nested playlits (a playlist URI within
+another playlist) with unlimited amount of nested levels.
X-Data-Prefix - describe text that data should start with
+
X-Data-Contains - data must contain given phrase
+
X-Data-Regex - regular expression to run on data
+
+
These are used by typefinder to determine whether given data is a playlist for
+this enhancer to handle. At least one of the above must be added to plugin info file.
When Clapper.PlaylistableInterface.parse is called, an empty GListStore is
+passed as this function argument. Implementation is responsible for parsing data, creating
+ClapperMediaItem objects and adding them to that list store. While doing so, it
+can also populate each media item tags, timeline markers and/or set subtitle URI.
ClapperReactable is an interface to implement enhancers that react to the
+playback and/or events that should influence it.
+
Such enhancer can work not only in a way that triggers external actions due to some
+playback events, but also in reverse - alters playback or its queue due to some
+external event. It can do so by getting a hold of the player that given enhancer
+instance reacts to with clapper_reactable_get_player().