Commit 1fdcf483 authored by Sebastian Dröge's avatar Sebastian Dröge 🍵

Add -sys bindings for GStreamer base, audio, video, tag, pbutils

parent 235840cf
[workspace]
members = ["gstreamer-sys"]
members = [
"gstreamer-sys",
"gstreamer-base-sys",
"gstreamer-tag-sys",
"gstreamer-audio-sys",
"gstreamer-video-sys",
"gstreamer-pbutils-sys",
]
[options]
girs_dir = "gir-files"
library = "GstAudio"
version = "1.0"
min_cfg_version = "1.0"
target_path = "gstreamer-audio-sys"
work_mode = "sys"
external_libraries = [
"GLib",
"GObject",
"Gst",
"GstBase",
"GstTag",
]
[options]
girs_dir = "gir-files"
library = "GstBase"
version = "1.0"
min_cfg_version = "1.0"
target_path = "gstreamer-base-sys"
work_mode = "sys"
external_libraries = [
"GLib",
"GObject",
"Gst",
]
[options]
girs_dir = "gir-files"
library = "GstPbutils"
version = "1.0"
min_cfg_version = "1.0"
target_path = "gstreamer-pbutils-sys"
work_mode = "sys"
external_libraries = [
"GLib",
"GObject",
"Gst",
"GstTag",
"GstAudio",
"GstVideo",
]
[options]
girs_dir = "gir-files"
library = "GstTag"
version = "1.0"
min_cfg_version = "1.0"
target_path = "gstreamer-tag-sys"
work_mode = "sys"
external_libraries = [
"GLib",
"GObject",
"Gst",
"GstBase",
]
[options]
girs_dir = "gir-files"
library = "GstVideo"
version = "1.0"
min_cfg_version = "1.0"
target_path = "gstreamer-video-sys"
work_mode = "sys"
external_libraries = [
"GLib",
"GObject",
"Gst",
"GstBase",
]
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations. -->
<repository version="1.2"
xmlns="http://www.gtk.org/introspection/core/1.0"
xmlns:c="http://www.gtk.org/introspection/c/1.0"
xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
<include name="Gst" version="1.0"/>
<include name="GstBase" version="1.0"/>
<package name="gstreamer-tag-1.0"/>
<c:include name="gst/tag/tag.h"/>
<namespace name="GstTag"
version="1.0"
shared-library="libgsttag-1.0.so.0"
c:identifier-prefixes="Gst"
c:symbol-prefixes="gst">
<constant name="TAG_CAPTURING_CONTRAST"
value="capturing-contrast"
c:type="GST_TAG_CAPTURING_CONTRAST">
<doc xml:space="preserve">Direction of contrast processing applied when capturing an image. (string)
The allowed values are:
"normal"
"soft"
"hard"</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_DIGITAL_ZOOM_RATIO"
value="capturing-digital-zoom-ratio"
c:type="GST_TAG_CAPTURING_DIGITAL_ZOOM_RATIO">
<doc xml:space="preserve">Digital zoom ratio used when capturing an image. (double)</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_EXPOSURE_COMPENSATION"
value="capturing-exposure-compensation"
c:type="GST_TAG_CAPTURING_EXPOSURE_COMPENSATION">
<doc xml:space="preserve">Exposure compensation using when capturing an image in EV. (double)</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_EXPOSURE_MODE"
value="capturing-exposure-mode"
c:type="GST_TAG_CAPTURING_EXPOSURE_MODE">
<doc xml:space="preserve">Exposure mode used when capturing an image. (string)
The allowed values are:
"auto-exposure"
"manual-exposure"
"auto-bracket"</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_EXPOSURE_PROGRAM"
value="capturing-exposure-program"
c:type="GST_TAG_CAPTURING_EXPOSURE_PROGRAM">
<doc xml:space="preserve">Type of exposure control used when capturing an image. (string)
The allowed values are:
"undefined"
"manual"
"normal" - automatically controlled
"aperture-priority" - user selects aperture value
"shutter-priority" - user selects shutter speed
"creative" - biased towards depth of field
"action" - biased towards fast shutter speed
"portrait" - closeup, leaving background out of focus
"landscape" - landscape photos, background in focus</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_FLASH_FIRED"
value="capturing-flash-fired"
c:type="GST_TAG_CAPTURING_FLASH_FIRED">
<doc xml:space="preserve">If flash was fired during the capture of an image. (boolean)
Note that if this tag isn't present, it should not be assumed that
the flash did not fire. It should be treated as unknown.</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_FLASH_MODE"
value="capturing-flash-mode"
c:type="GST_TAG_CAPTURING_FLASH_MODE">
<doc xml:space="preserve">The flash mode selected during the capture of an image. (string)
The allowed values are:
"auto"
"always"
"never"</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_FOCAL_LENGTH"
value="capturing-focal-length"
c:type="GST_TAG_CAPTURING_FOCAL_LENGTH">
<doc xml:space="preserve">Focal length used when capturing an image, in mm. (double)</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_FOCAL_LENGTH_35_MM"
value="capturing-focal-length-35mm"
c:type="GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM"
version="1.10">
<doc xml:space="preserve">35 mm equivalent focal length used when capturing an image, in mm. (double)</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_FOCAL_RATIO"
value="capturing-focal-ratio"
c:type="GST_TAG_CAPTURING_FOCAL_RATIO">
<doc xml:space="preserve">Focal ratio (f-number) used when capturing an image. (double)
The value stored is the denominator of the focal ratio (f-number).
For example, if this tag value is 2, the focal ratio is f/2.</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_GAIN_ADJUSTMENT"
value="capturing-gain-adjustment"
c:type="GST_TAG_CAPTURING_GAIN_ADJUSTMENT">
<doc xml:space="preserve">Gain adjustment applied to an image. (string)
The allowed values are:
"none"
"low-gain-up"
"high-gain-up"
"low-gain-down"
"high-gain-down"</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_ISO_SPEED"
value="capturing-iso-speed"
c:type="GST_TAG_CAPTURING_ISO_SPEED">
<doc xml:space="preserve">ISO speed used when capturing an image. (integer)</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_METERING_MODE"
value="capturing-metering-mode"
c:type="GST_TAG_CAPTURING_METERING_MODE">
<doc xml:space="preserve">Defines the way a camera determines the exposure. (string)
The allowed values are:
"unknown"
"average"
"center-weighted-average"
"spot"
"multi-spot"
"pattern"
"partial"
"other"</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_SATURATION"
value="capturing-saturation"
c:type="GST_TAG_CAPTURING_SATURATION">
<doc xml:space="preserve">Direction of saturation processing applied when capturing an image. (string)
The allowed values are:
"normal"
"low-saturation"
"high-saturation"</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_SCENE_CAPTURE_TYPE"
value="capturing-scene-capture-type"
c:type="GST_TAG_CAPTURING_SCENE_CAPTURE_TYPE">
<doc xml:space="preserve">Scene mode used when capturing an image. (string)
The allowed values are:
"standard"
"landscape"
"portrait"
"night-scene"</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_SHARPNESS"
value="capturing-sharpness"
c:type="GST_TAG_CAPTURING_SHARPNESS">
<doc xml:space="preserve">Direction of sharpness processing applied when capturing an image. (string)
The allowed values are:
"normal"
"soft"
"hard"</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_SHUTTER_SPEED"
value="capturing-shutter-speed"
c:type="GST_TAG_CAPTURING_SHUTTER_SPEED">
<doc xml:space="preserve">Shutter speed used when capturing an image, in seconds. (fraction)</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_SOURCE"
value="capturing-source"
c:type="GST_TAG_CAPTURING_SOURCE">
<doc xml:space="preserve">Indicates the source of capture. The device/medium used to do the
capture. (string)
Allowed values are:
"dsc" (= digital still camera)
"transparent-scanner"
"reflex-scanner"
"other"</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CAPTURING_WHITE_BALANCE"
value="capturing-white-balance"
c:type="GST_TAG_CAPTURING_WHITE_BALANCE">
<doc xml:space="preserve">White balance mode used when capturing an image. (string)
The allowed values are:
"auto"
"manual"
"daylight"
"cloudy"
"tungsten"
"fluorescent"
"fluorescent h" (newer daylight-calibrated fluorescents)
"flash"</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CDDA_CDDB_DISCID"
value="discid"
c:type="GST_TAG_CDDA_CDDB_DISCID">
<doc xml:space="preserve">CDDB disc id in its short form (e.g. 'aa063d0f')</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CDDA_CDDB_DISCID_FULL"
value="discid-full"
c:type="GST_TAG_CDDA_CDDB_DISCID_FULL">
<doc xml:space="preserve">CDDB disc id including all details</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CDDA_MUSICBRAINZ_DISCID"
value="musicbrainz-discid"
c:type="GST_TAG_CDDA_MUSICBRAINZ_DISCID">
<doc xml:space="preserve">Musicbrainz disc id (e.g. 'ahg7JUcfR3vCYBphSDIogOOWrr0-')</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CDDA_MUSICBRAINZ_DISCID_FULL"
value="musicbrainz-discid-full"
c:type="GST_TAG_CDDA_MUSICBRAINZ_DISCID_FULL">
<doc xml:space="preserve">Musicbrainz disc id details</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CMML_CLIP"
value="cmml-clip"
c:type="GST_TAG_CMML_CLIP">
<doc xml:space="preserve">Annodex CMML clip element tag</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CMML_HEAD"
value="cmml-head"
c:type="GST_TAG_CMML_HEAD">
<doc xml:space="preserve">Annodex CMML head element tag</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_CMML_STREAM"
value="cmml-stream"
c:type="GST_TAG_CMML_STREAM">
<doc xml:space="preserve">Annodex CMML stream element tag</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_ID3V2_HEADER_SIZE"
value="10"
c:type="GST_TAG_ID3V2_HEADER_SIZE">
<doc xml:space="preserve">ID3V2 header size considered minimum input for some functions such as
gst_tag_list_from_id3v2_tag() and gst_tag_get_id3v2_tag_size() for example.</doc>
<type name="gint" c:type="gint"/>
</constant>
<constant name="TAG_IMAGE_HORIZONTAL_PPI"
value="image-horizontal-ppi"
c:type="GST_TAG_IMAGE_HORIZONTAL_PPI">
<doc xml:space="preserve">Media (image/video) intended horizontal pixel density in ppi. (double)</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_IMAGE_VERTICAL_PPI"
value="image-vertical-ppi"
c:type="GST_TAG_IMAGE_VERTICAL_PPI">
<doc xml:space="preserve">Media (image/video) intended vertical pixel density in ppi. (double)</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_MUSICAL_KEY"
value="musical-key"
c:type="GST_TAG_MUSICAL_KEY"
version="1.2">
<doc xml:space="preserve">Musical key in which the sound starts. It is represented as a string
with a maximum length of three characters. The ground keys are
represented with "A","B","C","D","E", "F" and "G" and halfkeys
represented with "b" and "#". Minor is represented as "m" (e.g. "Dbm").
Off key is represented with an "o" only.
This notation might be extended in the future to support non-minor/major
keys.</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_MUSICBRAINZ_ALBUMARTISTID"
value="musicbrainz-albumartistid"
c:type="GST_TAG_MUSICBRAINZ_ALBUMARTISTID">
<doc xml:space="preserve">MusicBrainz album artist ID</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_MUSICBRAINZ_ALBUMID"
value="musicbrainz-albumid"
c:type="GST_TAG_MUSICBRAINZ_ALBUMID">
<doc xml:space="preserve">MusicBrainz album ID</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_MUSICBRAINZ_ARTISTID"
value="musicbrainz-artistid"
c:type="GST_TAG_MUSICBRAINZ_ARTISTID">
<doc xml:space="preserve">MusicBrainz artist ID</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_MUSICBRAINZ_TRACKID"
value="musicbrainz-trackid"
c:type="GST_TAG_MUSICBRAINZ_TRACKID">
<doc xml:space="preserve">MusicBrainz track ID</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<constant name="TAG_MUSICBRAINZ_TRMID"
value="musicbrainz-trmid"
c:type="GST_TAG_MUSICBRAINZ_TRMID">
<doc xml:space="preserve">MusicBrainz track TRM ID</doc>
<type name="utf8" c:type="gchar*"/>
</constant>
<class name="TagDemux"
c:symbol-prefix="tag_demux"
c:type="GstTagDemux"
parent="Gst.Element"
abstract="1"
glib:type-name="GstTagDemux"
glib:get-type="gst_tag_demux_get_type"
glib:type-struct="TagDemuxClass">
<doc xml:space="preserve">Provides a base class for demuxing tags at the beginning or end of a
stream and handles things like typefinding, querying, seeking, and
different modes of operation (chain-based, pull_range-based, and providing
downstream elements with random access if upstream supports that). The tag
is stripped from the output, and all offsets are adjusted for the tag
sizes, so that to the downstream element the stream will appear as if
there was no tag at all. Also, once the tag has been parsed, GstTagDemux
will try to determine the media type of the resulting stream and add a
source pad with the appropriate caps in order to facilitate auto-plugging.
## Deriving from GstTagDemux
Subclasses have to do four things:
* In their base init function, they must add a pad template for the sink
pad to the element class, describing the media type they can parse in
the caps of the pad template.
* In their class init function, they must override
GST_TAG_DEMUX_CLASS(demux_klass)-&gt;identify_tag with their own identify
function.
* In their class init function, they must override
GST_TAG_DEMUX_CLASS(demux_klass)-&gt;parse_tag with their own parse
function.
* In their class init function, they must also set
GST_TAG_DEMUX_CLASS(demux_klass)-&gt;min_start_size and/or
GST_TAG_DEMUX_CLASS(demux_klass)-&gt;min_end_size to the minimum size required
for the identify function to decide whether the stream has a supported tag
or not. A class parsing ID3v1 tags, for example, would set min_end_size to
128 bytes.</doc>
<virtual-method name="identify_tag">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="demux" transfer-ownership="none">
<type name="TagDemux" c:type="GstTagDemux*"/>
</instance-parameter>
<parameter name="buffer" transfer-ownership="none">
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="start_tag" transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</parameter>
<parameter name="tag_size" transfer-ownership="none">
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="merge_tags">
<return-value transfer-ownership="full">
<type name="Gst.TagList" c:type="GstTagList*"/>
</return-value>
<parameters>
<instance-parameter name="demux" transfer-ownership="none">
<type name="TagDemux" c:type="GstTagDemux*"/>
</instance-parameter>
<parameter name="start_tags" transfer-ownership="none">
<type name="Gst.TagList" c:type="const GstTagList*"/>
</parameter>
<parameter name="end_tags" transfer-ownership="none">
<type name="Gst.TagList" c:type="const GstTagList*"/>
</parameter>
</parameters>
</virtual-method>
<virtual-method name="parse_tag">
<return-value transfer-ownership="none">
<type name="TagDemuxResult" c:type="GstTagDemuxResult"/>
</return-value>
<parameters>
<instance-parameter name="demux" transfer-ownership="none">
<type name="TagDemux" c:type="GstTagDemux*"/>
</instance-parameter>
<parameter name="buffer" transfer-ownership="none">
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="start_tag" transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</parameter>
<parameter name="tag_size" transfer-ownership="none">
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="tags" transfer-ownership="none">
<type name="Gst.TagList" c:type="GstTagList**"/>
</parameter>
</parameters>
</virtual-method>
<field name="element">
<doc xml:space="preserve">parent element</doc>
<type name="Gst.Element" c:type="GstElement"/>
</field>
<field name="priv" readable="0" private="1">
<type name="TagDemuxPrivate" c:type="GstTagDemuxPrivate*"/>
</field>
<field name="reserved" readable="0" private="1">
<array zero-terminated="0" c:type="gpointer" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</class>
<record name="TagDemuxClass"
c:type="GstTagDemuxClass"
glib:is-gtype-struct-for="TagDemux">
<doc xml:space="preserve">The #GstTagDemuxClass structure. See documentation at beginning of section
for details about what subclasses need to override and do.</doc>
<field name="parent_class">
<doc xml:space="preserve">the parent class.</doc>
<type name="Gst.ElementClass" c:type="GstElementClass"/>
</field>
<field name="min_start_size">
<doc xml:space="preserve">minimum size required to identify a tag at the start and
determine its total size. Set to 0 if not interested in start tags.
Subclasses should set this in their class_init function.</doc>
<type name="guint" c:type="guint"/>
</field>
<field name="min_end_size">
<doc xml:space="preserve">minimum size required to identify a tag at the end and
determine its total size. Set to 0 if not interested in end tags.
Subclasses should set this in their class_init function.</doc>
<type name="guint" c:type="guint"/>
</field>
<field name="identify_tag">
<callback name="identify_tag">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="demux" transfer-ownership="none">
<type name="TagDemux" c:type="GstTagDemux*"/>
</parameter>
<parameter name="buffer" transfer-ownership="none">
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="start_tag" transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</parameter>
<parameter name="tag_size" transfer-ownership="none">
<type name="guint" c:type="guint*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="parse_tag">
<callback name="parse_tag">
<return-value transfer-ownership="none">
<type name="TagDemuxResult" c:type="GstTagDemuxResult"/>
</return-value>
<parameters>
<parameter name="demux" transfer-ownership="none">
<type name="TagDemux" c:type="GstTagDemux*"/>
</parameter>
<parameter name="buffer" transfer-ownership="none">
<type name="Gst.Buffer" c:type="GstBuffer*"/>
</parameter>
<parameter name="start_tag" transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</parameter>
<parameter name="tag_size" transfer-ownership="none">
<type name="guint" c:type="guint*"/>
</parameter>
<parameter name="tags" transfer-ownership="none">
<type name="Gst.TagList" c:type="GstTagList**"/>
</parameter>
</parameters>
</callback>
</field>
<field name="merge_tags">
<callback name="merge_tags">
<return-value transfer-ownership="full">
<type name="Gst.TagList" c:type="GstTagList*"/>
</return-value>
<parameters>
<parameter name="demux" transfer-ownership="none">
<type name="TagDemux" c:type="GstTagDemux*"/>
</parameter>
<parameter name="start_tags" transfer-ownership="none">
<type name="Gst.TagList" c:type="const GstTagList*"/>
</parameter>
<parameter name="end_tags" transfer-ownership="none">
<type name="Gst.TagList" c:type="const GstTagList*"/>
</parameter>
</parameters>
</callback>
</field>
<field name="reserved" readable="0" private="1">
<array zero-terminated="0" c:type="gpointer" fixed-size="4">
<type name="gpointer" c:type="gpointer"/>
</array>
</field>
</record>
<record name="TagDemuxPrivate" c:type="GstTagDemuxPrivate" disguised="1">
</record>
<enumeration name="TagDemuxResult" c:type="GstTagDemuxResult">
<doc xml:space="preserve">Result values from the parse_tag virtual function.</doc>
<member name="broken_tag"
value="0"
c:identifier="GST_TAG_DEMUX_RESULT_BROKEN_TAG">
<doc xml:space="preserve">cannot parse tag, just skip it</doc>
</member>
<member name="again" value="1" c:identifier="GST_TAG_DEMUX_RESULT_AGAIN">
<doc xml:space="preserve">call again with less or more data</doc>
</member>
<member name="ok" value="2" c:identifier="GST_TAG_DEMUX_RESULT_OK">
<doc xml:space="preserve">parsed tag successfully</doc>
</member>
</enumeration>
<enumeration name="TagImageType" c:type="GstTagImageType">
<doc xml:space="preserve">Type of image contained in an image tag (specified as "image-type" field in
the info structure in the image's #GstSample)</doc>
<member name="none" value="-1" c:identifier="GST_TAG_IMAGE_TYPE_NONE">
<doc xml:space="preserve">No image type. Can be used to
tell functions such as gst_tag_image_data_to_image_sample() that no
image type should be set.</doc>
</member>
<member name="undefined"
value="0"
c:identifier="GST_TAG_IMAGE_TYPE_UNDEFINED">
<doc xml:space="preserve">Undefined/other image type</doc>
</member>
<member name="front_cover"
value="1"
c:identifier="GST_TAG_IMAGE_TYPE_FRONT_COVER">