Skip to content
Commits on Source (85)
......@@ -11,7 +11,6 @@ rust:
addons:
apt:
packages:
- liborc-0.4-dev
- libglib2.0-dev
- libxml2-dev
- libgtk-3-dev
......@@ -29,9 +28,9 @@ script:
before_install:
- curl -L https://people.freedesktop.org/~slomo/gstreamer.tar.gz | tar xz
- sed -i "s;prefix=/root/gstreamer;prefix=$PWD/gstreamer;g" $PWD/gstreamer/lib/pkgconfig/*.pc
- export PKG_CONFIG_PATH=$PWD/gstreamer/lib/pkgconfig
- export GST_PLUGIN_SYSTEM_PATH=$PWD/gstreamer/lib/gstreamer-1.0
- sed -i "s;prefix=/root/gstreamer;prefix=$PWD/gstreamer;g" $PWD/gstreamer/lib/x86_64-linux-gnu/pkgconfig/*.pc
- export PKG_CONFIG_PATH=$PWD/gstreamer/lib/x86_64-linux-gnu/pkgconfig
- export GST_PLUGIN_SYSTEM_PATH=$PWD/gstreamer/lib/x86_64-linux-gnu/gstreamer-1.0
- export GST_PLUGIN_SCANNER=$PWD/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner
- export PATH=$PATH:$PWD/gstreamer/bin
- export LD_LIBRARY_PATH=$PWD/gstreamer/lib:$LD_LIBRARY_PATH
- export LD_LIBRARY_PATH=$PWD/gstreamer/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
......@@ -7,7 +7,11 @@ members = [
"gstreamer-base",
"gstreamer-net",
"gstreamer-player",
"gstreamer-rtsp",
"gstreamer-rtsp-server",
"gstreamer-sdp",
"gstreamer-video",
"gstreamer-pbutils",
"examples",
"tutorials",
]
......@@ -70,6 +70,8 @@ generate = [
"Gst.PluginDependencyFlags",
"Gst.DateTime",
"Gst.TypeFindProbability",
"Gst.BufferPoolAcquireFlags",
"Gst.PromiseResult",
]
manual = [
......@@ -216,6 +218,11 @@ name = "Gst.TocEntry"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Promise"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Clock"
status = "generate"
......@@ -250,6 +257,12 @@ status = "generate"
[[object]]
name = "Gst.Element"
status = "generate"
[[object.function]]
name = "make_from_uri"
[object.function.return]
# It is already a Result
nullable = false
[[object.function]]
name = "add_pad"
[object.function.return]
......@@ -375,6 +388,21 @@ status = "generate"
# Wrong place
ignore = true
[[object.function]]
name = "get_metadata"
# better manual function
ignore = true
[[object.function]]
name = "get_pad_template"
# better manual function
ignore = true
[[object.function]]
name = "get_pad_template_list"
# better manual function
ignore = true
[[object]]
name = "Gst.ElementFactory"
status = "generate"
......@@ -403,6 +431,11 @@ status = "generate"
[object.function.return]
bool_return_is_error = "Failed to start"
[[object.function]]
name = "get_metadata"
# better manual function
ignore = true
[[object]]
name = "Gst.DeviceMonitor"
status = "generate"
......@@ -617,6 +650,10 @@ status = "generate"
name = "Gst.PadTemplate"
status = "generate"
trait = false
[[object.function]]
name = "new_from_static_pad_template_with_gtype"
# static pad template manual
ignore = true
[[object]]
name = "Gst.GhostPad"
......@@ -767,6 +804,39 @@ trait = false
[object.function.return]
bool_return_is_error = "Failed to add plugin"
[[object]]
name = "Gst.BufferPool"
status = "generate"
[[object.function]]
pattern = "config_.*"
# A different type
ignore = true
[[object.function]]
name = "get_config"
# A different type
ignore = true
[[object.function]]
name = "set_config"
# Takes ownership
ignore = true
[[object.function]]
name = "acquire_buffer"
# Params and return value
ignore = true
[[object.function]]
name = "release_buffer"
# Takes ownership
ignore = true
[[object.function]]
name = "set_active"
[object.function.return]
bool_return_is_error = "Failed to activate buffer pool"
[[object]]
name = "Gst.Preset"
status = "generate"
......@@ -804,10 +874,20 @@ status = "generate"
[[object]]
name = "Gst.*"
status = "generate"
# We'll opt-in for constants at a later time
[[object.constant]]
pattern = ".+"
ignore = true
[[object.function]]
name = "util_dump_mem"
ignore = true
[[object.function]]
name = "util_dump_buffer"
# We have our Debug impl on buffers
ignore = true
[[object.function]]
name = "protection_select_system"
# unsupported array type
......@@ -984,6 +1064,11 @@ status = "generate"
# newtype wrapper
ignore = true
[[object.function]]
name = "protection_filter_systems_by_available_decryptors"
# wrong array annotations
ignore = true
[[object.function]]
name = "debug_bin_to_dot_data"
[object.function.return]
......@@ -999,6 +1084,18 @@ status = "generate"
[object.function.return]
nullable = false
[[object.function]]
name = "parse_launch"
[object.function.return]
# Already a Result
nullable = false
[[object.function]]
name = "parse_launchv"
[object.function.return]
# Already a Result
nullable = false
[[object]]
name = "Gst.StateChangeReturn"
status = "generate"
......
......@@ -71,6 +71,11 @@ trait = false
# Pass by value
ignore = true
[[object.function]]
name = "push_buffer_list"
# Pass by value
ignore = true
[[object.signal]]
name = "end-of-stream"
# Action signal
......@@ -81,6 +86,11 @@ trait = false
# Action signal
ignore = true
[[object.signal]]
name = "push-buffer-list"
# Action signal
ignore = true
[[object.signal]]
name = "push-sample"
# Action signal
......@@ -117,6 +127,11 @@ name = "Gst.Buffer"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.BufferList"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Sample"
status = "manual"
......
......@@ -36,6 +36,11 @@ name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "scalar"
[[object]]
name = "GstAudio.AudioFormat"
status = "generate"
......@@ -109,3 +114,12 @@ status = "generate"
name = "f64"
# Platform dependant
ignore = true
[[object]]
name = "GstAudio.AudioStreamAlign"
status = "generate"
[[object.function]]
name = "process"
# bool does not signal error
ignore = true
......@@ -15,7 +15,6 @@ external_libraries = [
]
generate = [
"GstBase.BaseSrc",
"GstBase.BaseSink",
"GstBase.BaseTransform",
"GstBase.PushSrc",
......@@ -72,9 +71,22 @@ status = "manual"
trait = false
concurrency = "none"
[[object]]
name = "GstBase.BaseSrc"
status = "generate"
[[object.function]]
name = "submit_buffer_list"
# Pass by value, to be added manually
ignore = true
[[object]]
name = "GstBase.*"
status = "generate"
# We'll opt-in for constants at a later time
[[object.constant]]
pattern = ".+"
ignore = true
[[object.function]]
name = "type_find_helper_for_data"
......
......@@ -37,9 +37,8 @@ trait = false
[[object.function]]
name = "new"
[[object.function.parameter]]
name = "name"
nullable = true
# Floating reference handling
ignore = true
[[object]]
name = "GstNet.PtpClock"
......@@ -48,9 +47,8 @@ trait = false
[[object.function]]
name = "new"
[[object.function.parameter]]
name = "name"
nullable = true
# Floating reference handling
ignore = true
[[object]]
name = "GstNet.NetClientClock"
......@@ -59,9 +57,8 @@ trait = false
[[object.function]]
name = "new"
[[object.function.parameter]]
name = "name"
nullable = true
# Floating reference handling
ignore = true
[[object]]
name = "GstNet.NetTimeProvider"
......
[options]
girs_dir = "gir-files"
library = "GstPbutils"
version = "1.0"
min_cfg_version = "1.8"
target_path = "gstreamer-pbutils"
work_mode = "normal"
concurrency = "send+sync"
generate_safety_asserts = true
external_libraries = [
"GLib",
"GObject",
"Gst",
]
generate = [
"GstPbutils.DiscovererResult",
"GstPbutils.DiscovererSerializeFlags",
]
manual = [
"GLib.Error",
"GLib.Source",
"GLib.DateTime",
"GLib.Variant",
"GObject.Object",
"Gst.Object",
"Gst.Element",
]
[[object]]
name = "Gst.Toc"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Message"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Buffer"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Event"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.TagList"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref-mut"
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "scalar"
[[object]]
name = "GstPbutils.Discoverer"
status = "generate"
trait = false
[[object.function]]
name = "discover_uri_async"
[object.function.return]
bool_return_is_error = "Failed to add URI to list of discovers"
# Manually implemented to use ClockTime
[[object.property]]
name = "timeout"
ignore = true
[[object]]
name = "GstPbutils.DiscovererInfo"
status = "generate"
[[object.function]]
name = "copy"
[object.function.return]
nullable = false
[[object]]
name = "GstPbutils.DiscovererStreamInfo"
status = "generate"
# Not useful
[[object.function]]
name = "list_free"
ignore = true
[[object.function]]
name = "get_stream_type_nick"
[object.function.return]
nullable = false
[[object]]
name = "GstPbutils.DiscovererAudioInfo"
status = "generate"
trait = false
[[object]]
name = "GstPbutils.DiscovererVideoInfo"
status = "generate"
trait = false
# Implement manually to expose as gst::Fraction
[[object.function]]
name = "get_framerate_num"
ignore = true
[[object.function]]
name = "get_framerate_denom"
ignore = true
[[object.function]]
name = "get_par_num"
ignore = true
[[object.function]]
name = "get_par_denom"
ignore = true
[[object]]
name = "GstPbutils.DiscovererSubtitleInfo"
status = "generate"
trait = false
[[object]]
name = "GstPbutils.DiscovererContainerInfo"
status = "generate"
trait = false
......@@ -11,6 +11,7 @@ generate_safety_asserts = true
external_libraries = [
"GLib",
"GObject",
"Gst",
]
generate = [
......@@ -27,6 +28,7 @@ manual = [
"GLib.Error",
"GLib.MainContext",
"GObject.Object",
"Gst.Object",
"Gst.Element",
"GstVideo.VideoMultiviewFlags",
"GstVideo.VideoMultiviewFramePacking",
......
[options]
girs_dir = "gir-files"
library = "GstRtsp"
version = "1.0"
min_cfg_version = "1.8"
target_path = "gstreamer-rtsp"
work_mode = "normal"
concurrency = "send+sync"
generate_safety_asserts = true
doc_target_path = "docs/gstreamer-rtsp/docs.md"
external_libraries = [
"GLib",
"GObject",
"Gio",
"GstSdp"
]
generate = [
"GstRtsp.RTSPAuthMethod",
"GstRtsp.RTSPEvent",
"GstRtsp.RTSPFamily",
"GstRtsp.RTSPHeaderField",
"GstRtsp.RTSPLowerTrans",
"GstRtsp.RTSPMethod",
"GstRtsp.RTSPMsgType",
"GstRtsp.RTSPProfile",
"GstRtsp.RTSPRangeUnit",
"GstRtsp.RTSPResult",
"GstRtsp.RTSPState",
"GstRtsp.RTSPStatusCode",
"GstRtsp.RTSPTimeType",
"GstRtsp.RTSPTransMode"
]
manual = [
"GLib.MainContext",
]
[[object]]
name = "GstRtsp.RTSPUrl"
status = "generate"
concurrency = "send"
[[object.function]]
name = "get_port"
ignore = true
[[object]]
name = "GstRtsp.RTSPAuthParam"
status = "generate"
concurrency="send"
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "scalar"
[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref-mut"
[options]
girs_dir = "gir-files"
library = "GstRtspServer"
version = "1.0"
min_cfg_version = "1.8"
target_path = "gstreamer-rtsp-server"
work_mode = "normal"
concurrency = "send+sync"
generate_safety_asserts = true
doc_target_path = "docs/gstreamer-rtsp-server/docs.md"
external_libraries = [
"GLib",
"GObject",
"Gio",
"Gst",
"GstNet",
"GstRtsp",
"GstSDP"
]
generate = [
"GstRtspServer.RTSPAddressFlags",
"GstRtspServer.RTSPAddressPoolResult",
"GstRtspServer.RTSPMediaFactoryURI",
"GstRtspServer.RTSPMediaStatus",
"GstRtspServer.RTSPMountPoints",
"GstRtspServer.RTSPPublishClockMode",
"GstRtspServer.RTSPSession",
"GstRtspServer.RTSPSuspendMode",
"GstRtspServer.RTSPThreadPool",
"GstRtspServer.RTSPThreadType",
"GstRtspServer.RTSPTransportMode"
]
manual = [
"GLib.MainContext",
"GLib.IOCondition",
"GLib.Source",
"GLib.MainLoop",
"GLib.ThreadPool",
"GLib.Error",
"GObject.Object",
"Gio.TlsCertificateFlags",
"Gio.TlsCertificate",
"Gio.TlsDatabase",
"Gio.TlsConnection",
"Gio.TlsAuthenticationMode",
"Gio.Socket",
"Gio.Cancellable",
"Gio.SocketFamily",
"Gst.Element",
"Gst.State",
"Gst.Clock",
"Gst.Pipeline",
"Gst.Pad",
"Gst.Bin",
"Gst.FlowReturn",
"GstRtsp.RTSPAuthMethod",
"GstRtsp.RTSPUrl",
"GstRtsp.RTSPResult",
"GstRtsp.RTSPStatusCode",
"GstRtsp.RTSPRangeUnit",
"GstRtsp.RTSPProfile",
"GstRtsp.RTSPLowerTrans"
]
[[object]]
name = "Gst.Message"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref-mut"
[[object]]
name = "Gst.Buffer"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
[[object]]
name = "GstRtspServer.RTSPContext"
status = "manual"
ref_mode = "ref"
[[object]]
name = "GstRtspServer.RTSPToken"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "scalar"
[[object]]
name = "GstRtspServer.RTSPServer"
status = "generate"
[[object.function]]
name = "attach"
ignore = true
[[object]]
name = "GstRtspServer.RTSPClient"
status = "generate"
[[object.function]]
name = "attach"
ignore = true
[[object]]
name = "GstRtspServer.RTSPStream"
status = "generate"
[[object.function]]
name = "query_position"
ignore = true
[[object.function]]
name = "query_stop"
ignore = true
[[object.function]]
name = "add_transport"
[object.function.return]
bool_return_is_error = "Failed to add transport"
[[object.function]]
name = "remove_transport"
[object.function.return]
bool_return_is_error = "Failed to remove transport"
[[object.function]]
name = "join_bin"
[object.function.return]
bool_return_is_error = "Failed to join bin"
[[object.function]]
name = "leave_bin"
[object.function.return]
bool_return_is_error = "Failed to leave bin"
[[object]]
name = "GstRtspServer.RTSPAddress"
status = "generate"
concurrency = "send"
[[object]]
name = "GstRtspServer.RTSPStreamTransport"
status = "generate"
concurrency = "none"
[[object.function]]
name = "send_rtcp"
[object.function.return]
bool_return_is_error = "Failed to send rtcp"
[[object.function]]
name = "send_rtp"
[object.function.return]
bool_return_is_error = "Failed to send rtp"
[[object.function]]
name = "set_active"
[object.function.return]
bool_return_is_error = "Failed to set active"
[[object]]
name = "GstRtspServer.RTSPAddressPool"
status = "generate"
[[object.function]]
name = "add_range"
[object.function.return]
bool_return_is_error = "Failed to add address range"
[[object.function]]
name = "reserve_address"
ignore = true
[[object]]
name = "GstRtspServer.RTSPMedia"
status = "generate"
[[object.function]]
name = "suspend"
[object.function.return]
bool_return_is_error = "Failed to suspend media"
[[object.function]]
name = "unprepare"
[object.function.return]
bool_return_is_error = "Failed to unprepare media"
[[object.function]]
name = "unsuspend"
[object.function.return]
bool_return_is_error = "Failed to unsuspend media"
[[object]]
name = "GstRtspServer.RTSPMediaFactory"
status = "generate"
[[object.function]]
name = "add_role_from_structure"
# Different structure mutability needed
ignore = true
[[object]]
name = "GstRtspServer.RTSPSessionMedia"
status = "generate"
[[object.function]]
name = "set_state"
[object.function.return]
bool_return_is_error = "Failed to set state of session media"
[[object]]
name = "GstRtspServer.RTSPSessionPool"
status = "generate"
[[object.function]]
name = "remove"
[object.function.return]
bool_return_is_error = "Failed to remove session from pool"
[[object.function]]
name = "create_watch"
# GSource return
ignore = true
[[object]]
name="GstRtspServer.RTSPAuth"
status="generate"
[[object.function]]
name = "make_basic"
[object.function.return]
nullable = false
[[object.function]]
name = "set_default_token"
# gir forgets mut
ignore = true
[options]
girs_dir = "gir-files"
library = "GstSdp"
version = "1.0"
min_cfg_version = "1.8"
target_path = "gstreamer-sdp"
work_mode = "normal"
concurrency = "send+sync"
generate_safety_asserts = true
doc_target_path = "docs/gstreamer-sdp/docs.md"
external_libraries = [
"GLib",
"GObject",
"Gst",
]
generate = [
"GstSdp.MIKEYCacheType",
"GstSdp.MIKEYEncAlg",
"GstSdp.MIKEYKVType",
"GstSdp.MIKEYKeyDataType",
"GstSdp.MIKEYMacAlg",
"GstSdp.MIKEYMapType",
"GstSdp.MIKEYPRFFunc",
"GstSdp.MIKEYPayloadType",
"GstSdp.MIKEYSecProto",
"GstSdp.MIKEYSecSRTP",
"GstSdp.MIKEYTSType",
"GstSdp.MIKEYType",
"GstSdp.SDPResult"
]
manual = [
]
[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
......@@ -12,6 +12,7 @@ external_libraries = [
"GLib",
"GObject",
"Gst",
"GstBase",
]
generate = [
......@@ -29,11 +30,14 @@ generate = [
"GstVideo.VideoFieldOrder",
"GstVideo.VideoFrameFlags",
"GstVideo.VideoMultiviewFramePacking",
"GstVideo.VideoFilter",
]
manual = [
"GObject.Object",
"Gst.Object",
"Gst.Element",
"GstBase.BaseTransform",
"GstVideo.VideoInfo",
"GstVideo.VideoFormatInfo",
"GstVideo.VideoColorimetry",
......
......@@ -48,7 +48,20 @@ On Debian/Ubuntu they can be installed with
$ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
gstreamer1.0-libav
gstreamer1.0-libav libgstrtspserver-1.0-dev
```
The minimum required version of the above libraries is >= 1.8. If you
build the gstreamer-player sub-crate, or any of the examples that
depend on gstreamer-player, you must ensure that in addition to the
above packages, `libgstreamer-plugins-bad1.0-dev` is installed and
that the version is >= 1.12. See the `Cargo.toml` files for the full
details,
```
# Only if you wish to install gstreamer-player, make sure the version
# of this package is >= 1.12.
$ apt-get install libgstreamer-plugins-bad1.0-dev
```
Package names on other distributions should be similar.
......@@ -66,9 +79,13 @@ provided by the GStreamer project.
```
$ brew install gstreamer gst-plugins-base gst-plugins-good \
gst-plugins-bad gst-plugins-ugly gst-libav
gst-plugins-bad gst-plugins-ugly gst-libav gst-rtsp-server
```
If you wish to install the gstreamer-player sub-crate, make sure the
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
sufficient.
#### GStreamer Binaries
You need to download the *two* `.pkg` files from the GStreamer website and
......@@ -96,9 +113,14 @@ the GStreamer project.
```
$ pacman -S pkg-config mingw-w64-x86_64-gstreamer mingw-w64-x86_64-gst-plugins-base \
mingw-w64-x86_64-gst-plugins-good mingw-w64-x86_64-gst-plugins-bad \
mingw-w64-x86_64-gst-plugins-ugly mingw-w64-x86_64-gst-libav
mingw-w64-x86_64-gst-plugins-ugly mingw-w64-x86_64-gst-libav \
mingw-w64-x86_64-gst-rtsp-server
```
If you wish to install the gstreamer-player sub-crate, make sure the
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
sufficient.
#### GStreamer Binaries
You need to download the *two* `.msi` files for your platform from the
......
......@@ -96,13 +96,15 @@ PLAYING state.
`true` if no more samples can be pulled and the appsink is EOS.
<!-- impl AppSink::fn pull_preroll -->
Get the last preroll sample in `self`. This was the sample that caused the
appsink to preroll in the PAUSED state. This sample can be pulled many times
and remains available to the application even after EOS.
appsink to preroll in the PAUSED state.
This function is typically used when dealing with a pipeline in the PAUSED
state. Calling this function after doing a seek will give the sample right
after the seek position.
Calling this function will clear the internal reference to the preroll
buffer.
Note that the preroll sample will also be returned as the first sample
when calling `AppSink::pull_sample`.
......@@ -186,13 +188,15 @@ Instruct `self` to wait for all buffers to be consumed when an EOS is received.
the new state
<!-- impl AppSink::fn try_pull_preroll -->
Get the last preroll sample in `self`. This was the sample that caused the
appsink to preroll in the PAUSED state. This sample can be pulled many times
and remains available to the application even after EOS.
appsink to preroll in the PAUSED state.
This function is typically used when dealing with a pipeline in the PAUSED
state. Calling this function after doing a seek will give the sample right
after the seek position.
Calling this function will clear the internal reference to the preroll
buffer.
Note that the preroll sample will also be returned as the first sample
when calling `AppSink::pull_sample`.
......@@ -264,13 +268,15 @@ Note that this signal is only emitted when the "emit-signals" property is
set to `true`, which it is not by default for performance reasons.
<!-- trait AppSinkExt::fn connect_pull_preroll -->
Get the last preroll sample in `appsink`. This was the sample that caused the
appsink to preroll in the PAUSED state. This sample can be pulled many times
and remains available to the application even after EOS.
appsink to preroll in the PAUSED state.
This function is typically used when dealing with a pipeline in the PAUSED
state. Calling this function after doing a seek will give the sample right
after the seek position.
Calling this function will clear the internal reference to the preroll
buffer.
Note that the preroll sample will also be returned as the first sample
when calling `AppSink::pull_sample` or the "pull-sample" action signal.
......@@ -304,13 +310,15 @@ If an EOS event was received before any buffers, this function returns
a `gst::Sample` or NULL when the appsink is stopped or EOS.
<!-- trait AppSinkExt::fn connect_try_pull_preroll -->
Get the last preroll sample in `appsink`. This was the sample that caused the
appsink to preroll in the PAUSED state. This sample can be pulled many times
and remains available to the application even after EOS.
appsink to preroll in the PAUSED state.
This function is typically used when dealing with a pipeline in the PAUSED
state. Calling this function after doing a seek will give the sample right
after the seek position.
Calling this function will clear the internal reference to the preroll
buffer.
Note that the preroll sample will also be returned as the first sample
when calling `AppSink::pull_sample` or the "pull-sample" action signal.
......@@ -465,7 +473,7 @@ Retrieve the min and max latencies in `min` and `max` respectively.
## `min`
the min latency
## `max`
the min latency
the max latency
<!-- impl AppSrc::fn get_max_bytes -->
Get the maximum amount of bytes that can be queued in `self`.
......@@ -500,6 +508,24 @@ a `gst::Buffer` to push
`gst::FlowReturn::Ok` when the buffer was successfuly queued.
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
`gst::FlowReturn::Eos` when EOS occured.
<!-- impl AppSrc::fn push_buffer_list -->
Adds a buffer list to the queue of buffers and buffer lists that the
appsrc element will push to its source pad. This function takes ownership
of `buffer_list`.
When the block property is TRUE, this function can block until free
space becomes available in the queue.
Feature: `v1_14`
## `buffer_list`
a `gst::BufferList` to push
# Returns
`gst::FlowReturn::Ok` when the buffer list was successfuly queued.
`gst::FlowReturn::Flushing` when `self` is not PAUSED or PLAYING.
`gst::FlowReturn::Eos` when EOS occured.
<!-- impl AppSrc::fn push_sample -->
Extract a buffer from the provided sample and adds it to the queue of
buffers that the appsrc element will push to its source pad. Any
......@@ -558,7 +584,7 @@ default latency calculations for pseudo-live sources will be used.
## `min`
the min latency
## `max`
the min latency
the max latency
<!-- impl AppSrc::fn set_max_bytes -->
Set the maximum amount of bytes that can be queued in `self`.
After the maximum amount of bytes are queued, `self` will emit the
......@@ -603,6 +629,19 @@ When the block property is TRUE, this function can block until free space
becomes available in the queue.
## `buffer`
a buffer to push
<!-- trait AppSrcExt::fn connect_push_buffer_list -->
Adds a buffer list to the queue of buffers and buffer lists that the
appsrc element will push to its source pad. This function does not take
ownership of the buffer list so the buffer list needs to be unreffed
after calling this function.
When the block property is TRUE, this function can block until free space
becomes available in the queue.
Feature: `v1_14`
## `buffer_list`
a buffer list to push
<!-- trait AppSrcExt::fn connect_push_sample -->
Extract a buffer from the provided sample and adds the extracted buffer
to the queue of buffers that the appsrc element will
......
......@@ -266,6 +266,116 @@ Layout of the audio samples for the different channels.
interleaved audio
<!-- enum AudioLayout::variant NonInterleaved -->
non-interleaved audio
<!-- struct AudioStreamAlign -->
`AudioStreamAlign` provides a helper object that helps tracking audio
stream alignment and discontinuities, and detects discontinuities if
possible.
See `AudioStreamAlign::new` for a description of its parameters and
`AudioStreamAlign::process` for the details of the processing.
Feature: `v1_14`
<!-- impl AudioStreamAlign::fn new -->
Allocate a new `AudioStreamAlign` with the given configuration. All
processing happens according to sample rate `rate`, until
`gst_audio_discont_wait_set_rate` is called with a new `rate`.
A negative rate can be used for reverse playback.
`alignment_threshold` gives the tolerance in nanoseconds after which a
timestamp difference is considered a discontinuity. Once detected,
`discont_wait` nanoseconds have to pass without going below the threshold
again until the output buffer is marked as a discontinuity. These can later
be re-configured with `AudioStreamAlign::set_alignment_threshold` and
`AudioStreamAlign::set_discont_wait`.
Feature: `v1_14`
## `rate`
a sample rate
## `alignment_threshold`
a alignment threshold in nanoseconds
## `discont_wait`
discont wait in nanoseconds
# Returns
a new `AudioStreamAlign`. free with `AudioStreamAlign::free`.
<!-- impl AudioStreamAlign::fn copy -->
Copy a GstAudioStreamAlign structure.
Feature: `v1_14`
# Returns
a new `AudioStreamAlign`. free with gst_audio_stream_align_free.
<!-- impl AudioStreamAlign::fn free -->
Free a GstAudioStreamAlign structure previously allocated with `AudioStreamAlign::new`
or `AudioStreamAlign::copy`.
Feature: `v1_14`
<!-- impl AudioStreamAlign::fn get_samples_since_discont -->
Returns the number of samples that were processed since the last
discontinuity was detected.
Feature: `v1_14`
# Returns
The number of samples processed since the last discontinuity.
<!-- impl AudioStreamAlign::fn get_timestamp_at_discont -->
Timestamp that was passed when a discontinuity was detected, i.e. the first
timestamp after the discontinuity.
Feature: `v1_14`
# Returns
The last timestamp at when a discontinuity was detected
<!-- impl AudioStreamAlign::fn mark_discont -->
Marks the next buffer as discontinuous and resets timestamp tracking.
Feature: `v1_14`
<!-- impl AudioStreamAlign::fn process -->
Processes data with `timestamp` and `n_samples`, and returns the output
timestamp, duration and sample position together with a boolean to signal
whether a discontinuity was detected or not. All non-discontinuous data
will have perfect timestamps and durations.
A discontinuity is detected once the difference between the actual
timestamp and the timestamp calculated from the sample count since the last
discontinuity differs by more than the alignment threshold for a duration
longer than discont wait.
Note: In reverse playback, every buffer is considered discontinuous in the
context of buffer flags because the last sample of the previous buffer is
discontinuous with the first sample of the current one. However for this
function they are only considered discontinuous in reverse playback if the
first sample of the previous buffer is discontinuous with the last sample
of the current one.
Feature: `v1_14`
## `discont`
if this data is considered to be discontinuous
## `timestamp`
a `gst::ClockTime` of the start of the data
## `n_samples`
number of samples to process
## `out_timestamp`
output timestamp of the data
## `out_duration`
output duration of the data
## `out_sample_position`
output sample position of the start of the data
# Returns
`true` if a discontinuity was detected, `false` otherwise.
<!-- struct StreamVolume -->
This interface is implemented by elements that provide a stream volume. Examples for
such elements are `volume` and `playbin`.
......
......@@ -1281,6 +1281,28 @@ Wait until the start operation completes.
# Returns
a `gst::FlowReturn`.
<!-- trait BaseSrcExt::fn submit_buffer_list -->
Subclasses can call this from their create virtual method implementation
to submit a buffer list to be pushed out later. This is useful in
cases where the create function wants to produce multiple buffers to be
pushed out in one go in form of a `gst::BufferList`, which can reduce overhead
drastically, especially for packetised inputs (for data streams where
the packetisation/chunking is not important it is usually more efficient
to return larger buffers instead).
Subclasses that use this function from their create function must return
`gst::FlowReturn::Ok` and no buffer from their create virtual method implementation.
If a buffer is returned after a buffer list has also been submitted via this
function the behaviour is undefined.
Subclasses must only call this function once per create function call and
subclasses must only call this function when the source operates in push
mode.
Feature: `v1_14`
## `buffer_list`
a `gst::BufferList`
<!-- trait BaseSrcExt::fn wait_playing -->
If the `BaseSrcClass.create`() method performs its own synchronisation
against the clock it must unblock when going from PLAYING to the PAUSED state
......@@ -1583,12 +1605,26 @@ the `gst::Pad` that is being added
Removes all pads from a `FlowCombiner` and resets it to its initial state.
<!-- impl FlowCombiner::fn free -->
Frees a `FlowCombiner` struct and all its internal data.
<!-- impl FlowCombiner::fn ref -->
Increments the reference count on the `FlowCombiner`.
Feature: `v1_12_1`
# Returns
the `FlowCombiner`.
<!-- impl FlowCombiner::fn remove_pad -->
Removes a `gst::Pad` from the `FlowCombiner`.
## `pad`
the `gst::Pad` to remove
<!-- impl FlowCombiner::fn reset -->
Reset flow combiner and all pads to their initial state without removing pads.
<!-- impl FlowCombiner::fn unref -->
Decrements the reference count on the `FlowCombiner`.
Feature: `v1_12_1`
<!-- impl FlowCombiner::fn update_flow -->
Computes the combined flow return for the pads in it.
......
......@@ -134,3 +134,7 @@ check this with `gst::ClockExt::wait_for_sync`, the GstClock::synced signal and
Name of the clock
## `domain`
PTP domain
# Returns
A new `gst::Clock`
<!-- file * -->
<!-- struct Discoverer -->
The `Discoverer` is a utility object which allows to get as much
information as possible from one or many URIs.
It provides two APIs, allowing usage in blocking or non-blocking mode.
The blocking mode just requires calling `Discoverer::discover_uri`
with the URI one wishes to discover.
The non-blocking mode requires a running `glib::MainLoop` iterating a
`glib::MainContext`, where one connects to the various signals, appends the
URIs to be processed (through `Discoverer::discover_uri_async`) and then
asks for the discovery to begin (through `Discoverer::start`).
By default this will use the GLib default main context unless you have
set a custom context using `glib::MainContext::push_thread_default`.
All the information is returned in a `DiscovererInfo` structure.
# Implements
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl Discoverer::fn new -->
Creates a new `Discoverer` with the provided timeout.
## `timeout`
timeout per file, in nanoseconds. Allowed are values between
one second (`GST_SECOND`) and one hour (3600 * `GST_SECOND`)
# Returns
The new `Discoverer`.
If an error occurred when creating the discoverer, `err` will be set
accordingly and `None` will be returned. If `err` is set, the caller must
free it when no longer needed using `glib::Error::free`.
<!-- impl Discoverer::fn discover_uri -->
Synchronously discovers the given `uri`.
A copy of `uri` will be made internally, so the caller can safely `g_free`
afterwards.
## `uri`
The URI to run on.
# Returns
the result of the scanning. Can be `None` if an
error occurred.
<!-- impl Discoverer::fn discover_uri_async -->
Appends the given `uri` to the list of URIs to discoverer. The actual
discovery of the `uri` will only take place if `Discoverer::start` has
been called.
A copy of `uri` will be made internally, so the caller can safely `g_free`
afterwards.
## `uri`
the URI to add.
# Returns
`true` if the `uri` was successfully appended to the list of pending
uris, else `false`
<!-- impl Discoverer::fn start -->
Allow asynchronous discovering of URIs to take place.
A `glib::MainLoop` must be available for `Discoverer` to properly work in
asynchronous mode.
<!-- impl Discoverer::fn stop -->
Stop the discovery of any pending URIs and clears the list of
pending URIS (if any).
<!-- trait DiscovererExt::fn connect_discovered -->
Will be emitted in async mode when all information on a URI could be
discovered, or an error occurred.
When an error occurs, `info` might still contain some partial information,
depending on the circumstances of the error.
## `info`
the results `DiscovererInfo`
## `error`
`glib::Error`, which will be non-NULL
if an error occurred during
discovery. You must not free
this `glib::Error`, it will be freed by
the discoverer.
<!-- trait DiscovererExt::fn connect_finished -->
Will be emitted in async mode when all pending URIs have been processed.
<!-- trait DiscovererExt::fn connect_source_setup -->
This signal is emitted after the source element has been created for, so
the URI being discovered, so it can be configured by setting additional
properties (e.g. set a proxy server for an http source, or set the device
and read speed for an audio cd source).
This signal is usually emitted from the context of a GStreamer streaming
thread.
## `source`
source element
<!-- trait DiscovererExt::fn connect_starting -->
Will be emitted when the discover starts analyzing the pending URIs
<!-- trait DiscovererExt::fn get_property_timeout -->
The duration (in nanoseconds) after which the discovery of an individual
URI will timeout.
If the discovery of a URI times out, the `DiscovererResult::Timeout` will be
set on the result flags.
<!-- trait DiscovererExt::fn set_property_timeout -->
The duration (in nanoseconds) after which the discovery of an individual
URI will timeout.
If the discovery of a URI times out, the `DiscovererResult::Timeout` will be
set on the result flags.
<!-- struct DiscovererAudioInfo -->
`DiscovererStreamInfo` specific to audio streams.
# Implements
[`DiscovererStreamInfoExt`](trait.DiscovererStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl DiscovererAudioInfo::fn get_bitrate -->
# Returns
the average or nominal bitrate of the stream in bits/second.
<!-- impl DiscovererAudioInfo::fn get_channel_mask -->
Feature: `v1_14`
# Returns
the channel-mask of the stream, refer to
`gst_audio_channel_positions_from_mask` for more
information.
<!-- impl DiscovererAudioInfo::fn get_channels -->
# Returns
the number of channels in the stream.
<!-- impl DiscovererAudioInfo::fn get_depth -->
# Returns
the number of bits used per sample in each channel.
<!-- impl DiscovererAudioInfo::fn get_language -->
# Returns
the language of the stream, or NULL if unknown.
<!-- impl DiscovererAudioInfo::fn get_max_bitrate -->
# Returns
the maximum bitrate of the stream in bits/second.
<!-- impl DiscovererAudioInfo::fn get_sample_rate -->
# Returns
the sample rate of the stream in Hertz.
<!-- struct DiscovererContainerInfo -->
`DiscovererStreamInfo` specific to container streams.
# Implements
[`DiscovererStreamInfoExt`](trait.DiscovererStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl DiscovererContainerInfo::fn get_streams -->
# Returns
the list of
`DiscovererStreamInfo` this container stream offers.
Free with `DiscovererStreamInfo::list_free` after usage.
<!-- struct DiscovererInfo -->
Structure containing the information of a URI analyzed by `Discoverer`.
# Implements
[`DiscovererInfoExt`](trait.DiscovererInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- trait DiscovererInfoExt -->
Trait containing all `DiscovererInfo` methods.
# Implementors
[`DiscovererInfo`](struct.DiscovererInfo.html)
<!-- impl DiscovererInfo::fn from_variant -->
Parses a `glib::Variant` as produced by `DiscovererInfoExt::to_variant`
back to a `DiscovererInfo`.
## `variant`
A `glib::Variant` to deserialize into a `DiscovererInfo`.
# Returns
A newly-allocated `DiscovererInfo`.
<!-- trait DiscovererInfoExt::fn copy -->
# Returns
A copy of the `DiscovererInfo`
<!-- trait DiscovererInfoExt::fn get_audio_streams -->
Finds all the `DiscovererAudioInfo` contained in `self`
# Returns
A `glib::List` of
matching `DiscovererStreamInfo`. The caller should free it with
`DiscovererStreamInfo::list_free`.
<!-- trait DiscovererInfoExt::fn get_container_streams -->
Finds all the `DiscovererContainerInfo` contained in `self`
# Returns
A `glib::List` of
matching `DiscovererStreamInfo`. The caller should free it with
`DiscovererStreamInfo::list_free`.
<!-- trait DiscovererInfoExt::fn get_duration -->
# Returns
the duration of the URI in `gst::ClockTime` (nanoseconds).
<!-- trait DiscovererInfoExt::fn get_live -->
Feature: `v1_14`
# Returns
whether the URI is live.
<!-- trait DiscovererInfoExt::fn get_misc -->
# Deprecated
This functions is deprecated since version 1.4, use
`DiscovererInfoExt::get_missing_elements_installer_details`
# Returns
Miscellaneous information stored as a `gst::Structure`
(for example: information about missing plugins). If you wish to use the
`gst::Structure` after the life-time of `self`, you will need to copy it.
<!-- trait DiscovererInfoExt::fn get_missing_elements_installer_details -->
Get the installer details for missing elements
# Returns
An array of strings
containing informations about how to install the various missing elements
for `self` to be usable. If you wish to use the strings after the life-time
of `self`, you will need to copy them.
<!-- trait DiscovererInfoExt::fn get_result -->
# Returns
the result of the discovery as a `DiscovererResult`.
<!-- trait DiscovererInfoExt::fn get_seekable -->
# Returns
the whether the URI is seekable.
<!-- trait DiscovererInfoExt::fn get_stream_info -->
# Returns
the structure (or topology) of the URI as a
`DiscovererStreamInfo`.
This structure can be traversed to see the original hierarchy. Unref with
`gst_discoverer_stream_info_unref` after usage.
<!-- trait DiscovererInfoExt::fn get_stream_list -->
# Returns
the list of
all streams contained in the `info`. Free after usage
with `DiscovererStreamInfo::list_free`.
<!-- trait DiscovererInfoExt::fn get_streams -->
Finds the `DiscovererStreamInfo` contained in `self` that match the
given `streamtype`.
## `streamtype`
a `glib::Type` derived from `DiscovererStreamInfo`
# Returns
A `glib::List` of
matching `DiscovererStreamInfo`. The caller should free it with
`DiscovererStreamInfo::list_free`.
<!-- trait DiscovererInfoExt::fn get_subtitle_streams -->
Finds all the `DiscovererSubtitleInfo` contained in `self`
# Returns
A `glib::List` of
matching `DiscovererStreamInfo`. The caller should free it with
`DiscovererStreamInfo::list_free`.
<!-- trait DiscovererInfoExt::fn get_tags -->
# Returns
all tags contained in the URI. If you wish to use
the tags after the life-time of `self`, you will need to copy them.
<!-- trait DiscovererInfoExt::fn get_toc -->
# Returns
TOC contained in the URI. If you wish to use
the TOC after the life-time of `self`, you will need to copy it.
<!-- trait DiscovererInfoExt::fn get_uri -->
# Returns
the URI to which this information corresponds to.
Copy it if you wish to use it after the life-time of `self`.
<!-- trait DiscovererInfoExt::fn get_video_streams -->
Finds all the `DiscovererVideoInfo` contained in `self`
# Returns
A `glib::List` of
matching `DiscovererStreamInfo`. The caller should free it with
`DiscovererStreamInfo::list_free`.
<!-- trait DiscovererInfoExt::fn to_variant -->
Serializes `self` to a `glib::Variant` that can be parsed again
through `DiscovererInfo::from_variant`.
Note that any `gst::Toc` (s) that might have been discovered will not be serialized
for now.
## `flags`
A combination of `DiscovererSerializeFlags` to specify
what needs to be serialized.
# Returns
A newly-allocated `glib::Variant` representing `self`.
<!-- enum DiscovererResult -->
Result values for the discovery process.
<!-- enum DiscovererResult::variant Ok -->
The discovery was successful
<!-- enum DiscovererResult::variant UriInvalid -->
the URI is invalid
<!-- enum DiscovererResult::variant Error -->
an error happened and the GError is set
<!-- enum DiscovererResult::variant Timeout -->
the discovery timed-out
<!-- enum DiscovererResult::variant Busy -->
the discoverer was already discovering a file
<!-- enum DiscovererResult::variant MissingPlugins -->
Some plugins are missing for full discovery
<!-- struct DiscovererStreamInfo -->
Base structure for information concerning a media stream. Depending on the
stream type, one can find more media-specific information in
`DiscovererAudioInfo`, `DiscovererVideoInfo`, and
`DiscovererContainerInfo`.
The `DiscovererStreamInfo` represents the topology of the stream. Siblings
can be iterated over with `DiscovererStreamInfoExt::get_next` and
`DiscovererStreamInfoExt::get_previous`. Children (sub-streams) of a
stream can be accessed using the `DiscovererContainerInfo` API.
As a simple example, if you run `Discoverer` on an AVI file with one audio
and one video stream, you will get a `DiscovererContainerInfo`
corresponding to the AVI container, which in turn will have a
`DiscovererAudioInfo` sub-stream and a `DiscovererVideoInfo` sub-stream
for the audio and video streams respectively.
# Implements
[`DiscovererStreamInfoExt`](trait.DiscovererStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- trait DiscovererStreamInfoExt -->
Trait containing all `DiscovererStreamInfo` methods.
# Implementors
[`DiscovererAudioInfo`](struct.DiscovererAudioInfo.html), [`DiscovererContainerInfo`](struct.DiscovererContainerInfo.html), [`DiscovererStreamInfo`](struct.DiscovererStreamInfo.html), [`DiscovererSubtitleInfo`](struct.DiscovererSubtitleInfo.html), [`DiscovererVideoInfo`](struct.DiscovererVideoInfo.html)
<!-- impl DiscovererStreamInfo::fn list_free -->
Decrements the reference count of all contained `DiscovererStreamInfo`
and fress the `glib::List`.
## `infos`
a `glib::List` of `DiscovererStreamInfo`
<!-- trait DiscovererStreamInfoExt::fn get_caps -->
# Returns
the `gst::Caps` of the stream. Unref with
`gst_caps_unref` after usage.
<!-- trait DiscovererStreamInfoExt::fn get_misc -->
# Deprecated
This functions is deprecated since version 1.4, use
`DiscovererInfoExt::get_missing_elements_installer_details`
# Returns
additional information regarding the stream (for
example codec version, profile, etc..). If you wish to use the `gst::Structure`
after the life-time of `self` you will need to copy it.
<!-- trait DiscovererStreamInfoExt::fn get_next -->
# Returns
the next `DiscovererStreamInfo` in a chain. `None`
for final streams.
Unref with `gst_discoverer_stream_info_unref` after usage.
<!-- trait DiscovererStreamInfoExt::fn get_previous -->
# Returns
the previous `DiscovererStreamInfo` in a chain.
`None` for starting points. Unref with `gst_discoverer_stream_info_unref`
after usage.
<!-- trait DiscovererStreamInfoExt::fn get_stream_id -->
# Returns
the stream ID of this stream. If you wish to
use the stream ID after the life-time of `self` you will need to copy it.
<!-- trait DiscovererStreamInfoExt::fn get_stream_type_nick -->
# Returns
a human readable name for the stream type of the given `self` (ex : "audio",
"container",...).
<!-- trait DiscovererStreamInfoExt::fn get_tags -->
# Returns
the tags contained in this stream. If you wish to
use the tags after the life-time of `self` you will need to copy them.
<!-- trait DiscovererStreamInfoExt::fn get_toc -->
# Returns
the TOC contained in this stream. If you wish to
use the TOC after the life-time of `self` you will need to copy it.
<!-- struct DiscovererSubtitleInfo -->
`DiscovererStreamInfo` specific to subtitle streams (this includes text and
image based ones).
# Implements
[`DiscovererStreamInfoExt`](trait.DiscovererStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl DiscovererSubtitleInfo::fn get_language -->
# Returns
the language of the stream, or NULL if unknown.
<!-- struct DiscovererVideoInfo -->
`DiscovererStreamInfo` specific to video streams (this includes images).
# Implements
[`DiscovererStreamInfoExt`](trait.DiscovererStreamInfoExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl DiscovererVideoInfo::fn get_bitrate -->
# Returns
the average or nominal bitrate of the video stream in bits/second.
<!-- impl DiscovererVideoInfo::fn get_depth -->
# Returns
the depth in bits of the video stream.
<!-- impl DiscovererVideoInfo::fn get_framerate_denom -->
# Returns
the framerate of the video stream (denominator).
<!-- impl DiscovererVideoInfo::fn get_framerate_num -->
# Returns
the framerate of the video stream (numerator).
<!-- impl DiscovererVideoInfo::fn get_height -->
# Returns
the height of the video stream in pixels.
<!-- impl DiscovererVideoInfo::fn get_max_bitrate -->
# Returns
the maximum bitrate of the video stream in bits/second.
<!-- impl DiscovererVideoInfo::fn get_par_denom -->
# Returns
the Pixel Aspect Ratio (PAR) of the video stream (denominator).
<!-- impl DiscovererVideoInfo::fn get_par_num -->
# Returns
the Pixel Aspect Ratio (PAR) of the video stream (numerator).
<!-- impl DiscovererVideoInfo::fn get_width -->
# Returns
the width of the video stream in pixels.
<!-- impl DiscovererVideoInfo::fn is_image -->
# Returns
`true` if the video stream corresponds to an image (i.e. only contains
one frame).
<!-- impl DiscovererVideoInfo::fn is_interlaced -->
# Returns
`true` if the stream is interlaced, else `false`.
......@@ -4,7 +4,7 @@
# Implements
[`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
[`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
<!-- impl Player::fn new -->
Creates a new `Player` instance that uses `signal_dispatcher` to dispatch
signals to some event loop system, or emits signals directly if NULL is
......@@ -57,6 +57,20 @@ Since 1.10
a `Player` configuration
## `interval`
interval in ms
<!-- impl Player::fn config_set_seek_accurate -->
Enable or disable accurate seeking. When enabled, elements will try harder
to seek as accurately as possible to the requested seek position. Generally
it will be slower especially for formats that don't have any indexes or
timestamp markers in the stream.
If accurate seeking is disabled, elements will seek as close as the request
position without slowing down seeking too much.
Accurate seeking is disabled by default.
## `config`
a `Player` configuration
## `accurate`
accurate seek or not
<!-- impl Player::fn config_set_user_agent -->
Set the user agent to pass to the server if `player` needs to connect
to a server during playback. This is typically used when playing HTTP
......@@ -103,18 +117,6 @@ a `None` terminated array of `PlayerVisualization` to free
a `None` terminated array containing all available
visualizations. Use `Player::visualizations_free` after
usage.
<!-- impl Player::fn config_set_seek_accurate -->
Enable or disable accurate seeking. When enabled, elements will try harder
to seek as accurately as possible to the requested seek position. Generally
it will be slower especially for formats that don't have any indexes or
timestamp markers in the stream.
If accurate seeking is disabled, elements will seek as close as the request
position without slowing down seeking too much.
Accurate seeking is disabled by default.
## `accurate`
accurate seek or not
<!-- impl Player::fn get_audio_video_offset -->
Retrieve the current value of audio-video-offset property
......@@ -349,7 +351,9 @@ Enable or disable the current subtitle track.
## `enabled`
TRUE or FALSE
<!-- impl Player::fn set_subtitle_uri -->
Sets the external subtitle URI.
Sets the external subtitle URI. This should be combined with a call to
gst_player_set_subtitle_track_enabled(`self`, TRUE) so the subtitles are actually
rendered.
## `uri`
subtitle URI
<!-- impl Player::fn set_uri -->
......