GStreamer and Rust

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

GStreamer and Rust

Russel Winder
OK, so I am delving into trying Rust to create a GTK+/GStreamer
application. Clearly this is totally bleeding edge as from what I can
see all the Rust GTK+ examples are from the wrong era of GTK+. Oh well.

Has anyone got any examples of using GStreamer MPEG-TS in Rust that I
can steal^H^H^H^H^Hborrow (sic) ideas from?
 
--
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:[hidden email]
41 Buckmaster Road    m: +44 7770 465 077   xmpp: [hidden email]
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer and Rust

Sebastian Dröge-3
On Wed, 2017-08-30 at 13:50 +0100, Russel Winder wrote:
> OK, so I am delving into trying Rust to create a GTK+/GStreamer
> application. Clearly this is totally bleeding edge as from what I can
> see all the Rust GTK+ examples are from the wrong era of GTK+. Oh
> well.

Apart from not using GtkApplication, there should be nothing wrong with
them. And there are many examples using GtkApplication too :)

What makes you think they are otherwise from the wrong era?

> Has anyone got any examples of using GStreamer MPEG-TS in Rust that I
> can steal^H^H^H^H^Hborrow (sic) ideas from?

What exactly are you looking for? Using the GStreamer MPEG-TS library
API? There are no bindings for that library yet. So far I only have
basically all of GStreamer core, app and player, and important parts of
the video and audio libraries here:
  https://github.com/sdroege/gstreamer-rs

If you need bindings for the MPEG-TS library, someone will have to
write/autogenerate them first :) I'm not going to do that anytime soon,
there are too many other things on my todo list that are more
interesting/important for me. I'd be happy to accept a pull request for
that though.

--
Sebastian Dröge, Centricular Ltd · https://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (981 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer and Rust

Russel Winder
On Wed, 2017-08-30 at 16:36 +0300, Sebastian Dröge wrote:
>
[…]
> Apart from not using GtkApplication, there should be nothing wrong
> with
> them. And there are many examples using GtkApplication too :)

Mostly written by you and me I suspect. :-)

> What makes you think they are otherwise from the wrong era?

The Main.init()…Main.run() approach was the only way of working in
GTK+2 and still works in GTK+3 (and I assume GTK+4). However the
idiomatic way of writing Gtk::Application based applications has
changed – we have a new era for Gtk application structure. Most of the
gtk-rs examples are applications but not using the application idiom,
thus from the wring era.

[…]

> What exactly are you looking for? Using the GStreamer MPEG-TS library
> API? There are no bindings for that library yet. So far I only have
> basically all of GStreamer core, app and player, and important parts
> of
> the video and audio libraries here:
>   https://github.com/sdroege/gstreamer-rs
>
> If you need bindings for the MPEG-TS library, someone will have to
> write/autogenerate them first :) I'm not going to do that anytime
> soon,
> there are too many other things on my todo list that are more
> interesting/important for me. I'd be happy to accept a pull request
> for
> that though.
In the C++ code, in order to use the mpegts stuff implicit in using the
dvbsrc stuff, you have to call gst_mpegts_initialize(). As far as I am
aware I only use GStreamer API to load and run playbin with the dvbsrc
plugin which implies no need for an API outside the standard API. So
everything I need should be there already except for the initialisation
call. Assuming I remember my C++ code correctly, and am correctly
interpreting the situation!

--
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:[hidden email]
41 Buckmaster Road    m: +44 7770 465 077   xmpp: [hidden email]
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer and Rust

Sebastian Dröge-3
On Sat, 2017-09-02 at 09:49 +0100, Russel Winder wrote:
>
> > What makes you think they are otherwise from the wrong era?
>
> The Main.init()…Main.run() approach was the only way of working in
> GTK+2 and still works in GTK+3 (and I assume GTK+4). However the
> idiomatic way of writing Gtk::Application based applications has
> changed – we have a new era for Gtk application structure. Most of the
> gtk-rs examples are applications but not using the application idiom,
> thus from the wring era. 

How would you write GtkApplication based things differently, what's the
"correct" and modern way from what you understand?

> […]
> > What exactly are you looking for? Using the GStreamer MPEG-TS library
> > API? There are no bindings for that library yet. So far I only have
> > basically all of GStreamer core, app and player, and important parts
> > of
> > the video and audio libraries here:
> >   https://github.com/sdroege/gstreamer-rs
> >
> > If you need bindings for the MPEG-TS library, someone will have to
> > write/autogenerate them first :) I'm not going to do that anytime
> > soon,
> > there are too many other things on my todo list that are more
> > interesting/important for me. I'd be happy to accept a pull request
> > for
> > that though.
>
> In the C++ code, in order to use the mpegts stuff implicit in using the
> dvbsrc stuff, you have to call gst_mpegts_initialize(). As far as I am
> aware I only use GStreamer API to load and run playbin with the dvbsrc
> plugin which implies no need for an API outside the standard API. So
> everything I need should be there already except for the initialisation
> call. Assuming I remember my C++ code correctly, and am correctly
> interpreting the situation!
Calling that init function should not be necessary as tsdemux already
does that too. Unless you use API from the MPEG-TS library before
tsdemux does anything.

But yes that sounds like you want to use the MPEG-TS library. To handle
e.g. the PAT and PMT messages from tsdemux. Bindings for that would
have to be generated first, but for this case it shouldn't be very
difficult or much work. The MPEG-TS library is simple.

--
Sebastian Dröge, Centricular Ltd · https://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (981 bytes) Download Attachment