Sebastian Dröge
dfdae187a3
Filter in caps queries can be None, and there could be no resulting caps
2017-12-17 11:32:01 +02:00
Sebastian Dröge
ffb5869dd1
Use the correct pad type for the proxy/ghost pad default pad functions
2017-12-17 11:24:03 +02:00
Sebastian Dröge
62058ab1c3
Use &ToSendValue for the stream-status stream_object in the builder
2017-12-16 18:39:50 +02:00
Sebastian Dröge
ccf6c1a632
Owner of structure-change and stream-status messages is mandatory
2017-12-16 18:39:33 +02:00
Sebastian Dröge
bcf6b34c1b
Code/text of progress messages is mandatory
2017-12-16 18:38:53 +02:00
Sebastian Dröge
974e681a5d
Move optional taglist/entry_struct fields into the Redirect builder from the constructor
2017-12-16 18:13:25 +02:00
Sebastian Dröge
7bc1fce97d
Move value for PropertyNotification message into the builder instead of constructor
2017-12-16 18:10:10 +02:00
Sebastian Dröge
c2f075ed8d
Description of debug categories is optional
...
Also add a getter for the description of a debug category
2017-12-16 17:56:23 +02:00
Sebastian Dröge
f7c971874d
Implement Display and Error for IteratorError
2017-12-16 17:48:38 +02:00
Sebastian Dröge
7065d1d884
Add constants for COPY_ALL and COPY_METADATA buffer copy flags
2017-12-16 17:40:47 +02:00
Sebastian Dröge
fa05ee7b08
Various fixes for nullability in the event bindings
...
The origin in protection events is optional, the stream id in
stream-start events is not.
Also return a segment reference instead of a segment copy when parsing a
segment event.
2017-12-16 17:30:50 +02:00
Sebastian Dröge
9608ef52ec
Mark Segment as #[repr(C)]
2017-12-16 17:30:37 +02:00
Sebastian Dröge
b9c4e4cd6e
Allow no value for the PropertyNotify message
...
It can contain no value.
Also use &ToSendValue instead of an actual value for building the
message.
2017-12-16 15:37:06 +02:00
Sebastian Dröge
52ca97e7e6
Let ChildProxy::set_child_property() take a &ToValue instead of an actual Value
2017-12-16 15:24:18 +02:00
Sebastian Dröge
3de73d89f2
Add Buffer::copy_into() and add flags parameter to ::copy_region()
...
Also ::copy_deep() can fail, return an Option<_>
2017-12-16 15:15:42 +02:00
Sebastian Dröge
18f99073c1
Use from_glib_none/full directly on potential NULL pointers if Option<_> is returned
...
The implementation for Option<_> is doing exactly what we did manually
here.
2017-12-16 15:07:26 +02:00
Sebastian Dröge
37ab39282c
Add gstreamer-net docs
2017-12-16 14:53:48 +02:00
Sebastian Dröge
8bdd24a840
Run everything through rustfmt again
2017-12-16 14:53:00 +02:00
Sebastian Dröge
159429dd95
Add bindings to GStreamer Net library
2017-12-16 14:48:29 +02:00
Sebastian Dröge
8a807c4265
Implement Send+Sync for AppSink/SrcCallbacks
2017-12-16 14:14:29 +02:00
Sebastian Dröge
bd817c03d2
Implement AppSrc get/set_latency() manually
...
These are gst::ClockTime, not u64
2017-12-16 14:04:36 +02:00
Sebastian Dröge
70688fd6a9
Clean-up VideoFrame API
...
There's a buffer() for immutable references on all types now, and a
buffer_mut() for getting a mutable reference on the writable videoframe
Also some minor other cleanup
2017-12-16 11:41:48 +02:00
Sebastian Dröge
70e031b729
VideoInfo/AudioInfo are not Sync, only Send
2017-12-16 11:40:36 +02:00
Sebastian Dröge
396dae666f
Make appsink/appsrc callbacks builder more consistent with other code
...
Move the constructor of the builder to the main type
2017-12-16 11:37:00 +02:00
Sebastian Dröge
7dc2e43db3
Clean-up GstPlayer bindings
...
Various nullability, types and usability fixes. The player configuration
is a new type now that can deref to a structure
2017-12-16 11:18:00 +02:00
Sebastian Dröge
d3b03de9ff
Nullability fix for VideoFormat::to_string() in case Unknown is passed
2017-12-16 10:58:10 +02:00
Sebastian Dröge
0eb32f0483
Some nullability fixes in gstreamer-audio
2017-12-16 10:56:59 +02:00
Sebastian Dröge
5fb6ce77ee
Add VideoMultiviewFramePacking enum and minor code cleanup
2017-12-16 10:56:19 +02:00
Sebastian Dröge
8a2c6a3246
Implement AsRef<[u8]>, AsMut, Deref, DerefMut, PartialEq, Eq and Debug for BufferMap too
2017-12-13 11:00:29 +02:00
Sebastian Dröge
e37c3d684c
Fix PartialEq for MappedBuffer
...
No need to map the buffer again, we can just compare the slice directly.
2017-12-13 11:00:02 +02:00
Sebastian Dröge
5dff6026be
Also implement Deref/DerefMut for MappedBuffer for &[u8]
2017-12-13 10:55:26 +02:00
Sebastian Dröge
85fdc8bf13
Implement AsRef<[u8]>, AsMut, Debug, PartialEq and Eq for MappedBuffer
2017-12-13 09:58:41 +02:00
Sebastian Dröge
f2eabaddf7
Make all fields of the force-keyunit events optional in the builder
2017-12-10 22:43:28 +02:00
Sebastian Dröge
49a6eb6a1f
Replace AppSrcCallbacks/AppSinkCallbacks with a builder so that no empty closures have to be provided for unused callbacks
2017-12-10 15:19:44 +02:00
Philippe Normand
dbe8eb9bd9
gstreamer-player: regen for overridden signals
...
In the previous generated player bindings the position-updated was Send+Sync but
only Send is actually needed. In addition to this change the position-updated,
duration-changed and seek-done signals now invoke their handler with a
gst::ClockTime value instead of u64.
2017-12-10 13:34:20 +02:00
Sebastian Dröge
298cb754c9
Fix precision handling in ClockTime Display impl
2017-12-10 12:31:41 +02:00
Sebastian Dröge
580fc603e0
Use builders for the key-unit and still-frame events too
2017-12-10 12:26:16 +02:00
Sebastian Dröge
5065bc76ee
Rename FormattedValue::from_glib/to_glib to from_raw/to_raw_value
...
Otherwise we conflict with GLib translation traits, which causes some
annoyances.
2017-12-10 12:10:25 +02:00
Sebastian Dröge
d55e08a6a4
Add bindings for force-keyunit and still-frame events
2017-12-10 11:57:11 +02:00
Sebastian Dröge
c99928d030
Change FormatValue related API to be more convenient to use
...
FormatValue is now renamed to GenericFormattedValue and the API slightly
changed. In addition there is now a FormattedValue trait, and a
SpecificFormattedValue trait plus types for Bytes, Buffers and the
existing ClockTime.
This allows to create functions like
Pad::query_duration<F: SpecificFormattedValue>() -> Option<F>
and doesn't require the caller to unwrap the generic value anymore,
which is completely unneeded in these cases.
In addition, Segment became FormattedSegment<T> with API to
upcast/downcast between the specific formatted values and the generic
formatted value. This greatly simplifies usage of Segments.
2017-12-09 19:45:18 +02:00
Sebastian Dröge
520a9bb879
Use downcast_unchecked() for sender in deep-notify signal handler
...
This is guaranteed to be of the correct type.
2017-12-09 18:08:57 +02:00
Sebastian Dröge
d7792a4fca
Fix calculation for buffer duration in basic-tutorial-8
...
We need to scale the number of samples, not the buffer size.
2017-12-09 14:03:18 +02:00
Sebastian Dröge
963557b79f
Query::get_structure() can also return NULL
2017-12-06 13:43:37 +02:00
Sebastian Dröge
1f80df493a
Let the glib::Value destructor clean up our values instead of doing so manually
2017-12-06 11:17:59 +02:00
Sebastian Dröge
ad7b21ba55
Use unwrap_or_else() for the default value in the DateTime Display impl
2017-12-05 23:20:10 +02:00
Sebastian Dröge
05c51dd778
Change all values in Segment to FormatValue
2017-12-05 23:16:12 +02:00
Sebastian Dröge
e6da3554ee
Use ClockTime for the Duration tag
...
And implement the Value traits for ClockTime
2017-12-05 22:54:03 +02:00
Sebastian Dröge
f1c6c4fd06
Change various integers to FormatValue and ClockTime in events/queries/messages
2017-12-05 22:43:37 +02:00
Sebastian Dröge
801a7ed43c
Use ClockTime instead of u64 for the Gap event
2017-12-05 21:36:56 +02:00
Sebastian Dröge
55f044dd83
Add newtype wrappers and INVALID constants for event/message GroupId and Seqnum
2017-12-05 21:33:04 +02:00