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
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
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
b198ee21da
Let Sample::new(), TagList::add(), Structure::set() and others take more values by reference instead of by value
2017-11-27 14:34:02 +02:00
Sebastian Dröge
b6d13272df
Fix some clippy warnings in examples/tutorials
2017-11-27 14:03:33 +02:00
Sebastian Dröge
f895f484cc
Fix up tutorials and examples for Message::get_src() returning an Option now
2017-11-16 13:58:56 +02:00
Sebastian Dröge
86b787ac81
Add failure-based error handling to the decodebin example
...
This also makes use of directly reporting errors from a callback, by
transferring it via the error message to the main thread.
2017-11-16 13:39:34 +02:00
Sebastian Dröge
4ab5893359
Allow to return something from the examples/tutorials main() wrapper
2017-11-12 20:11:25 +01:00
Sebastian Dröge
a01f1385ec
examples: Set up a runloop on macOS
2017-11-12 19:07:02 +01:00
Sebastian Dröge
1c0e802bc8
Remove utils module from examples
...
It's unused now
2017-11-12 10:15:54 +01:00
Sebastian Dröge
c9027fb244
Switch appsrc example to failure based error handling
2017-11-12 10:15:37 +01:00
Sebastian Dröge
eb99694ed3
Minor cleanup of appsink example
2017-11-11 16:56:37 +01:00
Sebastian Dröge
90700aa9b2
Switch appsink example to failure based error handling
2017-11-11 16:43:29 +01:00
Sebastian Dröge
126159c762
Run everything through rustfmt once again
2017-11-11 13:31:01 +01:00
Zeeshan Ali
d18cbe5943
examples: More robust cli arg handling
2017-11-11 12:28:34 +01:00
Sebastian Dröge
246a54368d
Clean up Query API a bit
...
There's now get_result() instead of get(), and separate getters for only
getting the constructor arguments of each query (otherwise query
handlers will get useless values when trying to answer a query).
2017-11-11 12:27:30 +01:00
Sebastian Dröge
c39c0c7264
Implement ClockTime as ClockTime(Option<u64>)
...
And also implement a FormatValue type that holds a value together with
its format to make usage of the positions/durations/seek positions/etc
more convenient and safe.
Fixes https://github.com/sdroege/gstreamer-rs/issues/3
2017-11-11 11:57:29 +01:00
Philippe Normand
bdcf0246eb
player example: Error management with the failure crate
2017-11-11 09:47:48 +01:00
Sebastian Dröge
95204c2294
Add Success/Error variants of #[must_use] enums
...
And implement basically the Try trait for them. This will be replaced by
the Try trait once it is stable.
Fixes https://github.com/sdroege/gstreamer-rs/issues/44
2017-11-06 11:43:54 +02:00
Sebastian Dröge
0f9241dbb6
Fix unused import compiler warning
2017-10-29 18:14:20 +02:00
Sebastian Dröge
50c8f32961
Clean up player example code a bit
2017-10-26 13:16:06 +02:00
Luis de Bethencourt
d94bb0e0fb
Unnecessary reference
...
This creates a reference to a reference, clean it.
Fixes https://github.com/sdroege/gstreamer-rs/pull/48
Fixes https://github.com/sdroege/gstreamer-rs/issues/47
2017-10-24 23:41:48 +02:00
Sebastian Dröge
884c9790ef
Fix compilation of GTK examples with latest gio
2017-10-01 16:32:33 +02:00
Sebastian Dröge
19c5556239
Regenerate with latest GIR
2017-10-01 15:52:15 +02:00
Sebastian Dröge
d608cff9e9
Fix build with latest GApplication API changes
2017-09-26 10:41:03 +03:00
Sebastian Dröge
ce5c01a88e
Implement gst::Iterator as a generic type to not require using glib::Values everywhere
2017-09-17 18:45:38 +03:00
Sebastian Dröge
8085c4ce8e
Add gst::Iterator example with Resync handling
2017-09-17 14:59:01 +03:00
Sebastian Dröge
f1025170d9
Use while-let and CLOCK_TIME_NONE for the bus.timed_pop() loops in the examples/tutorials
2017-09-13 19:35:35 +03:00
Sebastian Dröge
0f5f55c64d
Fix various clippy warnings in examples
2017-09-10 15:27:53 +03:00
Sebastian Dröge
b4cb81cd56
Run everything through latest rustfmt-nightly
2017-09-10 15:21:26 +03:00
Sebastian Dröge
e0e0f56b52
Fix/hide various clippy warnings in gstreamer-player
...
And let PlayerGMainContextSignalDispatcher::new() return the correct
type
2017-09-10 15:21:26 +03:00
Sebastian Dröge
7dfab61390
Conditionally use glib crate in player example
2017-09-01 14:12:26 +03:00
Sebastian Dröge
062b596432
Fix-up various unused external crate warnings
2017-09-01 13:42:59 +03:00
Philippe Normand
facaae6be9
examples: Quartz support for the gtkvideooverlay example
...
Fixes https://github.com/sdroege/gstreamer-rs/pull/31
2017-08-30 18:08:00 +03:00
Sebastian Dröge
da1a0c31d8
Add video overlay example, using GTK and only support Unix/X11 for now
2017-08-29 15:44:33 +03:00
Sebastian Dröge
58998af124
Fix examples build again
2017-08-29 11:56:30 +03:00
Sebastian Dröge
8013169e09
Add constants for SECOND, MSECOND, USECOND, NSECOND
...
And use them in the examples.
2017-08-29 11:07:59 +03:00
Sebastian Dröge
c235d90834
Fix compilation with --features tokio in the examples
2017-08-17 18:16:48 +03:00
Sebastian Dröge
0bc43ed053
Make gtk dependency optional in the examples
2017-08-17 18:07:48 +03:00
Sebastian Dröge
f751afc0fb
Add prelude modules to all cratest that only re-export the traits
...
And use those in the examples instead of blanket * imports
2017-08-17 18:02:25 +03:00
Sebastian Dröge
50a1535771
Add ParseContext bindings and corresponding functions
...
And use it in the launch example to print more useful error information,
like which elements are missing.
2017-08-17 16:17:02 +03:00
Sebastian Dröge
165d85646f
Move futures based BusStream from examples to the bindings
...
And hide behind the "futures" feature.
Fixes https://github.com/sdroege/gstreamer-rs/issues/26
2017-08-17 13:07:59 +03:00
Sebastian Dröge
56847216a0
Use byte-slice-cast trait instead of our own minimal version of it
2017-08-14 20:45:35 +03:00
Sebastian Dröge
b392c82ba9
Use gstreamer-video API in appsrc example and make frame generation a bit more efficient
2017-08-11 17:59:05 +03:00
Sebastian Dröge
b655c838b2
Add helper for converting a raw audio buffer to an array of integers/floats
2017-08-11 17:09:32 +03:00
Sebastian Dröge
4276cb6228
Simplify player example a bit
2017-08-11 15:48:12 +03:00
Philippe Normand
1e12354cd5
GstPlayer: make it build and add simple example
2017-08-11 15:42:28 +03:00
Sebastian Dröge
c36c8189ce
Add example to playbin example about how to connect/emit dynamic signals
...
... and get the audio track's tags whenever they change.
2017-08-11 15:31:59 +03:00
Sebastian Dröge
1a3b556fb6
Make Buffer map bindings more simple and consistent
2017-08-11 15:20:43 +03:00
Sebastian Dröge
07e9383ddf
Simplify toc example a bit
...
There's not need for checking audio/video if both are going directly to
a fakesink anyway.
2017-08-09 19:40:20 +03:00