Posts

Showing posts from August, 2019

Review | GSoC 2019

Image
I've been working on GStreamer based project of Gnome Foundation. GStreamer is a pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. The framework is based on plugins that will provide various codec and other functionality. The plugins can be linked and arranged in a pipeline. And most of the plugins are written in C. Now the developers are in an attempt to convert them to Rust which is more robust and easily maintainable. My task is to be a part of this conversion and to help fix issues related to this. Planned Tasks Implement Hyper-based HTTP source around async IO and make it feature-complete. (Explained in below section) GitLab issue: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/issues/31 Tutorial for gst-plugin-tutorial crate. (Explained in below section) GitLab issue: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/issues/44 Finish FLV demuxer. Conversion of FLV demuxer t

Making Rust HTTP source Feature equivalent - Part 1 | GSoC 2019

souphttpsrc is the C version of HTTP source plugin of GStreamer. Making reqwesthttpsrc feature equivalent to that of souphttpsrc is a very important part of the conversion. Although Rust HTTP source is functioning well, it is not fully in to use because it is not equivalent to C HTTP source. For now there is only one property implemented from C HTTP source apart from the ones which come from base class. That is 'location'. We can set a URL to read using this property. For example >  gst-launch-1.0 reqwesthttpsrc location=https://www.google.com  ! fakesink dump=true I introduced two more properties to Rust HTTP source. Let's all give a warm welcome to 'is-live' and 'user-agent'. I had to go through the C code of the plugin to understand about the those properties and see where they've been used in the plugin.  'is-live' was a easy point to start with because the implementation was straight forward. This is a property which can have