Commit graph

1685 commits

Author SHA1 Message Date
Sebastian Dröge 337f00a85c Implement SetValueOptional for Structure 2017-08-18 16:28:08 +03:00
Sebastian Dröge 14adb331ec Implement StaticType on the actual MiniObjects, not the GstRc wrapper 2017-08-18 16:21:49 +03:00
Sebastian Dröge 6c4ee55f27 Implement SetValueOptional for GstRc<T> 2017-08-18 15:38:51 +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 767bd0537e Only re-export traits once 2017-08-17 16:32:17 +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 e7a0543c73 Clean up global functions 2017-08-17 15:31:00 +03:00
Sebastian Dröge 33fb38efd9 Remove traits for things that are not subclassed 2017-08-17 14:50:25 +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 08e2f6d917 Add Element::get_metadata(), get_pad_template(), get_pad_template_list() and DeviceProvider::get_metadata()
As wrapper around the C class functions.

Fixes https://github.com/sdroege/gstreamer-rs/issues/28
2017-08-17 12:49:58 +03:00
Sebastian Dröge 7991b4d8eb Don't export tag name strings directly
They can be accessed via the Tag trait impls instead
2017-08-17 12:49:58 +03:00
Sebastian Dröge 8a40fed0a4 Add some badges 2017-08-15 10:30:32 +03:00
Sebastian Dröge dc703cc6e9 Add push_list/chain_list functions to Pad 2017-08-14 22:24:54 +03:00
Sebastian Dröge de98b8039e Add GstPadLinkCheck 2017-08-14 22:19:47 +03:00
Sebastian Dröge 97bca10484 Add GstRank 2017-08-14 22:18:34 +03:00
Sebastian Dröge 474749598e Add GstElementFlags and suppressed_flags API of GstBin 2017-08-14 22:15:37 +03:00
Sebastian Dröge 77cb4da32a Add ClockId and related waiting API, and SystemClock
Fixes https://github.com/sdroege/gstreamer-rs/issues/23
2017-08-14 01:41:37 +03:00
Philippe Normand d654252e65 gstreamer: disable calculate_linear_regression
It's not binding friendly.
2017-08-11 15:42:28 +03:00
Philippe Normand 8badc33df9 gstreamer: expose version functions 2017-08-11 15:41:20 +03:00
Sebastian Dröge 93cc21112c Don't re-export everything from the tags module
All the tags are supposed to be used via gst::tags::Title, etc to
prevent conflicts.
2017-08-11 15:32:28 +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 e1538b6ca5 Add bindings for various audio channel position functions 2017-08-10 14:39:57 +03:00
Sebastian Dröge 009bb7f39b Add getters/setters for all the segment fields 2017-08-10 01:25:19 +03:00
Sebastian Dröge 2452f7f6a9 Allow usage of Structures in GValues 2017-08-10 01:13:28 +03:00
Sebastian Dröge a10d081c22 Fix FromValueOptional impl for Segment
Should be from_glib_none(), not from_glib_full()
2017-08-10 01:09:42 +03:00
Sebastian Dröge c8910aae08 Initial gstreamer-audio bindings
Only wrapping AudioInfo and AudioFormatInfo and related for now.

https://github.com/sdroege/gstreamer-rs/issues/4
2017-08-09 20:33:45 +03:00
Sebastian Dröge 146b3092aa Minor miniobject code cleanup 2017-08-09 20:08:02 +03:00
Sebastian Dröge f00af84105 Properly implement Eq/PartialEq/Debug for miniobjects 2017-08-09 20:08:02 +03:00
Sebastian Dröge 31b65e572c Add bindings for Bitmask values 2017-08-09 20:08:02 +03:00
fengalin 04f09ebc86 Add bindings for GstToc/TocSetter
https://github.com/sdroege/gstreamer-rs/pull/22

Fixes https://github.com/sdroege/gstreamer-rs/issues/10
2017-08-09 19:38:39 +03:00
Sebastian Dröge f1ac59a400 Autogenerate GstObject bindings again now that gir has support for renaming the trait 2017-08-07 10:24:43 +03:00
Sebastian Dröge 88f4fe5ea3 The message signal of Bus only has to require Send for the closure 2017-08-04 23:04:42 +03:00
Sebastian Dröge 3395203a53 Make miniobject ToOwned impls actually safe
Previously it was possible to create a new reference from a mutable
reference, which is not good. Now a copy is always created to prevent
that.
2017-08-04 18:51:27 +03:00
Sebastian Dröge 86fc001e35 Regenerate code with new GIR and suppress various clippy warnings in generated code
Now only a few are left in the manually written code.
2017-08-03 21:56:39 +03:00
Sebastian Dröge d6c032be7b Add bindings for Pad::stream_lock() 2017-08-03 11:11:07 +03:00
Sebastian Dröge ed90fcbd10 Add bufferlist support to Sample 2017-08-03 10:15:20 +03:00
Sebastian Dröge a0c6db70e0 Add Context support for messages/queries 2017-08-02 20:58:33 +03:00
Sebastian Dröge bf0f472014 Add autogenerated GstContext functions 2017-08-02 20:46:39 +03:00
Sebastian Dröge 0720b9f6f1 Add missing array translation trait impls to GstRc<T> 2017-08-02 20:46:22 +03:00
Sebastian Dröge 3fdc4cf5fc Add GstContext bindings 2017-08-02 20:34:37 +03:00
Sebastian Dröge d7baadee22 Fix various other compiler/clippy warnings 2017-08-02 20:09:00 +03:00
Sebastian Dröge 32c5218e7d Fix indentation 2017-08-02 19:41:33 +03:00
Sebastian Dröge 09db28bbf5 Fix various clippy warnings 2017-08-02 19:40:31 +03:00
Sebastian Dröge c4c8e738fd Enable Date tag and GDataTime support for GstDateTime 2017-08-02 11:39:37 +03:00
Sebastian Dröge 23ef3c1f08 Add a function to unset the Bus' current sync handler
And use it in the Tokio example to unset the handler once the BusStream
is dropped.
2017-08-01 20:52:29 +03:00
Sebastian Dröge 7e079e927d Add README.md 2017-08-01 19:27:56 +03:00
Sebastian Dröge 7c600bfce3 Fix unsafety of pad probes and sync bus handler
These can't be FnMut but must be Fn as they can be called from many
threads at the same time.
2017-08-01 15:28:36 +01:00
Sebastian Dröge e55c7d4088 Rename ObjectExt trait to GstObjectExt
This works around a bug in the compiler with multiple traits having the
same name, but being re-exported with a different one.

https://github.com/gtk-rs/glib/issues/211
2017-08-01 14:04:42 +01:00
Sebastian Dröge 38496eca7d Pass events by value instead of reference 2017-08-01 13:59:12 +01:00
Sebastian Dröge e29eae4d79 Add support for docs generation 2017-08-01 13:22:11 +01:00
Sebastian Dröge 7e6de739b4 Add various metadata fields to Cargo.toml 2017-08-01 10:30:02 +01:00
Sebastian Dröge eb567a5048 Rename ChildProxy::set/get_property() to set/get_child_property() to prevent conflict with glib::ObjectExt 2017-07-31 17:14:00 +01:00
Sebastian Dröge 03285a6311 Run everything through latest rustfmt-nightly 2017-07-31 12:16:42 +01:00
Sebastian Dröge ff12c054e3 Add all tags from core 2017-07-31 11:33:05 +01:00
Sebastian Dröge 7e24bae7c0 Improve Segment bindings to directly store the segment instead of a pointer to it 2017-07-31 10:54:22 +01:00
Sebastian Dröge 0a0b82d1b2 Get tag names from gstreamer-sys 2017-07-30 23:11:57 +01:00
fengalin 61cc1aaea7 Add more tags Album covers can be found in image as a Sample Some containers (e.g. mkv) may use album-artist instead of artist 2017-07-30 22:59:48 +01:00
Sebastian Dröge f06bc0d6ef Add event example and clean-up event/message constructor API 2017-07-30 15:49:25 +01:00
Sebastian Dröge 70a98cdc59 Fix compilation of 1.10 API 2017-07-30 15:15:34 +01:00
Sebastian Dröge 35160bedbc Add support for Events in pad probes 2017-07-30 15:11:47 +01:00
Sebastian Dröge 421e648a27 Enable functions working on Events 2017-07-30 15:09:51 +01:00
Sebastian Dröge 2c949a9a05 Add Event bindings
And make Message bindings more consistent
2017-07-30 15:06:44 +01:00
Sebastian Dröge 2915bfa299 Add support for queries in pad probes 2017-07-29 16:09:14 +01:00
Sebastian Dröge 5fa961f5b9 Add TagSetter and Preset bindings 2017-07-29 15:21:25 +01:00
Sebastian Dröge 33ccfc7225 Add GDateTime bindings 2017-07-29 15:14:02 +01:00
Sebastian Dröge 9d35eff8d5 Add ChildProxy bindings 2017-07-29 15:10:10 +01:00
Sebastian Dröge 02a4c8c14d Add new() functions for all messages 2017-07-29 14:56:34 +01:00
Sebastian Dröge 4730500662 Add Iterator bindings 2017-07-29 14:37:06 +01:00
Sebastian Dröge 21888daab6 Add GhostPad bindings 2017-07-29 14:19:15 +01:00
Sebastian Dröge 52dbf03d4f Add functions using queries 2017-07-29 14:04:34 +01:00
Sebastian Dröge 5afa1858ed Fix handling of pad probe info data for real
The miniobjects passed are never going to be writeable due to the
additional reference, but can safely be replaced.
2017-07-29 13:52:46 +01:00
Sebastian Dröge 69e1fdd529 Add Query bindings 2017-07-29 13:52:31 +01:00
Sebastian Dröge 29d4e3a56d Handle bufferlists in pad probes
And fix replacing of the previous buffer/bufferlist
2017-07-28 19:18:08 +01:00
Sebastian Dröge a76c51ac5c Add bufferlist bindings 2017-07-28 18:20:11 +01:00
Sebastian Dröge 210d641091 Implement Sample bindings 2017-07-28 18:04:15 +01:00
Sebastian Dröge e3c9965eee Add getters/setters for all the segment fields 2017-07-28 17:47:23 +01:00
Sebastian Dröge 7926257c3c Add auto-generated Segment bindings 2017-07-28 17:38:52 +01:00
Sebastian Dröge b5d8b44725 Renable caps value-array unit test 2017-07-28 17:01:53 +01:00
Sebastian Dröge 3bc0687025 Implement all remaining GstValue API 2017-07-28 16:47:00 +01:00
Sebastian Dröge ad03e1e5a1 Implement Int/Fraction ranges and Array/Lists for GstValue 2017-07-28 14:52:35 +01:00
Sebastian Dröge e75d2c224e Add GValue support to GstRc/MiniObject 2017-07-28 11:09:34 +01:00
Sebastian Dröge 27d191f854 Use &ToValue instead of &Value for simple structure/caps setters/constructors 2017-07-27 23:36:44 +01:00
Sebastian Dröge 3dac0c8b30 Add constants for GST_BUFFER_OFFSET_NONE and GST_CLOCK_TIME_NONE 2017-07-25 15:31:45 +03:00
Sebastian Dröge 29f20ebe13 Remove various property bindings for properties that have getters/setters 2017-07-25 15:28:09 +03:00
Sebastian Dröge 80265967f7 Add some more bindings related to buffers and taglists 2017-07-25 15:21:03 +03:00
Sebastian Dröge e73f57cd31 Add support for Buffers in pad probes
Including replacing of the buffer with another one
2017-07-25 15:10:31 +03:00
Sebastian Dröge acd0fc7874 Add Buffer bindings from gst-plugin-rs 2017-07-25 15:01:24 +03:00
Sebastian Dröge 28f665502b Implement all caps/structure operations
Except for anything related to caps features
2017-07-25 02:03:18 +03:00
Sebastian Dröge d1cf7d609f Implement Caps::iter_mut() 2017-07-25 01:33:14 +03:00
Sebastian Dröge 9fdf422e9b Random cleanup 2017-07-25 01:17:50 +03:00
Sebastian Dröge ab4aa57a86 Fix indentation in a few places and remove unused imports 2017-07-24 11:52:28 +03:00
Sebastian Dröge e87c459099 Add bindings for pad probes
Missing for this to be actually useful: Buffer, BufferList, Event, Query bindings
2017-07-24 11:52:21 +03:00
Sebastian Dröge c750b62e98 Regenerate with latest gir and update everything 2017-07-21 15:14:58 +03:00
Sebastian Dröge ce33439465 Add GObjectExtManual trait and implement set_property_from_string() there 2017-07-20 11:39:44 +03:00
Sebastian Dröge 91649b259a Regenerate with latest gir 2017-07-19 21:41:25 +03:00
Sebastian Dröge 5e58998c76 Implement FromStr for Caps and Structure 2017-07-13 14:57:02 +03:00
Sebastian Dröge a94d4d583d Re-export gst::ObjectExt as gst::GstObjectExt to prevent conflict with glib::ObjectExt 2017-07-13 10:36:38 +03:00
Sebastian Dröge 9c357abf1a Add support for Fractions 2017-07-12 13:25:11 +03:00
Sebastian Dröge 8421cec1ee Implement message types that use tag lists / structures 2017-07-12 11:06:21 +03:00
Sebastian Dröge 49ea4e45fa Re-enable iterator test for Structure 2017-07-12 10:38:34 +03:00
Sebastian Dröge b44c815696 Re-enable Caps tests 2017-07-12 10:32:39 +03:00
Sebastian Dröge 64f8b8c015 Add missing manual Bus bindings 2017-07-12 10:28:42 +03:00
Sebastian Dröge 796e37b4b6 Initial tag support 2017-07-12 10:27:43 +03:00
Sebastian Dröge 9cfb83d6a2 Add Source support to GstBus, and the sync message handler 2017-07-11 19:29:16 +03:00
Sebastian Dröge 71c0885575 Remove some unused "use"s 2017-07-11 00:36:38 +03:00
Sebastian Dröge 4c5aa49fa2 Run manual code through rustfmt 2017-07-11 00:33:24 +03:00
Sebastian Dröge abe4248a96 Some more Caps cleanup 2017-07-11 00:31:53 +03:00
Sebastian Dröge 4964495b03 Implement some more missing API now that we have Structure 2017-07-11 00:26:27 +03:00
Sebastian Dröge 8f49779329 For borrowing Structures, StructureRef has to be used
Otherwise DerefMut would have to go away.
2017-07-11 00:11:55 +03:00
Sebastian Dröge c0707bed94 Add initial caps bindings 2017-07-11 00:11:55 +03:00
Sebastian Dröge 944c71f953 Implement StaticType for Structure 2017-07-10 17:13:49 +03:00
Sebastian Dröge 1264f2f5c0 Rename MessageImpl to MessageRef
These will show up as (possibly mutable) references later in API from
which we explicitly borrow references instead of getting a new one.
2017-07-10 17:12:24 +03:00
Sebastian Dröge e43bf21ded Add initialization safety assertions
Ensure that GStreamer is initialized before allowing to call any
functions
2017-07-10 17:12:14 +03:00
Sebastian Dröge 992105b49f Implement basic GstStructure bindings 2017-07-10 17:10:15 +03:00
Sebastian Dröge decf5da6d0 Add copyright notices 2017-07-07 14:47:28 +03:00
Sebastian Dröge 4808865371 Implement Builder for all Messages 2017-07-07 14:39:22 +03:00
Sebastian Dröge 291f329fc3 Add Element::add_many(), ::remove_many(), Bin::link_many(), ::unlink_many() 2017-07-05 11:11:45 +03:00
Sebastian Dröge e3902bbbf6 Add decodebin example and add some missing API for it 2017-07-05 10:40:02 +03:00
Sebastian Dröge 9b91024221 Implement all message parsing API 2017-07-05 01:47:33 +03:00
Sebastian Dröge cb26c0aaed Remove some useless message code 2017-07-03 18:45:59 +03:00
Sebastian Dröge 9a364c26c6 Remove EOS message constructor for now
These should probably all use the builder pattern
2017-07-03 18:11:26 +03:00
Sebastian Dröge fc8046b9bd Implement simple example application and clean up API 2017-07-03 18:08:43 +03:00
Sebastian Dröge 7a110ace10 Export parse_launch / parse_bin_from_description at the crate level 2017-07-03 17:57:57 +03:00
Sebastian Dröge eeea572c96 Implement further parts of the Message machinery 2017-07-03 17:52:10 +03:00
Sebastian Dröge 602c3f257f Generate Bus/ElementFactory without traits, generate Plugin 2017-07-03 14:06:08 +03:00
Sebastian Dröge aa3581cee9 Add initial Message/MiniObject bindings 2017-07-03 14:01:08 +03:00
Sebastian Dröge 2546045593 Implement init() around gst_init_check() 2017-07-03 12:26:40 +03:00
Sebastian Dröge b14f0278c1 Regenerate everything with latest gir 2017-06-29 09:02:08 +03:00
Sebastian Dröge 771b5c8094 Add previously forgotten functions module 2017-06-25 11:26:16 +03:00
Sebastian Dröge f777258564 Update .gir files to 1.12.1 2017-06-25 11:17:06 +03:00
Sebastian Dröge b792f4b5da Regenerate with latest gir and configure default concurrency to send+sync 2017-06-25 11:04:37 +03:00
Sebastian Dröge e41fb76d2d Use new bool_return_is_error configuration for various functions
And ignore some wrong bindings.
2017-06-24 12:02:24 +03:00
Sebastian Dröge 6b4e3e9bd4 Switch to GIT versions of crates and regenerate with latest GIR 2017-06-24 11:55:28 +03:00
Sebastian Dröge d92f865f36 Update Gst-1.0.gir with floating reference fixups from GIT master
And regenerate everything.
2017-05-17 15:59:16 +03:00
Sebastian Dröge 15b08a4293 Initial commit
Requires
  https://github.com/gtk-rs/gir/pull/365
  https://github.com/gtk-rs/gir/pull/364
to be merged for autogeneration of the bindings.

Requires
  https://github.com/gtk-rs/gir/issues/367
for fixing memory leaks.
2017-05-12 14:24:03 +02:00