100 commits in GStreamer
06 Jul 2017 | gstreamerIt’s been 3 years since I’ve started working on GStreamer, meanwhile I contributed over 100 commits fortunately!
Let’s look at my commits in each project in GStreamer.
- gstreamer: 7 commits
- gst-plugins-base: 5 commits
- gst-plugins-good: 13 commits
- gst-plugins-bad: 18 commits
- gst-rtsp-server: 10 commits
- gstreamer-vaapi: 76 commits
Now that I write this article, I have made 128 commits.
In Samsung Electronics, which was my previous company that I had been working for, I had a chance to work on gstreamer, which is main multimedia framework on Tizen. Since then, I realized that there are lots of opportunity in open source world and I started enjoying contribution to this project.
This is my first commit:
Yes. It’s just a fix typo. This landed in just five minutes after I proposed and I realized that maintainers are looking at all issues in bugzilla. To be honest, I doubted it a bit. :P
Looking at other commits that I was really happy with.
While I was working on gst-rtsp-server at that time, I found it’s not working properly for RTP retransmission on the server. I reported the issue and discussion went very positive, then my proposed patches landed finally thanks to Sebastian.
- rtpmanager: add new on-new-sender-ssrc, on-sender-ssrc-active signals
- stream: listen to sender ssrc signals
This was enhancement of infrastructure for RTSP/RTP in GStreamer, which is providing a way to report stats for sender/receiver.
Then I contributed huge patches of creating new APIs for transformation between SDP and GstCaps including removing duplicated codes. Thanks, Sebastian again.
- sdp: add helper fuctions from/to sdp from/to caps
- rtspsrc: replace duplicated codes to call new base sdp apis
- sdpdemux: replace duplicated codes to call new base sdp apis
- sdp: replace duplicated codes to call new base sdp apis
Until this time I focused on RTSP/RTP streaming on server side since I was working on Miracast on Tizen which uses gst-rtsp-server. At this time I started looking for company so that I could work on open source more closely. Eventually I found Igalia, which is doing great work in open source world including Webkit, Chromium and GStreamer.
Since I joined Igalia I have been focusing on gstreamer-vaapi with my great colleague Victor, who is one of maintainers of GStreamer project. I got to have much more chances to contribute than before. As I said, I worked on RTSP server side before, which means that I should focus on encoder, muxer and networking stuff. But since this move, I got started focusing on playback including decoder and sink to be playable on various platforms.
These are my best patches I think.
- glupload: Use bufferpool to allocate new buffer in GLTextureUploadMeta
- libs: vaapitexturemap: implement GstVaapiTextureMap
- libs: display{egl,glx}: cache GstVaapiTextures
- plugins: reset textures at negotiation/shutdown
By this set of patches, performance of playback on GL/VAAPI has been improved dramatically.
Besides, I have contributed some patches that improve vaapi decoder and encoder, most of them is for h264, which also makes me happy.
During the last three years I worked for GStreamer, I grew up with more capability of SW development, the idea of open source and more deep insight for the world of software. I give a deep appreciation for Igalia that gave me this opportunity, and also I thank you, Victor, for giving me a lot of motivation.
Even at this moment, I’m still working, enjoying and sometimes struggling with GStreamer. I really want to keep continuing this work and find a chance to contribute something new which could be applied on GStreamer.
Thanks for reading!
Comments